90106 - Software Engineering (9 ECTS)

Course Unit Page


This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.

Quality education Decent work and economic growth Industry, innovation and infrastructure

Academic Year 2022/2023

Learning outcomes

At the end of the course the student knows the basics of software systems construction: methods and tools for analyzing, designing and measuring the qualities of software products. The student will be able to develop a specification starting from some requirements written in natural language. The student will be able to model a software system using UML and to develop the code using an object oriented language using collaborative versioning and code analysis tools.

Course contents

The course in Italian. •Software products and their development •Software lifecycle •Agile software development methods •Agile Scrum •Requirement engineering •Design patterns •Modeling software with UML •Software development tools •Project Management for software systems • Controlling and measuring software quality • Software maintenance •Configuration management


Sommerville, Introduzione all'Ingegneria del Software moderna, Pearson 2021

Jacobson, The essentials of modern software engineering, ACM Books 2019

Teaching methods

Lectures, exercises, readings, quizzes with Kahoot, team project

Assessment methods

1) Software development project (in team) with a final report of all activities, 2) written presentation of a scientific paper chosen by the student 3) oral discussion of the project and the presentation. The project is evaluated for teamwork quality and usage of best practices of agile software engineering, that will be presented during the lectures.

Teaching tools

Slides (in italian). Exercises; online tests (Kahoot). Software tools for project developments. Telegram channel

Links to further information


Office hours

See the website of Paolo Ciancarini

See the website of Giancarlo Succi