Tutorial Slides on Software Architecture
Authors: M. Shaw and D. Garlan
- Architectures for Software Systems
- Acknowledgment
- Tutorial Outline
- Part I: Architectural Design
- Typical Descriptions of Software
Architectures
- Typical Descriptions of Software
Architectures
- Observations about Designers
- Software Architecture
- The Role of Software Architecture
- Architectural Design Task
- Expected Benefits
- Anticipated Benefits
- Part II: The Conceptual Vocabulary of
Styles
- Common Architectural Idioms
- Group 1: Dataflow Architectures
- Data Flow Systems
- Kinds of Data Flow Systems
- Batch Sequential
- Batch Sequential: Model
- Pipes and Filters
- Pipes and Filters: Model
- Batch Sequential vs Pipe & Filter
(UNIX
- Group 2: Call-and-Return Architectures
- Control Flow vs Data Flow
- Main Program/Subroutine Pattern
- Main Program and Subroutines
- Data Abstraction or Object-Oriented
- Object Architectures: Model
- Group 3: Independent Components
- Communicating Processes
- Communicating Processes
- Event Systems
- Event Systems: Model
- Group 5: Data-Centered Systems
(Repositories)
- Repository (Blackboard)
- Interpreter: Model
- Group 4: Virtual machines
- Interpreter
- Interpreter: Model
- Layered Pattern
- Layered Pattern: Model
- Comparison of System Patterns
- Common Architectural Idioms
- The Punch Line
- Part III: Design Decisions and Processes
- The Argument
- Guidance for Architectural Design
- Problems vs Solutions
- Problem Frames and their Diagrams
- Solution based on Problem Frame
- Workpiece Problem Frame
- Workpieces Frame
- Simple IS Problem Frame
- Simple IS Frame
- Simple Control Problem Frame
- Simple Control Frame
- Attaching Things
- Fully-general tools
- Distinguishing architectural styles
- Simple Design Space: Image Compression
- Image Compression: Special Considerations
- Rules of Thumb Re Data Flow
- Rules of Thumb Re Objects and Repositories
- Rules of Thumb Re Interacting Processes
- Rules of Thumb Re Virtual Machines
- Evaluating Implementation Choices
- Comparing Architectures: Key Word In
Context
- KWIC: Key Word In Context
- KWIC: Shared Memory Solution
- KWIC: ADT Solution
- KWIC: Event Solution
- KWIC: Dataflow Solution
- Design Considerations
- KWIC Comparisons
- Architectural Design Reviews
- Architectural Design Reviews
- Elements of a Good Architectural
Presentation
- Other Aspects to Consider
- Break
- Part IV: Short Case Studies
- Case 1: Architecture Family -- The
Tektronix Experience
- Oscilloscope: O-O Approach
- Oscilloscope: Layered Approach
- Oscilloscope: Pipe-Filter Approach
- Oscilloscope: Extended Filters
- Oscilloscope: Extended Pipes
- Results
- Case 2: Heterogeneous Use of Idioms
- Case 2a: Hierarchical, Heterogeneous
Architecture
- Process Control Architecture
- Object-oriented elaboration of Process
Supervision
- Case 2b: Subsystems with different
structure
- Control Architecture for Cruise Control
- Control View Clarifies Design Problem
- State Machine for Activating Cruise Control
- Event Table for Determining Set Point
- Complete Cruise Control System
- Case 2c: Re-interpretation of a design
- Simple Blackboard
- Hearsay-II Instance of Blackboard
- Hearsay-II Instance of Blackboard
- Hearsay-II Instance of Blackboard
- Important Ideas
- Case 3: Use of Architectural Vocabulary
in Design Analysis
- (hand-drawn slides from architecture
workshop in which this example was developed)
- Data Ooze
- Part V: What if Your Parts Don't Match?
- Building Systems from Parts
- Working with Mismatched Parts
- Why Not Just Standardize?
- Packaging Heterogeneity is Inevitable
- Coping with Heterogeneity
- Fixing Architectural Mismatch
- Part VI: Menu of Other Topics
- Topics of Possible Future Interest
- Problem Frames
- Choosing Architectures
- Architectural Representations
- Tools and Environments
- Formal Modeling and Analysis
- Reprise
- Tutorial Outline