Sciences
Subject: METODOLOGIE DI SVILUPPO SOFTWARE (A.A. 2022/2023)
master degree course in COMPUTER SCIENCE
Course year | 1 |
---|---|
CFU | 6 |
Teaching units |
Unit Metodologie di sviluppo software
Information Technology (lesson)
|
Moodle portal | |
Exam type | oral |
Evaluation | final vote |
Teaching language | Italiano |

Teachers
Overview
The goals of the course are
- To present the software development models and the concepts of project management
- To present some examples of methodologies
- To present tools to estimate the costs of software projects
- To present the architectural pattern
At the end of the course, the student should be able to:
- develop a software project applying a methodology;
- estimate the times and the costs of developing a software project;
- apply design patterns.
Admission requirements
Knowledge of a programming language and od the software modelling languages.
Course contents
Models of software development (1 CFU)
- Waterfall model
- Evolutive model
- Incremental model
- Spiral model
- Examples of methodologies
Agile methodologies (2 CFU)
- Agile principles and techniques
- Examples of agile methodologies
Techniques of project estimation (1,5 CFU)
- COCOMO
- Putnam
- PERT/CPM
Design pattern (1,5 CFU)
- Creational patterns
- Structural patterns
- Behavioral patterns
Teaching methods
Lessons supported by slides about theory (4 CFUs) and class exercises to apply the theory (2 CFUs). Attending is not mandatory. The course is in Italian while the material is in English. The non-attending students can access the lesson slides and the exercise material.
Assessment methods
The exam will be an oral discussion to verify the understanding of the course contents and the skill of applying the techniques of project estimation. The exam will last 30 minutes with 1 question about the methodologies or 1 exercise on agile techniques, 1 exercise about the project estimation and 1 question about the design patterns. Each question has the same weight in the mark. A pre-exam could be available at the end of the lessons.
Learning outcomes
Knowledge and understanding
Students will know the methodologies and patterns to develop software systems
Students will know the techniques to estimate the software project.
Applying knowledge and understanding
Students will have the skill to
- apply methodologies to design, develop and test software applications;
- estimate the cost and the times pf developing software projects;
- applying patterns to define software architectures.
Making judgments
The student will have the ability to evaluate the techniques and the software methodologies most suitable to every context, deciding among different alternatives.
Communication skills
The student will have the skill to communicate the technological choices.
Learning skills
Students will have the skill to:
- evaluate his/her own level in connection with the state of the art of the development methodologies;
- understand the missing skills to tackle the proposed work;
- make continuous training to fill the gaps and to keep updated;
- exploit the appropriate sources;
- face new problems with a scientific and methodological approach.
Readings
Slide presentate a lezione messe a disposizione all'inizio dell'insegnamento.
Libri consigliati:
- C. Ghezzi, D. Mandrioli, M. Jazayeri. Ingegneria del Software (2/Ed.). Pearson Education Italia
- E. Gamma, R. Helm, R. Johnson, J. Vlissides. Design Patterns. Pearson
- Eric Freeman, Elisabeth Robson. Head First Design Patterns. O'Reilly Media
- Ian Sommerville. Ingegneria del software. Pearson