Subject: Software Architecture

Scientific Area:

Computing

Workload:

80 Hours

Number of ECTS:

7,5 ECTS

Language:

Portuguese

Overall objectives:

1 - Software Architectures aims 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: ? Recognise 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 several architectures and be able to reason precisely about the properties of those architectures; ? Use domain knowledge to specialise an architecture for a particular family of applications.

Syllabus:

1 - Introduction
1.1 - SW architecture and the role of the SW architect
2 - Understanding Quality Attributes
2.1 - Availability
2.2 - Interoperability
2.3 - Modifiability
2.4 - Performance
2.5 - Security
2.6 - Testability
2.7 - Usability
3 - Architectural patterns
4 - Architecture in a lifecycle
5 - Designing an architecture
6 - Documenting an architecture
7 - Evaluating an architecture

Literature/Sources:

Len Bass, Paul Clements, Rick Kazman , 2012 , Software Architecture in Pratice, 3rd Edition , Addison-Wesley
Paul Clements, Felix Bachmann, Len Bass, David Garlan, James Ivers, Reed Little, Robert Nord, Judith Stafford , 2010 , Documenting Software Architectures: Views and Beyond, 2nd Edition , Addison-Wesley
Simon Brown , 2015 , Software architecture for developers , Leanpub
George H. Fairbanks , 2010 , Just Enough Software Architecture, A Risk-Driven Approach , Marshall & Brainerd

Assesssment methods and criteria:

Classification Type: Quantitativa (0-20)

Evaluation Methodology:
1. Lectures; 2 Exercises; 3. Practical work in the laboratory; 4. Teamwork; 5. Presentations.