Software Architectures / Arquitecturas de Software

Keywords: 
Software architectures
Program: 
MHCI
Program: 
MEI
Program: 
MET
Program: 
Others
Calendar: 
UMa
Semester: 
Spring
Lecturers: 
Leonel Nóbrega
Credits: 
7.5 ECTS

Architectures for Software Systems aim to teach you how to design, understand and evaluate systems at an architectural level of abstraction. By the end of the course you should be able to:

  • Recognize major architectural styles in existing software systems;
  • Describe an architecture accurately;
  • Generate architectural alternatives for a problem and choose among them;
  • Construct a medium-sized software system that satisfies an architectural specification;
  • Use existing definitions and development tools to expedite such tasks;
  • Understand the formal definition of a number of architectures and be able to reason precisely about the properties of those architectures;
  • Use domain knowledge to specialize an architecture for a particular family of applications.
Readings: 

Software Architecture in Practice, Second Edition, Len Bass, Paul Clements, Rick Kazman, Addison-Wesley, 2003

Documenting Software Architectures: Views and Beyond, Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Robert Nord, Judith Stafford Addison-Wesley, 2002

Evaluation: 
30% Questions on readings (1 or 2 per week, including podcasts)
30% Assignments (3 or 4)
40% Project (3 deliverables)