Software Engineering (2011/2012)

Course code
Name of lecturer
Luca Vigano'
Luca Vigano'
Number of ECTS credits allocated
Other available courses
Academic sector
Language of instruction
II semestre dal Mar 1, 2012 al Jun 15, 2012.

Lesson timetable

Learning outcomes

The course introduces the basic scientific and professional notions of software engineering, addressing in particular the different phases of the software development process: planning, design, modeling and specification, implementation, testing and validation, evaluation, maintenance. The programming projects carried out in the lab complement the theory lectures with the design and realization of complex software systems "in the large".


- Software, product and process:
- Quality attributes.
- Software life-cycles.
- Phases and activities of the software development process.
- Planning of the development process:
- Feasibility study.
- Definition of requirements and constraints.
- Risk management.
- Production control.
- Configuration management and versioning.
- Project administration.
- Software development:
- Requirements elicitation and analysis.
- Rapid prototyping.
- Specification and implementation.
- Verification.
- Scalability.
- Component-based design.
- Software reuse.
- Design patterns.
- Software architectures.
- Standards for implementation and documentation.
- The standard language UML 2 for software modeling.
- Formal software specification languages.
- "In the large" programming.
- Evaluation, validation and testing of software.

Assessment methods and criteria

The examination consists of a written test, for which the students obtain 5 credits, which will be added to the 1 credit the students obtain when they complete the laboratory activity.
The examination of the laboratory activity consists of the completion of a number of projects, which the students can carry out in small groups (of 3 o 4 students).

The written test must be taken without the help of notes, books, or other documentation. The teacher may decide to replace the written test with an oral examination, especially whenever it is not possible to make sure that the students cannot access this documentation.