20810007 - ARCHITETTURA DEI SISTEMI SOFTWARE

This unit presents software systems architecture, and it involves both methodological and technological issues. Software architecture has a fundamental role in achieving the quality (i.e., non functional) properties of software systems. In particular, the unit will study the architecture of distributed software systems, including the component-based architecture, the service-oriented architecture, and architectures for the Cloud
teacher profile | teaching materials

Programme

Fundamentals: Software architecture concepts; Architectural descriptions; Software qualities; The architecture definition process.
Designing for software qualities: performance; modifiability; availability; veriafiability; scalability; interoperability.
POSA architectural patterns: Domain Model; Domain Object; Layers; Pipes & Filters; other POSA patterns (model-view-controller, shared repository, microkernel, reflection).
Architecture of distributed systems; client/server, peer-to-peer, remote invocation; broker; asynchronous communication; messaging; components; services; REST services; microservices; software architecture on the cloud.
Software delivery: environments and their management; cloud computing; system virtualization; containers; container orchestration.
Middleware.

Core Documentation

Lecture notes (http://cabibbo.dia.uniroma3.it/asw/).

Reference Bibliography

Len Bass, Paul Clements, Rick Kazman. Software Architecture in Practice. Addison Wesley, third edition, 2013. Frank Buschmann, Kevlin Henney, Douglas C. Schmidt. Pattern-Oriented Software Architecture (vol. 4): A Pattern Language for Distributed Computing. John Wiley & Sons, 2007. Nick Rozanski, Eoin Woods. Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Addison Wesley, second edition, 2012. Chris Richardson. Microservices Patterns: With examples in Java. Manning, 2019.

Type of delivery of the course

Frontal teaching. Exercises.

Type of evaluation

The exam is normally organized in 2 parts: written test and oral exam. Both the parts are based on questions related to the course topics. Nel periodo di emergenza COVID-19 l’esame di profitto sarà svolto secondo quanto previsto all’art.1 del Decreto Rettorale n°. 703 del 5 maggio 2020