PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Software Design and Architecture

01VRZYG, 01VRZOV

A.A. 2025/26

Course Language

Inglese

Degree programme(s)

Master of science-level of the Bologna process in Ingegneria Informatica (Computer Engineering) - Torino

Course structure
Teaching Hours
Lezioni 30
Esercitazioni in aula 30
Lecturers
Teacher Status SSD h.Les h.Ex h.Lab h.Tut Years teaching
Vetro' Antonio   Professore Associato IINF-05/A 15 15 0 0 1
Co-lectures
Espandi

Context
SSD CFU Activities Area context
ING-INF/05 6 B - Caratterizzanti Ingegneria informatica
2025/26
Key software stakeholders often focus on correctness of expected behavior rather than future adaptability, but this approach is short-sighted: a program that works perfectly but it is not reliable, or it cannot be changed will become obsolete as requirements evolve. On the other hand, a non-functional but easily adaptable program can be continuously refined to meet new needs. In essence, while immediate functionality is vital, the ability to adapt to future changes and to satisfy other non-functional quality characteristics is essential to the long-term life of a software system. The main pedagogical goal of this course is to teach design and architectural patterns that help balancing functionality, adaptability and other non-functional quality characteristics to ensure that software remains valuable to end users over time.
Key software stakeholders often focus on correctness of expected behavior rather than future adaptability, but this approach is short-sighted: a program that works perfectly but it is not reliable, or it cannot be changed will become obsolete as requirements evolve. On the other hand, a non-functional but easily adaptable program can be continuously refined to meet new needs. In essence, while immediate functionality is vital, the ability to adapt to future changes and to satisfy other non-functional quality characteristics is essential to the long-term life of a software system. The main pedagogical goal of this course is to teach design and architectural patterns that help balancing functionality, adaptability and other non-functional quality characteristics to ensure that software remains valuable to end users over time.
• Understanding and applying design principles: students will know how to recognize and apply key design principles which are essential for creating flexible and maintainable software. • Understanding and applying architectural patterns: students will gain knowledge of different architectural patterns that support the evolution of components over time. • How to document software architecture: Students will develop skills in using visual notations to document and communicate software architecture and design. These outcomes should enable students to design and architect robust, adaptable and high-quality software systems.
• Understanding and applying design principles: students will know how to recognize and apply key design principles which are essential for creating flexible and maintainable software. • Understanding and applying architectural patterns: students will gain knowledge of different architectural patterns that support the evolution of components over time. • How to document software architecture: Students will develop skills in using visual notations to document and communicate software architecture and design. These outcomes will enable students to design and architect robust, adaptable and high-quality software systems.
-
-
• Design principles and patterns • Software design qualities • Component principles • Architectural patterns • Notations and languages for describing architectures
• Design principles and patterns • Software design properties and qualities • Component principles • Architectural patterns • Microservices • Notations and languages for describing architectures • Deployment models
The course will be organized with a balance of theory and practice. Short conventional lectures will introduce the theory concerning the main topics of the course. Such lectures will be followed by practical sessions (either collective practices or hands-on development sessions). Whenever possible, students will learn from real software systems and conducting practical activities in classroom laboratories and exercises. Guest lectures from professional architects overseeing complex software systems will be organized, depending on guests’ availability.
The course is organized with a balance of theory and practice. Conventional lectures will introduce the theory concerning the main topics of the course. Such lectures will be followed by practical sessions (either collaborative exercises or hands-on development sessions). Students will also learn from real software systems and guest lectures with architects overseeing complex software systems will be organized (when feasible, depending on guests’ availability).
The main bibliographic references of the course are: • Robert C. Martin, Clean Architecture, 2017 • Chris Richardson, Mircroservices Patterns, 2018
The main bibliographic references of the course are listed below. Software Design: - M.Fowler, K. Scott, UML Distilled, 3rd ed. Addison-Wesley, 2003. - E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley, 1995. - E.Freeman, E.Freeman, K.Sierra, B.Bates. Head First Design Patterns, O’Reilly, 2004 Software Architecture: - Robert C. Martin, Clean Architecture, 2017 - Simon Brown. The C4 model for visualising software architecture. Context, Containers, Components, and Code. https://c4model. com/ 2018 Microservices - Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software, Addison-Wesley, 2003 - Chris Richardson, Mircroservices Patterns, 2018
Slides; Esercizi; Video lezioni dell’anno corrente;
Lecture slides; Exercises; Video lectures (current year);
Modalità di esame: Prova orale obbligatoria; Prova scritta in aula tramite PC con l'utilizzo della piattaforma di ateneo;
Exam: Compulsory oral exam; Computer-based written test in class using POLITO platform;
... The 50% percent of the mark will be based on a practical project, allowing students to apply the techniques discussed in the course and develop relevant skills. The remaining 50% will come from a final oral examination, which will focus on a critical discussion of the student's project experience and the knowledge gained throughout the course
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Compulsory oral exam; Computer-based written test in class using POLITO platform;
The 50% percent of the mark will be based on a practical project, which will allow the students to apply the techniques discussed in the course and develop relevant skills. The remaining 50% will come from a final oral examination which will focus on a critical discussion of the student's project experience, preceded by a preliminary quiz with closed questions to ensure a minimum level of theoretical knowledge.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Esporta Word