Tutorial Slides on Software Architecture

Authors: M. Shaw and D. Garlan
  1. Architectures for Software Systems
  2. Acknowledgment
  3. Tutorial Outline
  4. Part I: Architectural Design
  5. Typical Descriptions of Software Architectures
  6. Typical Descriptions of Software Architectures
  7. Observations about Designers
  8. Software Architecture
  9. The Role of Software Architecture
  10. Architectural Design Task
  11. Expected Benefits
  12. Anticipated Benefits
  13. Part II: The Conceptual Vocabulary of Styles
  14. Common Architectural Idioms
  15. Group 1: Dataflow Architectures
  16. Data Flow Systems
  17. Kinds of Data Flow Systems
  18. Batch Sequential
  19. Batch Sequential: Model
  20. Pipes and Filters
  21. Pipes and Filters: Model
  22. Batch Sequential vs Pipe & Filter (UNIX
  23. Group 2: Call-and-Return Architectures
  24. Control Flow vs Data Flow
  25. Main Program/Subroutine Pattern
  26. Main Program and Subroutines
  27. Data Abstraction or Object-Oriented
  28. Object Architectures: Model
  29. Group 3: Independent Components
  30. Communicating Processes
  31. Communicating Processes
  32. Event Systems
  33. Event Systems: Model
  34. Group 5: Data-Centered Systems (Repositories)
  35. Repository (Blackboard)
  36. Interpreter: Model
  37. Group 4: Virtual machines
  38. Interpreter
  39. Interpreter: Model
  40. Layered Pattern
  41. Layered Pattern: Model
  42. Comparison of System Patterns
  43. Common Architectural Idioms
  44. The Punch Line
  45. Part III: Design Decisions and Processes
  46. The Argument
  47. Guidance for Architectural Design
  48. Problems vs Solutions
  49. Problem Frames and their Diagrams
  50. Solution based on Problem Frame
  51. Workpiece Problem Frame
  52. Workpieces Frame
  53. Simple IS Problem Frame
  54. Simple IS Frame
  55. Simple Control Problem Frame
  56. Simple Control Frame
  57. Attaching Things
  58. Fully-general tools
  59. Distinguishing architectural styles
  60. Simple Design Space: Image Compression
  61. Image Compression: Special Considerations
  62. Rules of Thumb Re Data Flow
  63. Rules of Thumb Re Objects and Repositories
  64. Rules of Thumb Re Interacting Processes
  65. Rules of Thumb Re Virtual Machines
  66. Evaluating Implementation Choices
  67. Comparing Architectures: Key Word In Context
  68. KWIC: Key Word In Context
  69. KWIC: Shared Memory Solution
  70. KWIC: ADT Solution
  71. KWIC: Event Solution
  72. KWIC: Dataflow Solution
  73. Design Considerations
  74. KWIC Comparisons
  75. Architectural Design Reviews
  76. Architectural Design Reviews
  77. Elements of a Good Architectural Presentation
  78. Other Aspects to Consider
  79. Break
  80. Part IV: Short Case Studies
  81. Case 1: Architecture Family -- The Tektronix Experience
  82. Oscilloscope: O-O Approach
  83. Oscilloscope: Layered Approach
  84. Oscilloscope: Pipe-Filter Approach
  85. Oscilloscope: Extended Filters
  86. Oscilloscope: Extended Pipes
  87. Results
  88. Case 2: Heterogeneous Use of Idioms
  89. Case 2a: Hierarchical, Heterogeneous Architecture
  90. Process Control Architecture
  91. Object-oriented elaboration of Process Supervision
  92. Case 2b: Subsystems with different structure
  93. Control Architecture for Cruise Control
  94. Control View Clarifies Design Problem
  95. State Machine for Activating Cruise Control
  96. Event Table for Determining Set Point
  97. Complete Cruise Control System
  98. Case 2c: Re-interpretation of a design
  99. Simple Blackboard
  100. Hearsay-II Instance of Blackboard
  101. Hearsay-II Instance of Blackboard
  102. Hearsay-II Instance of Blackboard
  103. Important Ideas
  104. Case 3: Use of Architectural Vocabulary in Design Analysis
  105. (hand-drawn slides from architecture workshop in which this example was developed)
  106. Data Ooze
  107. Part V: What if Your Parts Don't Match?
  108. Building Systems from Parts
  109. Working with Mismatched Parts
  110. Why Not Just Standardize?
  111. Packaging Heterogeneity is Inevitable
  112. Coping with Heterogeneity
  113. Fixing Architectural Mismatch
  114. Part VI: Menu of Other Topics
  115. Topics of Possible Future Interest
  116. Problem Frames
  117. Choosing Architectures
  118. Architectural Representations
  119. Tools and Environments
  120. Formal Modeling and Analysis
  121. Reprise
  122. Tutorial Outline