66858 - Software Engineering

Course Unit Page

Academic Year 2017/2018

Learning outcomes

The course has the goal to teach 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 describing a software system using UML and to develop the code using an object oriented language like Java, C++ or C#

Course contents

The business of software. Standard for software engineering. Software life cycles. Requirements specifications. Design patterns. Software modeling with UML. Software development tools. Project management of software projects. Measuring the quality of software. Software maintenance.


Bruegge e Dutoit, OO Software Engineering Using UML, Patterns and Java, Pearson, 3° ed, 2010  

Teaching methods

Lectures, exercises, scientific paper reading and reporting.

Assessment methods

Written exam, oral exam on a scientific paper chosen by the student.

Teaching tools

Slides (in italian). Exercises texts.

Links to further information


Office hours

See the website of Paolo Ciancarini