Software Architecture and The UML: Grady Booch
Software Architecture and The UML: Grady Booch
Software Architecture and The UML: Grady Booch
Progress
- Limited knowledge of theory
Modern architecture
Progress
- Advances in materials
- Advances in analysis
Scale
- 5 times the span of the Pantheon
- 3 times the height of Cheops
Modeling a house
Movements in civil architecture
Bronze age/Egyptian (Imhotep)
Grecian/Roman (Vitruvius)
Progress
- Imitation of previous efforts
Byzantine/Romanesque - Learning from failure
- Integration of other forces
- Experimentation
Gothic
Mannerism (Michelangelo, Palladio)
Baroque
Engineering/Rational/National/Romantic
Art noveau
Modern movement (Wright, LeCorbusier)
Neufert Architect’s Data
The Handbook of Building Types
Commerce
shops and stores, restaurants, hotels, office
buildings, banks, airports
Industry
industrial buildings, laboratories, farm buildings
Leisure
sport, theaters and cinemas, museums
Forces in civil architecture
Load
Kinds of loads
- Dead loads
- Live loads
- Dynamic loads
Compression Tension Avoiding failure
- Safety factors
- Redundancy
- Equilibrium
Load
Any time you depart from established practice, make ten times the
effort, ten times the investigation. Especially on a very large project.
- LeMessuier
Brand, How Buildings Learn
Space plan
Services
Stuff
Structure
Skin
Site
Walker Royce
Performance Throughput
Architecture S/W
Constrain Requirements
Architecture
Representation System
Quality Attributes
Skills
Defines role
Organization
Stakeholders
Philippe Kruchten
Architectural style
An architecture style defines a family of
systems in terms of a pattern of structural
organization.
An architectural style defines
a vocabulary of components and connector types
a set of constraints on how they can be
combined
one or more semantic models that specify how a
system’s overall properties can be determined
from the properties of its parts
Architecture metamodel
Software Software
Architecture Architects
is part
of are actors in
System
is represented by
architecture
Architecture
Design Process
Software produces
Architecture Logical view
has Description
Process
is made of
view
relates to
Architecture is a Implemen-
Style guide tation view
Architectural Deployment
view view
has
Use case
Architectural style is made of view
has
constrains
is a Form Connection
depicts
Architectural
Pattern
Component Constraints
satisfies
Architectural
constrains Blueprint
Requirements
Models
Models are the language of designer, in many
disciplines
Models are representations of the system to-
be-built or as-built
Models are vehicle for communications with
various stakeholders
Visual models, blueprints
Scale
Models allow reasoning about some
characteristic of the real system
Many stakeholders, many views
Architecture is many things to many different
interested parties
end-user
customer
project manager
system engineer
developer
architect
maintainer
other developers
Multidimensional reality
Multiple stakeholders
multiple views, multiple blueprints
Architectural view
An architectural view is a simplified
description (an abstraction) of a system
from a particular perspective or vantage
point, covering particular concerns, and
omitting entities that are not relevant to this
perspective
Architecturally significant elements
Not all design is architecture
End-user Programmers
Functionality Software management
Conceptual Physical
Relation Between Views
Process view
Deployment view
How many views?
Adding views:
Data view, security view
The Value of the UML
Is an open standard
Supports the entire software development
lifecycle
Supports diverse applications areas
Is based on experience and needs of the
user community
Supported by many tools
Creating the UML
UML 1.3
OMG Acceptance, Nov 1997
Final submission to OMG, Sep ‘97 UML 1.1
public First submission to OMG, Jan ´97
feedback
UML partners UML 1.0
Embley
Rumbaugh
Singleton classes and
OMT
high-level view
Jacobson Wirfs-Brock
OOSE Responsibilities
Shlaer - Mellor Odell
Behavioral elements
interaction, state machine
Grouping elements
package, subsystem
Other elements
note
Relationships
Dependency
Association
Generalization
Realization
Extensibility Mechanisms
Stereotype
Tagged value
Constraint
Models, Views, and Diagrams
A model is a complete
description of a system
from a particular
State
perspective State
Diagrams
Class
Diagrams
Use Case Diagrams
Use Case
Diagrams State
Use Case Use Case
Diagrams State
Diagrams
Use Case Diagrams Object
Diagrams
Diagrams
Sequence Diagrams
Diagrams
Diagrams
Scenario State
Scenario
Diagrams State
Diagrams
Collaboration
Diagrams Models Component
Diagrams
Diagrams Diagrams
Scenario Component
Scenario
Diagrams
Component
Diagrams
Deployment
Statechart
Diagrams Diagrams
Diagrams Diagrams
Activity
Diagrams
Diagrams
A diagram is a view into a model
Presented from the aspect of a particular
stakeholder
Provides a partial representation of the system
Is semantically consistent with other views
Classes, interfaces,
collaborations Components
Use cases
Organization Dynamics
Package, subsystem Interaction
State machine
Software engineering process
A set of partially ordered steps intended to
reach a goal. In software engineering the
goal is to build a software product or to
enhance an existing one.
Architectural process
Sequence of activities that lead to the
production of architectural artifacts:
A software architecture description
An architectural prototype
Rational Unified Process
Iterative
Architecture-centric
Use-case driven
Risk confronting
Focus over time
Focus
Key concepts
When does
Phase, Iterations architecture happen?
Artifacts What is
produced?
models
reports, documents
Who does
Worker: Architect it?
Lifecycle Phases
time
time
time
Architecture
Unified Process structure
Phases
Process Workflows Inception Elaboration Construction Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration Mgmt
Management
Environment
Preliminary Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Iteration(s) #1 #2 #n #n+1 #n+2 #m #m+1
Iterations
Architecture and Iterations
Content
Architectural design
Identify, select, and validate
“architecturally significant” elements
Not everything is architecture
Main “business” classes
Important mechanisms
Processors and processes
Layers and subsystems
Interfaces
Method Method
Mechanisms
Screws Brakes
Keys Pipes
Rivets Valves
Bearings Springs
Pins, axles, shafts Cranks and rods
Couplings Cams
Ropes, belts, and chains Pulleys
Friction wheels Engaging gears
Toothed wheels
Flywheels
Levers and connecting rods
Click wheels and gears
Ratchets
Design Patterns
Gamma et al
Design patterns
Creational patterns
Abstract factory
Prototype
Structural patterns
Adapter
Bridge
Proxy
Behavioral patterns
Chain of responsibility
Mediator
Visitor
Mechanisms are the soul of an architecture
Modeling a design pattern
Modeling a design pattern (cont.)
Modeling a design pattern (cont.)
Software Architecture
Shaw and Garlan
Distributed Layered
Event-driven MVC
Frame-based IR-centric
Batch Subsumption
Pipes and filters Disposable
Repository-centric
Blackboard
Interpreter
Rule-based
Real-Life Object-oriented Systems
Soren Lauesen
ServiceAgent Observer
Middle layer
Relational
Database
Relational
Database
Physical application architecture
Thinner client, thicker server
Business Object
Engine Web
HTML
Business COM Beans Server CGI ASP Java
Object Server MTS ETS
Standardization of concepts
IEEE Working Group on Architecture
INCOSE Working Group on System
Architecture