Software Architecture
1
2019-2020
02023397
Software Engineering
Portuguese
Face-to-face
SEMESTRIAL
6.0
Elective
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)
NoSyllabus
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.