Professional Documents
Culture Documents
Matthew Dailey
Computer Science and Information Management Asian Institute of Technology
Architecture
1 / 24
Readings
Readings for these lecture notes: - Larman (2005), Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, 3rd edition, Chapter 13. Some material c Larman (2005).
Architecture
2 / 24
Outline
Introduction
Layering Pattern
Wrap-Up
Architecture
3 / 24
Introduction
Start with the big picture
Design is another major discipline of the UP elaboration phase. To get started on design, we need the big picture or high-level organization for the software. Here we consider the logical architecture that describes the high-level organization of the system. Later we drill down to design the application logic (aka domain logic) layer.
Architecture
4 / 24
Introduction
Getting started
The logical architecture organizes the major subsystems without committing to a particular deployment. The Software Architecture document is created during elaboration and will be baselined by the end of elaboration. Logical architecture design begins with a consideration of an constraints and non-functional requirements in the supplementary specication.
Architecture
5 / 24
Introduction
Logical architecture relationships
Sample UP Artifact Relationships Domain Model
Business Modeling
Requirements
Use-Case Model
Vision
Supplementary Specification
Glossary
The logical architecture is influenced by the constraints and non-functional requirements captured in the Supp. Spec. Design Model package diagrams of the logical architecture (a static view) UI Domain Tech Services
: ProductCatalog
Register class diagrams (a static view) ... makeNewSale() enterItem(...) ... 1 1 ...
ProductCatalog
getProductSpec(...) ...
Outline
Introduction
Layering Pattern
Wrap-Up
Architecture
7 / 24
Layering Pattern
Characteristics
Most applications (especially enterprise applications) use the layering pattern: Subsystems are organized into coarse-grained groups Responsibilities within each layer are strongly related to each other Each layer may depends on the layers (relaxed layering) or layer (strict layering) below it. There are no upward dependencies.
Architecture
8 / 24
Layering Pattern
Example
UI not the Java Swing libraries, but our GUI classes based on Swing
Swing
Web
Domain
Sales
Payments
Taxes
Technical Services
Persistence
Logging
RulesEngine
Layering Pattern
Typical layers
Typical layers: UI (thick client, Web, remote) Application logic and domain objects Technical services (persistence, logging, etc.)
Architecture
10 / 24
Layering Pattern
UML packages for layers
In UML, layers are represented by packages. Unlike Java packages or C++ namespaces, UML packages can contain anything.
UI Domain
Swing
Web
Sales
UI UI::Swing UI::Web
Swing Domain::Sales
Architecture
11 / 24
Layering Pattern
Why layers?
Why layers? Coupling is reduced Application logic is well separated from user interface. General purpose business logic can be separated from application specic logic. Development activities can proceed with clear responsibilities
Architecture
12 / 24
Layering Pattern
Typical informations system layers