Risorse bibliografiche
Risorsa bibliografica obbligatoria
Risorsa bibliografica facoltativa
Scheda Riassuntiva
Anno Accademico 2018/2019
Scuola Scuola di Ingegneria Industriale e dell'Informazione
Insegnamento 052532 - SOFTWARE ENGINEERING 2
Docente Rossi Matteo Giovanni
Cfu 5.00 Tipo insegnamento Monodisciplinare
Didattica innovativa L'insegnamento prevede  1.0  CFU erogati con Didattica Innovativa come segue:
  • Blended Learning & Flipped Classroom

Corso di Studi Codice Piano di Studio preventivamente approvato Da (compreso) A (escluso) Insegnamento

Obiettivi dell'insegnamento

The goal of the course is to enable students to master the engineering methods and processes that are necessary to produce complex software with industrial strength quality. The course covers the software process and its organization, requirements, design methods and tools, specification, verification and validation. Each topic is treated both theoretically and practically. Through the course, the flipped class teaching method will be exploited to allow students to acquire a good level of autonomy in learning new topics.

Risultati di apprendimento attesi

Dublin Descriptors

Expected learning outcomes

Knowledge and understanding

Students will learn how to:

- Identify the phases of software development and the specific activities associated with each phase

- Understand an Alloy specification

- Analyze software code written by others

- Identify architectural styles and patterns

Applying knowledge and understanding

Given specific project cases, students will be able to:

- Detail the corresponding requirements

- Identify, analyze and comment on specific architectural choices

- Apply the theory to assess the availability of a software architecture

- Test code fulfilling the corresponding specification documents

- Write software components in JEE

Making judgements

Given a relatively complex problem, students will be able to:

- Analyze and understand the goals, assumptions and requirements associated with that problem and model them

- Define the architecture of the corresponding software system using proper styles and patterns

- Identify and define the needed verification and validation activities

- Estimate the size of the system and the resources needed for its development, identify risks and define mitigation actions


Students will learn to:

- Write a requirement specification document

- Write a design specification document

- Present their work in front of their colleagues during project labs

Lifelong learning skills

- Students will learn how to develop a realistic project

- Students choosing to focus on the research project will learn how to conduct a research activity on some specific aspect of software engineering, developing some innovative solution or some empirical experiment.


Argomenti trattati

The software process and standards

  • Software lifecycle
  • Project management and cost estimation
  • Standards for process improvement: ISO9001, CMMI

Notations and specification methods: Alloy 

Problem definition: requirements engineering

  • Importance of requirements
  • The Jackson-Zave approach (requirements, specification, domain)
  • Usage of Alloy and UML to support requirement modeling activities

Methods and technologies for product development

  • Software architectures and architectural styles
  • Middleware and software components: J2EE

Verification and validation

  • The verification and validation process
  • Analysis, reviews and walkthroughs techniques
  • The various facets of testing


The flipped class method will be exploited to help students in learning part of the topics related to requirement engineering and how to apply them in practical contexts.

A project laboratory is an integral part of the course. The objective of the project is to help students in applying the approaches and principles that are taught in class. Projects will be assigned at the beginning of the semester. Project artifacts (Requirement Analysis and Specification Document and Design Document) are expected to be released at fixed deadlines that will be defined by the time the project will be assigned. The evaluation of projects will be based on the produced artifacts and on a presentation. The project laboratory will include class discussions supervised by the course instructor. Tutors will be available to support students in their work. Some of the project laboratory activities can be taken optionally by the interested students. These concern the development and testing of a running implementation of the assigned project, or the development of innovative research (new tools, formal specifications or empirical experiments) concerning some aspects of software engineering that will be agreed with the instructor.

Students who cannot take the project laboratory in the first semester can work at the project on their own in the second semester. In this case, no support by project tutors will be possible. 


Students are required to know the principles and methods of object-oriented design, the basic notions of UML, testing, and configuration management.

Modalità di valutazione

The assessment will be based on a written exam at the end of the course and on the projects developed in the laboratory part of the course. These projects will be presented to the instructor at the end of the course. The scores of the written exam and of the project will be summed to compute the total score. The written exam is open book. It will assign up to 16 points and will be considered sufficient when the score will be equal to or higher than 10. The project part will assign up to 16 points and will be considered sufficient when the score is equal to or higher than 8 Students can take the written part at any exam session during the year. 30 cum laude will be assigned when the total score is equal to or higher than 31.

The written exam can be replaced by the implementation and testing project or by the research project. These will have to be agreed with the course instructor by the deadline that will be specified as part of the course schedule. The following table provides a detailed overview of the elements that will be considered in the various assessment activities.


Type of assessment


Dublin descriptor

Written test

Solution of numerical problems:

- Computation of availability estimates for - a software architecture

- Cost and effort estimation

- Software testing and analysis exercises

Exercises focusing on design aspects:

- Definition of the Alloy model for a given problem

- Definition of the high level architecture for a software system

- Definition of code fragments in JEE to fulfill specific requirements

- Definition of a test plan and/or of a project plan for a specific software






1, 2, 3, 4, 5

Assessment of laboratorial artefacts

Assessment of the design and experimental work developed by students, either individually or in groups, as part of the project

2, 3, 4, 5

Oral presentation

Assessment of the project presentation

2, 3, 4, 5


Risorsa bibliografica obbligatoriaHans van Vliet, Software Engineering: Principles and Practice, 3rd Edition, Editore: Wiley, Anno edizione: 2008, ISBN: 978-0-470-03146-9

Available also as e-book with ISBN 978EUDTE00263

Risorsa bibliografica obbligatoriaCourse website https://beep.metid.polimi.it

If for any reason you are not included in the official list of course students, you may not been able to access the course material. In this case, I can grant you access provided that you request it through the site.

Risorsa bibliografica obbligatoriaCarlo Ghezzi, Mehdi Jarayeri, Dino Mandrioli, Fundamentals of Software Engineering, Editore: Prentice-Hall, Anno edizione: 2002, ISBN: 0133056996

Software utilizzato
Nessun software richiesto

Forme didattiche
Tipo Forma Didattica Ore di attività svolte in aula
Ore di studio autonome
Laboratorio Informatico
Laboratorio Sperimentale
Laboratorio Di Progetto
Totale 50:00 75:00

Informazioni in lingua inglese a supporto dell'internazionalizzazione
Insegnamento erogato in lingua Inglese
Disponibilità di materiale didattico/slides in lingua inglese
Disponibilità di libri di testo/bibliografia in lingua inglese
Possibilità di sostenere l'esame in lingua inglese
Disponibilità di supporto didattico in lingua inglese
schedaincarico v. 1.8.3 / 1.8.3
Area Servizi ICT