Sie sind auf Seite 1von 23

Logical Architecture

Object Oriented Analysis and Design


Aron Trauring
T++ Technical Skills Training Program
CUNY Institute for Software Design & Development (CISDD)
New York Software Industry Association (NYSIA)
December 13th, 2004
Aron Trauring Zoteca
T++ CISDD NYSIA Logical Architecture - OOAD
Logical Architecture What?
Large-scale organization of software classes into packages, subsystems and
layers
Logical not related to actual deployment
Big Picture
Transition from analysis to design
Not a deployment view (e.g. dont indicate MySQL or Solaris)
Larman p. 199 Swing bad
Aron Trauring Zoteca 1
T++ CISDD NYSIA Logical Architecture - OOAD
Logical Architecture How Much?
Process specic
Top-down (UP) puts emphasis on up-front eort in architectural design early
iterations build core architecture
Bottom-up (XP) architecture is empirical result of eort dont design for
the future
Aron Trauring Zoteca 2
T++ CISDD NYSIA Logical Architecture - OOAD
Grouping Types
Package Namespace Register.Record
Subsystem group of packages forming a discrete engine with cohesive
responsibilities Reports
Layer major subsystems UI
Each group should be internally cohesive and weakly coupled with outside
Aron Trauring Zoteca 3
T++ CISDD NYSIA Logical Architecture - OOAD
UML Package Diagram
Aron Trauring Zoteca 4
T++ CISDD NYSIA Logical Architecture - OOAD
Aron Trauring Zoteca 5
T++ CISDD NYSIA Logical Architecture - OOAD
Package
Dependency line large scale coupling
Aron Trauring Zoteca 6
T++ CISDD NYSIA Logical Architecture - OOAD
Packages as Namespaces
Aron Trauring Zoteca 7
T++ CISDD NYSIA Logical Architecture - OOAD

Aron Trauring Zoteca 8


T++ CISDD NYSIA Logical Architecture - OOAD
Package Diagrams When?
UP design up front sketches, and then generate backwards to keep model
up to date
XP generate backwards from code to help in re-organization
Particularly useful for mapping dependencies in large scale systems
Aron Trauring Zoteca 9
T++ CISDD NYSIA Logical Architecture - OOAD
Principles for Grouping Classes in Packages
Common Closure Principle classes in a package should need changing for
similar reasons. The
Common Reuse Principle classes in a package should all be reused together
Aron Trauring Zoteca 10
T++ CISDD NYSIA Logical Architecture - OOAD
Clear Flow of Dependency [Martin]
Flow in one direction (with well-dened exceptions)
Acyclic Dependency Principle limit cycles in the dependencies cycles
should be localized
Stable Dependencies Principle the more dependencies coming into a pack-
age, the more stable the packages interface needs to be (changes have greater
impact),
Stable Abstractions Principle more stable packages tend to have a higher
proportion of interfaces and abstract classes
Dependency relationships are not transitive Asset Domain changes eects
Leasing Domain not Leasing Presentation
Aron Trauring Zoteca 11
T++ CISDD NYSIA Logical Architecture - OOAD
Packages are used in many places use a keyword, such as global
General dependency notation enough
Aron Trauring Zoteca 12
T++ CISDD NYSIA Logical Architecture - OOAD
Package Diagrams to Clarify Complexity
Aron Trauring Zoteca 13
T++ CISDD NYSIA Logical Architecture - OOAD
Aron Trauring Zoteca 14
T++ CISDD NYSIA Logical Architecture - OOAD
Layers aspects
Subject area aspect
Aron Trauring Zoteca 15
T++ CISDD NYSIA Logical Architecture - OOAD
Separating Interface and Implementation
Aron Trauring Zoteca 16
T++ CISDD NYSIA Logical Architecture - OOAD
Aron Trauring Zoteca 17
T++ CISDD NYSIA Logical Architecture - OOAD
Delegation / Realization
Generalization arrow Inheritance / sub-classing
Aron Trauring Zoteca 18
T++ CISDD NYSIA Logical Architecture - OOAD
Layers
Larman Figure 13.4 p.203
Aron Trauring Zoteca 19
T++ CISDD NYSIA Logical Architecture - OOAD
Layers What?
Large-scale logical structure of distinct, related responsibilities
Clean, cohesive separation of concerns
Lower layers more general
Higher layers more application specic
Coupling and collaboration is from higher to lower layers
Aron Trauring Zoteca 20
T++ CISDD NYSIA Logical Architecture - OOAD
Layers Why?
Low coupling avoids changes rippling through system
Separation of concerns allows for more exibility changing UI or changing
DBMS
Separation of concerns allow for reuse of packages in other systems (particularly
lower layers)
Easier division of work among teams
Aron Trauring Zoteca 21
T++ CISDD NYSIA Logical Architecture - OOAD
Model-View Separation Principle
Do not connect or couple UI objects to non-UI objects
Do not put application logic in the UI object methods
Allows for changing views or having multiple views
allows for no-gui call to application logic
Aron Trauring Zoteca 22

Das könnte Ihnen auch gefallen