You are here: Home » Study Plan » Subject



master degree course in COMPUTER SCIENCE

Course year 1
Teaching units Unit Metodologie di sviluppo software
Information Technology (lesson)
  • TAF: Compulsory subjects, characteristic of the class SSD: ING-INF/05 CFU: 6
Teachers: Giacomo CABRI
Moodle portal
Exam type oral
Evaluation final vote
Teaching language Italiano
Contents download pdf download


Giacomo CABRI


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)
- Putnam
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.


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