You are here: Home » Study Plan » Subject

Sciences

Subject: METODOLOGIE DI SVILUPPO SOFTWARE (A.A. 2023/2024)

master degree course in COMPUTER SCIENCE

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

Teachers

Angelo FERRANDO
Giacomo CABRI

Overview

The goals of the course are
- To present the software development models and the concepts of project management
- To present the development techniques
- To present some examples of methodologies
- To present tools to estimate the costs of software projects

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 development techniques.

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
- Examples of methodologies
Agile methodologies (3,5 CFU)
- Agile principles and techniques (TDD, pair programming, refactoring)
- Examples of agile methodologies
- The Scrum methodology
Techniques of project estimation (1,5 CFU)
- COCOMO
- Putnam
- PERT/CPM

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 to verify the knowledge of the methodologies, 1 question or exercise on agile techniques to verify the skill of enacting them, 1 exercise about the project estimation to verify the skill to apply the tools. Each question has the same weight in the mark. A pre-exam could be available at the end of the lessons. The mark ranges from 18/30 (basic knowledge of the topics and partial skill to apply the knowledge) to 30/30 cum laude (full knowledge of the topic and excellent skill to apply the knowledge), ranging the middle scores on the base of the achievement of the expected learning results, included the transversal ones shown during the exam.

Learning outcomes

Knowledge and understanding
Students will know the methodologies and patterns to develop software systems
Students will know the techniques to develop software.

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.

Autonomy of judgment
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 tramite Moodle

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