Home
Back
System Architecture Foundations

Architecture is about:

  • firmitas (durability)
  • utilitas (utility)
  • venustas (beauty)
Vitruvius
De Architectura

Purpose: Provides understanding of the core concepts in the discipline of software architecture, overview of different software architecture styles and how software architecture affects quality attributes of the software systems, what is the value of software architecture and the architecture decisions

Results: Skill to describe and evaluate the architecture of software systems, reason upon architectural decisions and organize the architecture work and governance

Subject matter: Overview of software architecture discipline, basic concepts related to the software and system architecture and architecture descriptions, overview of widely known software architecture styles and analysis of the main properties of these architecture styles, construction of an architecture style based on the example of REST, ways and tools for describing and documenting the architecture of software systems, quality attributes of software systems and the connection of software systems architecture to the quality attributes, evaluation of software systems architecture, value of software architecture and architecture decisions, context of software architecture – enterprise architecture

Lectures:

  1. Intro, history of and early views on architecture, design vs. architecture, software architecture discipline, concepts & terminology related to the systems architecture (ISO42010)
  2. Architecture style, classification of architecture styles, overview and analysis of main architecture styles, derived/complex architecture styles, constructing an architecture style (on example of REST)
  3. Documenting architectures, viewpoints and views, overview and analysis of main viewpoints, different architecture documentation systems, architecture description languages, architecture in code
  4. Software quality attributes, constructing, analyzing and evaluating architectures based on quality attributes, cost and value of architecture and architecture decisions
  5. Larger context – systems-of-systems, enterprise architecture, (industry) reference architectures
  6. From one system to many – system families, product line architectures, model-driven development
  7. Role of architect, architecture work, architecture governance, agile development and software architecture
  8. Future developments, architectures for cloud, adaptive systems, AI and machine learning (neural networks)

Plan:

 Nr.  Lecture
Slides
 Practical Work
Slides
 1 Software (Systems) Architecture
1. Introduction
2. Architecture -- what this is, and why to study/design it
3. Design vs. Architecture
4. History and early views on software architecture
5. Concepts and terms around architecture (ISO42010)
Slides
1. Introduction and distribution of group-work
2. Purpose of the system
3. Context of the system
4. Stakeholders
5. Concerns of stakeholders
 2 Architecture Styles
1. Commonality on different levels (from idioms to styles)
2. Classification of architecture styles
3. Overview and analysis of main architecture styles
4. Overview and analysis of combined architecture styles
5. Construction of combined architecture style (REST)
Slides
6. Alternatives for system architecture
 3 Documenting Architecture
1. Purpose of documenting and stakeholders needs
2. Documenting architecture (CMU SEI "Views and Beyond")
3. Other systems for documenting architecture ("4+1", ...)
4. Architecture decisions
5. Architecture description languages (AADL)
6. Architecture in code
Slides
7. Selecting viewpoints and views for documenting system architecture
 4 Evaluating Architecture
1. Software quality attributes
2. Software architecture evaluation methods (ATAM, CBAM, ...)
3. Cost and value of architecture decisions (options)
Slides
8. Important quality attributes
9. Selecting evaluation scenarios for important quality attributes
10. Evaluating architecture alternatives
 5 Larger Context
1. Systems or systems
2. Different levels of architecture
3. Enterprise architecture
4. Enterprise architecture frameworks (TOGAF, ArchiMate)
5. Reference architectures (BIAN)
Slides
11. Selecting best architecture alternative
12. Elaborating and documenting system architecture
 6 From one System to Many
1. System Families
2. Product-line architectures (feature models)
3. Model-driven development
Slides
13. Changing the architecture to support the system family
14. Elaborating and documenting system architecture
 7 Role of Architect
1. Role of architect
2. Architecture work and architecture governance
3. Architecture work in agile development
Slides
15. Architecture function for an enterprise
16. Presentations of group-work
 8 "Boldly to the Future"
1. Architecting for cloud
2. Architecture for adaptive systems
3. Architecture for AI and machine learning (neural networks)
Slides
17. Presentations of group-work
18. ...
  Supplementary Clarifications
Slides
 

References:

  1. M. Shaw, P. Clements, A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems, Proc. COMPSAC97, 21st Int'l Computer Software and Applications Conference, August 1997
  2. P. Kruchten, The 4+1 View Model of Architecture, IEEE Software 12(6), p 42-50, 1995
  3. Mary Shaw, David Garlan, Software Architecture, Perspectives on an Emerging Discipline, 1999
  4. Roy Thomas Fielding, Architectural Styles and the Design of Network-based Software Architectures, UCI, 2000
  5. ISO/IEC/IEEE 42010 (IEEE 1471), Systems and software engineering — Architecture description
  6. Open Group, TOGAF 9
  7. Open Group, ArchiMate 3

    --- Good to Read ---

  8. Christopher Alexander, Notes on The Synthesis of Form, Harvard University Press, 1964
  9. Dewayne E. Perry and Alexander L. Wolf. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes, 1992
  10. Robert J. Allen, A Formal Approach to Software Architecture, 1997
  11. Herbert a. Simon, The Sciences of the Artificial, 3rd ed., The MIT Press, 1996
  12. Gregor Hohpe and Bobby Woolf, Enterprise Integration Patterns, 2003
  13. Anton Jansen, Jan Bosch, Software Architecture as a Set of Architectural Design Decisions, 2005
  14. Frederick P. Brooks Jr., The Design of Design, Essays from a Computer Scientist, Addison-Wesley, 2010
  15. Frederick P. Brooks Jr., The Mythical Man-Month, Essays on Software Engineering, Addison-Wesley, 19999
  16. Jeanne W. Ross, Peter Weill, David C. Robertson, Enterprise Architecture as Strategy, Creating a Foundation for Business Execution, Harvard Business School Press, 2006

Copyright © by A.Raabe