Search for contacts, projects,
courses and publications

Software Architecture


Pautasso C.

Course director

Pantiuchina J.



Architecture is not only necessary as the global blueprint to manage the complexity of large software systems, but should also be seen as the focus of the main design decisions influencing the quality attributes of the resulting system. This class teaches the students to structure complex software systems using components and connectors while keeping track of the rationale behind their design decisions. Content: Quality Attributes, Descriptive vs. Prescriptive Architecture, Architectural Modeling, Architectural Styles and Patterns, Modularity and Components, Reusability and Interfaces, Composability and Connectors, Compatibility and Coupling, Deployability and Portability, Scalability, Availability and Services, Flexibility and Microservices


Software Design & Modeling



  • G. Fairbanks, Just Enough Software Architecture: A Risk-Driven Approach, Marshall & Brainerd, August 2010. (textbook)
  • R. N. Taylor, N. Medvidovic, E. M. Dashofy, Software Architecture: Foundations, Theory, and Practice, Wiley, January 2009 (reference book)
  • Michael Keeling, Design It! From Programmer to Software Architect, Pragmatic Bookshelf, 2017 - Martin Fowler, Patterns of Enterprise Application Architecture, Addison Wesley, 2002
  • Luke Hohmann, Beyond Software Architecture: Creating and Sustaining Winning Solutions, Addison-Wesley, 2003
  • Mary Shaw and David Garlan, Software Architecture: Pespectives on an Emerging Discipline, Prentice-Hall, 1996