Software Architecture

Year
1
Academic year
2023-2024
Code
02023397
Subject Area
Software Engineering
Language of Instruction
English
Other Languages of Instruction
Portuguese
Mode of Delivery
Face-to-face
Duration
SEMESTRIAL
ECTS Credits
6.0
Type
Compulsory
Level
2nd Cycle Studies - Mestrado

Recommended Prerequisites

Programming, Software Engineering, Computer Technology.

Teaching Methods

Theoretical classes with detailed exposition, using visual aids, of the concepts, principles and fundamental theories for creating and assessing software architectures.

Practical-laboratory practices, in which students are required to acquire knowledge about tools and techniques for developing and assessing software architectures and that, under the guidance of the teachers, develop a project, as well as execute and discuss the realization of 3 practical assignements.

Learning Outcomes

After completing this course, students will: be able to describe an architecture accurately; capably recognize major architectural styles in existing software systems; generate architectural alternatives for a problem, and choose among them; have the skills needed to 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 about the properties of those architectures; use domain knowledge to specialize an architecture for a particular family of applications.

Work Placement(s)

No

Syllabus

Fundamental concepts of Software Architecture (SA): the role of SA in software development

Major architectural styles and patterns in software

Analysis of software requirements and its role in the construction and evaluation of an AS

Drawing an AS: creation, reasoning and selection of architectural alternatives

Reusing software: strategies for software reuse and assessing its impact on SA. The use of COTS middleware and an SA

Formal notations for specifying and analyzing AS

Documentation of a SA

Implementation of a SA: detailed design and design patterns

Evaluation of a SA: respect for requirements management and software tradeoffs between quality attributes

Consideration of future trends in the software and its impact on SA.

Head Lecturer(s)

António Pedro Gaspar Damasceno

Assessment Methods

Assessment
Resolution Problems: 15.0%
Exam: 40.0%
Project: 45.0%

Bibliography

Software Architecture in Practice, Third Edition, by Len Bass, Paul Clements, and Rick Kazman. AddisonWesley 2013.

Documenting Software Architectures: Views and Beyond, Second Edition, by Clements, et al.. AddisonWesley 2011.

Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Addison-Wesley, 1988.