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.
Software qualities and designing for software qualities: performance; modifiability; availability; veriafiability; scalability; interoperability; monitoring.
Architectural patterns: Domain Model; Domain Object; Layers; Pipes & Filters; other POSA patterns; hexagonal architecture.
Architecture of distributed systems; client/server, peer-to-peer, remote invocation; broker; asynchronous communication; messaging; components; component-based architecture; container.
Service-based architecture; services; service-based-architecture; REST services; microservices; cloud native software.
DevOps and software delivery: environments and their management; cloud computing; virtual machines and system virtualization; containers and container-based virtualization; container orchestration; continuous delivery.
Middleware.

Core Documentation

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

Type of delivery of the course

Lessons and seminars on specific practical topics.

Type of evaluation

Small practical project (optional). Written exam (two questions). Oral exam (two questions).