2nd Cycle Studies - Mestrado
Programming, Software Engineering, Computer Technology.
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.
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.
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.
Resolution Problems: 15.0%
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.