Software Architecture

Year
1
Academic year
2016-2017
Code
02023397
Subject Area
Software Engineering
Language of Instruction
Portuguese
Mode of Delivery
Face-to-face
Duration
SEMESTRIAL
ECTS Credits
6.0
Type
Elective
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. In theses classes, students will be given written tests (5 minutes) focusing in the content of several articles made available to students as homework.

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.

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)

Bruno Miguel Brás Cabral

Assessment Methods

Assessment
Mini Tests: 15.0%
Exam: 35.0%
Project: 50.0%

Bibliography

Software Architecture: Perspectives on an Emerging Discipline, by Mary Shaw and David Garlan, Prentice Hall 1996

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

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

Architecting Software Intensive Systems: A Practitioner’s Guide, by Anthony J. Lattanze, Taylor and Francis/Auerbach 2008.