66858 - Software Engineering

Course Unit Page

  • Teacher Stefano Rizzi

  • Credits 6

  • SSD ING-INF/05

  • Teaching Mode Traditional lectures

  • Language Italian

  • Course Timetable from Oct 02, 2018 to Dec 21, 2018

Academic Year 2018/2019

Learning outcomes

The course aims at providing the basic concepts related to software engineering, and the tools and techniques for analysis and design of software systems. Particular relevance will be given to the methods enforcing correct use of object-oriented technologies.

Course contents


A prior knowledge and understanding of programming languages and algorithms, and of the object-oriented paradigm is required to attend with profit this course. These notions are normally achieved by giving an exam of Programming, Algorithms and Data Structures, and OO Programming.

Fluent spoken and written Italian is a necessary pre-requisite: all lectures and tutorials, and all study material will be in Italian.

Course Contents

  1. The lifecycle of software systems:
    • phases and activities;
    • requirement analysis, design, implementation.
  2. Object-oriented analysis and design:
    • the object-oriented paradigm (abstraction, information hiding, inheritance, polymorphism, delegation);
    • designing object-oriented systems.
  3. The UML language:
    • use case diagrams;
    • class and object diagrams;
    • sequence diagrams;
    • collaboration diagrams;
    • state diagrams;
    • activity diagrams;
    • component diagrams;
    • deployment diagrams.
  4. Basics of user interface design
  5. Software engineering:
    • design principles and quality criteria;
    • evaluation;
    • prototyping;
    • production;
    • testing;
    • certification;
    • maintenance.


  • Slides.
Recommended readings:
  • J. Arlow, I Neustadt. UML e Unified Process. McGraw-Hill, 2003.
  • S. Bennett, J. Skelton, K. Lunn. Introduzione a UML. McGraw-Hill, 2002.
  • A. Binato, A. Fuggetta, L. Sfardini. Ingegneria del Software. Pearson, 2006.
  • G. Booch, J. Rumbaugh, I. Jacobson. The UML user guide. Addison Wesley, 1999.
  • M. Candolfini, M. Cassiani, M. Musu, C. Zavalloni. CRM: elementi di progettazione e prototipazione di un CRM con UML. Gruppo Editoriale INFOMEDIA, 2003.
  • J. Conallen. Applicazioni web con UML. Pearson, 2003.
  • M. Fowler. UML distilled. Pearson, 2004.
  • C. Ghezzi, M. Jazayeri, D. Mandrioli. Ingegneria del Software. Pearson, 2004.
  • M. Golfarelli, D. Maio, S. Rizzi. Ingegneria dei Sistemi Informativi: Lezioni ed esercizi di Modellazione dei Requisiti. Esculapio, 2000.
  • L. Maciaszek. Sviluppo di sistemi informativi con UML. Addison-Wesley, 2002.
  • R. Pressman. Principi di Ingegneria del Software. McGraw-Hill, 2008.
  • W. Zuser, S. Biffl, T. Grechenig, M. Kohle. Ingegneria del software con UML e Unified Process. McGraw-Hill, 2004.

Teaching methods

  • Lessons and exercises in the classroom
  • Self-evaluations

Assessment methods

The exam consists of a 90-minutes written test; no books or notes can be accessed during the test. The test includes a design section, that requires to solve a requirement analysis and modeling problem with UML, and a theoretical section based on a few open questions on all the course contents. The maximum evaluation score is 30/30. To attend the exam, each student must sign up via web within a deadline. Those who cannot sign up must immediately communicate the problem to the teaching secretariat. Deciding whether to allow them to attend the exam or not is up to the teacher. Once the test results have been published, each student has to write an email to the teacher to explain whether (s)he wants to accept the grade or not.

Teaching tools

Downloadable didactic material

Office hours

See the website of Stefano Rizzi