Architectures for Software Systems
1
2019-2020
02008463
Computer Science
English
Face-to-face
SEMESTRIAL
7.0
Compulsory
2nd Cycle Studies - Mestrado
Recommended Prerequisites
Not applicable.
Teaching Methods
Methodologies defined and implemented by CMU professors. In practice, this course includes theoretical lectures with detailed exposition of concepts, principles and fundamental techniques for analyzing software artifacts, along with practical examples intended to increase students' interest in theoretical concepts and exemplify their application to real situations.
Learning Outcomes
After completing this course, students will: be able to describe an architecture accurately; capably recognize major architectural styles in existing software systems; competently 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; capably 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
Course Overview and Software Architecture Defined; Architectural Drivers; Structures and Views; Dataflow Styles; Client-Server and Tiered Architectures; Middleware; Event Styles; Shared Information Styles; Middleware; Event Styles; Guidance for the Architect; Design by Selection; Architecture Evaluation; Strategic Reuse: Product Lines; ACDM; Documentation: Using UML for Design Representation; Formal Specification and Analysis; Architecture Conformance; Performance; Availability; SOA and Web Services; Security; Usability; Organizational Alignment; Global Distributed Development; Platforms; Research Directions.
Head Lecturer(s)
Bruno Miguel Brás Cabral
Assessment Methods
Assessment
Questions on Readings: 30.0%
Final Project: 30.0%
Assignments: 40.0%
Bibliography
Software Architecture: Perspectives on an Emerging Discipline, by Mary Shaw and David Garlan, Prentice Hall 1996 [SG96]
Software Architecture in Practice, Second Edition, by Len Bass, Paul Clements, and Rick Kazman, AddisonWesley 2003 [BCK03].
Documenting Software Architectures: Views and Beyond, Second Edition, by Clements, et al. AddisonWesley 2011 [C+11].
Architecting Software Intensive Systems: A Practitioner’s Guide, by Anthony J. Lattanze, Taylor and Francis/Auerbach 2008 [ASIS08].