- Software Architecture
- Summary
Course Syllabus
Obiettivi
Come applicare i principi di progettazione, i modelli e le architetture per realizzare sistemi software riutilizzabili e flessibili. Come documentare l'architettura del sistema. Architetture software della nuova generazione di sistemi.
Contenuti sintetici
Modelli di architetture software. Sistemi a componenti. Progettazione di architetture a diversi livelli di astrazione.
Programma esteso
- Why architecture is important, Undestanding quality attributes
- Interfaces
- Virtualization, Cloud, Mobile Systems
- Architecturally Significant Requirements
- Designing an Architecture
- Evaluating an Architecture
- The Role of Architects in Projects
- Architecture Competence, Overview on Documenting an Architecture
- Managing Architecture Debt
- Design of an architectural solution for a simplified case study
Prerequisiti
Conoscenze e competenze generali acquisite nel corso di studi, con riferimento ad aspetti di programmazione e progettazione ad oggetti, ingegneria del software, sistemi operativi e sistemi distribuiti.
Modalità didattica
Lezioni frontali e attività pratica mediante approfondimenti e svolgimento di un progetto pratico.
Le lezioni in classe prevedono una modalità erogative e interattiva.
Il corso sarà erogato in italiano.
Materiale didattico
Verranno indicati articoli e risorse.
Software Architecture in Practice 4° Edition (14 october 2021), SEI Series in Software Engineering by Len Bass, Paul Clements, Rick Kazman. ISBN-10: 0136886094
[suggerito] Engineering Software Products by Ian Sommerville. ISBN-10: 013521064-X
Periodo di erogazione dell'insegnamento
Primo semestre.
Modalità di verifica del profitto e valutazione
La valutazione finale si baserà su una discussione su:
- approfondimento assegnato
- un documento riassuntivo di specifica architetturale del progetto sviluppato.
Criteri di valutazione utilizzati: qualità della presentazione e comprensione dell'argomento esposto per la prima parte; qualità della soluzione proposta nella seconda parte.
Orario di ricevimento
Su appuntamento.
Aims
How to apply design principles, patterns, and architectures to create reusable and flexible software systems. How to document the system architecture. Software architectures of the new generation of systems.
Contents
Software architecture models. Component-based systems. Architectures design at different abstraction levels.
Detailed program
- Why architecture is important, Undestanding quality attributes
- Interfaces
- Virtualization, Cloud, Mobile Systems
- Architecturally Significant Requirements
- Designing an Architecture
- Evaluating an Architecture
- The Role of Architects in Projects
- Architecture Competence, Overview on Documenting an Architecture
- Managing Architecture Debt
- Design of an architectural solution for a simplified case study
Prerequisites
General knowledge and expertise about programming, object-oriented design, software engineering, operating systems, and distributed systems.
Teaching form
Lectures and practical activities by means of in-depth studies and carrying out a practical project.
The in-class lectures follow the "modalità erogativa" and "modalità interattiva" modes.
The course will be given in Italian.
Textbook and teaching resource
Articles and resources will be indicated.
Software Architecture in Practice 4° Edition (14 october 2021), SEI Series in Software Engineering by Len Bass, Paul Clements, Rick Kazman. ISBN-10: 0136886094
[suggested] Engineering Software Products by Ian Sommerville. ISBN-10: 013521064-X
Semester
First semester.
Assessment method
The final evaluation will be based on a discussion on:
- the in-depth study assigned
- a document summarizing the architectural specification of the developed project
Evaluation criteria used: quality of the presentation and knowledge of the topic in the first part; quality of the solution proposed in the second part.
Office hours
On appointment.
Key information
Staff
-
Daniela Micucci
-
Marco Mobilio