Chapter 13 Logical Architecture
Logical Architecture Large-scale organization of classes Packages Subsystems Layers Tools - UML package diagrams
Layer Coarse grained Cohesive responsibility Strict or relaxed E.g. User Interface Strict or relaxed
Software Architecture Many definitions Key aspect: Large scale, big ideas Motivation Constraints Organization Patterns Responsibilities Connections
Design with Layers Organize layers using related responsibilities Collaboration and Coupling Layers Pattern Model view controller pattern
Why? Separation of concerns Encapsulate complexity Replaceable Reusable function Team organization
Domain layer vs. Application Layer Application layer organization Create domain object that encapsulate application logic (Domain Layer) Domain layer != Domain model However - many domain model concepts become domain layer classes
Terminology Tier - current usage: physical nodes Layers Partitions - parallel division of layers
SSD, System Operations, Layers When there is a UI layer: SSD shows operations to the UI Layer
Summary Separation into layers is a common first step In Architecture centric design, this flows from the software architecture