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
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.
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).