Architectures for Software Systems

Year
1
Academic year
2019-2020
Code
02008463
Subject Area
Computer Science
Language of Instruction
English
Mode of Delivery
Face-to-face
Duration
SEMESTRIAL
ECTS Credits
7.0
Type
Compulsory
Level
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)

No

Syllabus

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].