System Design I - Decomposing the System

References:

  1. Bernd Bruegge and Allen H. Dutoit, "Object-Oriented Software Engineering", Third Edition, Chapter 6

6.1 Introduction: A Floor Plan Example

6.2 An Overview of System Design

6.3 - System Design Concepts

6.3.1 - Subsystems and Classes

6.3.2 - Services and Subsystem Interfaces

6.3.3 - Coupling and Cohesion

6.3.4 - Layers and Partitions

6.3.5 - Architectural Styles

Repository

Model / View / Controller

Client / Server

Peer-to-peer

Three-tier

Four-tier

Pipe and filter

Example - The Open GL Graphics Processing Pipeline:

Example - Scientific Visualization with AVS:

6.4 - System Design Activities: From Objects to Subsystems

6.4.1 - Starting Point: Analysis Model for a Route Planning System

6.4.2 - Identifying Design Goals

Performance Criteria

Dependability Criteria

Cost Criteria

Maintenance Criteria

End User Criteria

6.4.3 - Identifying Subsystems

Encapsulating subsystems with the Facade design pattern