Informatics Engineering

SOFTWARE ARCHITECTURE

General Data

Type of credits: ECTS
Number of credits: 7.50
Status: Optional
Type: Course
Academic Year:
Term:
Languages: English, Portuguese
Available for Mobility Students: No
Restricted to alliance: No
Code: Sin codigo

Coordination

Description

Theory
2

Theory/Practice
1

Laboratory
2

Instructors

Nuno Silva


 

Contents

P1. Software Architecture (10%)
- Life-cycle activities,
- The role of the architect.
P2. Architectural drivers (10%)
- Design Purpose,
- Quality attributes,
- Architecturally Significant Requirements (ASR)
- Primary functionality,
- Architectural concerns,
- Constraints.
P3. Design Concepts (20%)
- Styles and reference architectures
- Patterns
- Tactics
- External developed components.
P4. Architectural design with Attribute-Driven Design (ADD) (30%)
- ADD v3.0: key characteristics,
- Steps and its iteration nature,
- Architectural design decisions as a process,
- Cost Benefit Analysis Method (CBAM)),
- Documentation during design,
- Other life-cycle activities.
P5. Modular Monolithic and Microservice-oriented Architectures (30%)
- Characteristics,
- Migration and decomposition strategies,
- Architectural design patterns for distributed/decentralized systems,
- Other patterns and distributed/decentralized architecture styles.

Learning Outcomes

This course promotes knowledge and skills upon software architecture, mainly in the context of enterprise distributed/decentralized applications.

At the end of the course the student must be able to:
- CO1. Debate concept, principles and processes (methods and tactics) of software architecture, and justify their suitability in specific situations (Bloom Level (BL): 5 /6))

- CO2. Investigate and systematize architectural drivers of the software to develop (BL: 5/6)

- CO3. Design the architecture of a software application adopting design styles and patterns, and considering architectural drivers and contextual factors to reach a trade-off between benefits and potential risks in an evaluation of its adequacy (BL: 6/6)

- CO4. Build a software application from the most promising (at that moment) an architectural design with periodic revisions (BL: 6/6)

- CO5. Test and evaluate the developed software application considering the defined drivers and contextual factors (BL: 5/6)