software architecture and the uml
DESCRIPTION
Software Architecture and the UML. Grady Booch. Architecting a dog house. Can be built by one person Requires Minimal modeling Simple process Simple tools. Architecting a house. Built most efficiently and timely by a team Requires Modeling Well-defined process Power tools. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/1.jpg)
Software Architectureand the UML
Grady Booch
![Page 2: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/2.jpg)
2
Architecting a dog house
Can be built by one personRequires
Minimal modelingSimple processSimple tools
![Page 3: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/3.jpg)
3
Architecting a house
Built most efficiently and timely by a teamRequires
ModelingWell-defined processPower tools
![Page 4: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/4.jpg)
4
Architecting a high rise
![Page 5: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/5.jpg)
5
Early architecture
Progress - Limited knowledge of theory
![Page 6: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/6.jpg)
6
Modern architecture
Progress - Advances in materials - Advances in analysis
Scale - 5 times the span of the Pantheon - 3 times the height of Cheops
![Page 7: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/7.jpg)
7
Modeling a house
![Page 8: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/8.jpg)
8
Movements in civil architecture Bronze age/Egyptian (Imhotep)
Grecian/Roman (Vitruvius)
Byzantine/Romanesque
Gothic
Mannerism (Michelangelo, Palladio)
Baroque
Engineering/Rational/National/Romantic
Art noveau
Modern movement (Wright, LeCorbusier)
Progress - Imitation of previous efforts - Learning from failure - Integration of other forces - Experimentation
![Page 9: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/9.jpg)
9
Kinds of civil architecture
Community houses, flats and apartments, gardens,
education, hospitals, religion
Commerce shops and stores, restaurants, hotels, office
buildings, banks, airports
Industry industrial buildings, laboratories, farm buildings
Leisure sport, theaters and cinemas, museums
Neufert Architect’s DataThe Handbook of Building Types
![Page 10: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/10.jpg)
10
Forces in civil architecture
Avoiding failure - Safety factors - Redundancy - Equilibrium
Compression
Load
Tension
Load
Kinds of loads - Dead loads - Live loads - Dynamic loads
Any time you depart from established practice, make ten times theeffort, ten times the investigation. Especially on a very large project. - LeMessuier
![Page 11: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/11.jpg)
11
Shearing layers of change
Site
Skin
Structure
Services
Space plan
Stuff
Brand, How Buildings Learn
![Page 12: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/12.jpg)
12
Dimensions of software complexity
Higher technical complexity - Embedded, real-time, distributed, fault-tolerant - Custom, unprecedented, architecture reengineering - High performance
Lower technical complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance
Highermanagement complexity - Large scale - Contractual - Many stake holders - “Projects”
Lowermanagement complexity - Small scale - Informal - Single stakeholder - “Products”
Defense MIS System
Defense Weapon SystemTelecom
Switch
CASE Tool
National Air TrafficControl System
Enterprise IS(Family of ISApplications)
CommercialCompiler
BusinessSpreadsheet
IS ApplicationDistributed Objects
(Order Entry)
Small ScientificSimulation
Large-ScaleOrganization/Entity
Simulation
An average software project: - 5-10 people - 10-15 month duration - 3-5 external interfaces - Some unknowns & risks
EmbeddedAutomotive
Software
IS ApplicationGUI/RDB
(Order Entry)
Walker Royce
![Page 13: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/13.jpg)
13
Forces in Software
Technology churn
Our enemy is complexity, and it’s our goal to kill it.Jan Baan
Performance Throughput
Capacity
Availability
Fail safe
Fault tolerance
FunctionalityCost Compatibility
Resilience
The challenge over the next 20 years will not be speed or cost or performance;it will be a question of complexity.Bill Raduchel, Chief Strategy Officer, Sun Microsystems
![Page 14: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/14.jpg)
14
The domain of architecting
ArchitectureQualities
Process
Architecture Representation
The “what” The “why”
The “how”The “who”
SystemFeatures
Architecture S/W Requirements
SystemQuality Attributes
Satisfies
Constrain
Organization
Architect
Skills
Stakeholders
Defines role
Produces
Follows
DefinesTechnology
Wojtek Kozaczynski
![Page 15: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/15.jpg)
15
We all know that ...Architecture and design are the same thing
Architecture and infrastructure are the same thing
<my favorite technology> is the architecture
A good architecture is the work of a single architect
Architecture is flat, one blueprint is enough
Architecture is just structure
System architecture precedes software architecture
Architecture cannot be measured and validated
Architecture is a Science
Architecture is an Art
Philippe Kruchten
![Page 16: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/16.jpg)
16
Architecture defined (again)
Architecture n (1555) 1: the art of science of building, specifically, the art or practice of designing and building structures and esp. habitable ones 2 a: formation or construction as or as if as the result of conscious act <the ~ of the garden> b: a unifying or coherent form or structure <the novel lacks ~>
Merriam Webster’s Collegiate Dictionary10th edition
![Page 17: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/17.jpg)
17
Architecture defined (yet again)
Software architecture encompasses the set of significant decisions about the organization of a software system selection of the structural elements and their
interfaces by which a system is composed
behavior as specified in collaborations among those elements
composition of these structural and behavioral elements into larger subsystem
architectural style that guides this organization
Mary Shaw, CMUGrady Booch,
Philippe Kruchten,Rich Reitman
Kurt Bittner, Rational
![Page 18: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/18.jpg)
18
Architecture defined (continued)
Software architecture also involves usage
functionality
performance
resilience
reuse
comprehensibility
economic and technology constraints and tradeoffs
aesthetic concerns
Mary Shaw, CMUGrady Booch,
Philippe Kruchten,Rich Reitman
Kurt Bittner, Rational
![Page 19: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/19.jpg)
19
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
Mary Shaw, CMU
![Page 20: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/20.jpg)
20
Architecture metamodel
Software Architecture
Software Architecture Description
Architectural view
is made of
is represented by
Architecture Design Process
produces
Form
Component
Connection
Architectural Pattern
is a
is made of
Software Architects
are actors in
Logical view
Process view
Implemen- tation view
Deployment view
Requirements
satisfies
Architectural style
has
has
has
is a
System architecture
is part of
Architecture Style guide
Constraints
constrains
constrains
Use case view
relates to
Architectural Blueprint
depicts
![Page 21: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/21.jpg)
21
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
![Page 22: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/22.jpg)
22
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 stakeholdersmultiple views, multiple blueprints
![Page 23: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/23.jpg)
23
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
![Page 24: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/24.jpg)
24
Architecturally significant elements
Not all design is architecture
Main “business” classes
Important mechanisms
Processors and processes
Layers and subsystems
Architectural views = slices through models
![Page 25: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/25.jpg)
25
Characteristics of a Good Architecture
Resilient
Simple
Approachable
Clear separation of concerns
Balanced distribution of responsibilities
Balances economic and technology constraints
![Page 26: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/26.jpg)
26
Representing System Architecture
Logical View
End-user Functionality
Implementation View
Programmers Software management
Process View
PerformanceScalabilityThroughput
System integrators
Deployment View
System topology Delivery, installation
Communication
System engineering
Conceptual Physical
Use Case View
![Page 27: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/27.jpg)
27
Relation Between Views
Logical view Component view
Process view
Deployment view
![Page 28: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/28.jpg)
28
How many views?
Simplified models to fit the context
Not all systems require all views:
Single processor: drop deployment view
Single process: drop process view
Very Small program: drop implementation view
Adding views:
Data view, security view
![Page 29: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/29.jpg)
29
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
![Page 30: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/30.jpg)
30
Creating the UML
Booch method OMT
Unified Method 0.8OOPSLA ´95
OOSEOther methods
UML 0.9Web - June ´96
publicfeedback
Final submission to OMG, Sep ‘97
First submission to OMG, Jan ´97
UML 1.1OMG Acceptance, Nov 1997
UML 1.3
UML 1.0UML partners
![Page 31: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/31.jpg)
31
UML Partners Rational Software Corporation Hewlett-Packard I-Logix IBM ICON Computing Intellicorp MCI Systemhouse Microsoft ObjecTime Oracle Platinum Technology Taskon Texas Instruments/Sterling Software Unisys
![Page 32: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/32.jpg)
32
Meyer
Before and after conditions
Harel
StatechartsGamma, et al
Frameworks and patterns,
HP Fusion
Operation descriptions and message numbering
Embley
Singleton classes andhigh-level view
Wirfs-Brock
Responsibilities
Odell
Classification
Shlaer - Mellor
Object lifecycles
Rumbaugh
OMT
Booch
Booch method
Jacobson
OOSE
Contributions to the UML
![Page 33: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/33.jpg)
33
Overview of the UML
The UML is a language for visualizing
specifying
constructing
documenting
the artifacts of a software-intensive system
![Page 34: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/34.jpg)
34
Overview of the UML
Modeling elements
Relationships
Extensibility Mechanisms
Diagrams
![Page 35: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/35.jpg)
35
Modeling Elements
Structural elements class, interface, collaboration, use case,
active class, component, node
Behavioral elements interaction, state machine
Grouping elements package, subsystem
Other elements note
![Page 36: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/36.jpg)
36
Relationships
Dependency
Association
Generalization
Realization
![Page 37: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/37.jpg)
37
Extensibility Mechanisms Stereotype
Tagged value
Constraint
![Page 38: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/38.jpg)
38
Models, Views, and Diagrams
Use CaseDiagramsUse Case
DiagramsUse CaseDiagrams
ScenarioDiagramsScenario
DiagramsCollaborationDiagrams
StateDiagramsState
DiagramsComponentDiagrams
ComponentDiagramsComponent
DiagramsDeploymentDiagrams
StateDiagramsState
DiagramsObjectDiagrams
ScenarioDiagramsScenario
DiagramsStatechartDiagrams
Use CaseDiagramsUse Case
DiagramsSequenceDiagrams
StateDiagramsState
DiagramsClassDiagrams
ActivityDiagrams
A model is a completedescription of a systemfrom a particularperspective
Models
![Page 39: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/39.jpg)
39
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
In the UML, there are nine standard diagrams Static views: use case, class, object,
component, deployment
Dynamic views: sequence, collaboration, statechart, activity
![Page 40: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/40.jpg)
40
Use Case Diagram
Captures system functionality as seen by users
![Page 41: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/41.jpg)
41
Use Case Diagram
Captures system functionality as seen by users
Built in early stages of development
Purpose Specify the context of a system
Capture the requirements of a system
Validate a system’s architecture
Drive implementation and generate test cases
Developed by analysts and domain experts
![Page 42: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/42.jpg)
42
Class Diagram
Captures the vocabulary of a system
![Page 43: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/43.jpg)
43
Class Diagram
Captures the vocabulary of a system
Built and refined throughout development
Purpose Name and model concepts in the system
Specify collaborations
Specify logical database schemas
Developed by analysts, designers, and implementers
![Page 44: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/44.jpg)
44
Object Diagram
Captures instances and links
![Page 45: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/45.jpg)
45
Object Diagram
Shows instances and links
Built during analysis and design
Purpose Illustrate data/object structures
Specify snapshots
Developed by analysts, designers, and implementers
![Page 46: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/46.jpg)
46
Component Diagram
Captures the physical structure of the implementation
![Page 47: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/47.jpg)
47
Component Diagram
Captures the physical structure of the implementation
Built as part of architectural specification
Purpose Organize source code
Construct an executable release
Specify a physical database
Developed by architects and programmers
![Page 48: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/48.jpg)
48
Deployment Diagram
Captures the topology of a system’s hardware
![Page 49: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/49.jpg)
49
Deployment Diagram
Captures the topology of a system’s hardware
Built as part of architectural specification
Purpose Specify the distribution of components
Identify performance bottlenecks
Developed by architects, networking engineers, and system engineers
![Page 50: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/50.jpg)
50
Sequence Diagram
Captures dynamic behavior (time-oriented)
![Page 51: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/51.jpg)
51
Sequence Diagram
Captures dynamic behavior (time-oriented)
Purpose Model flow of control
Illustrate typical scenarios
![Page 52: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/52.jpg)
52
Collaboration Diagram
Captures dynamic behavior (message-oriented)
![Page 53: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/53.jpg)
53
Collaboration Diagram
Captures dynamic behavior (message-oriented)
Purpose Model flow of control
Illustrate coordination of object structure and control
![Page 54: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/54.jpg)
54
Statechart Diagram
Captures dynamic behavior (event-oriented)
![Page 55: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/55.jpg)
55
Statechart Diagram
Captures dynamic behavior (event-oriented)
Purpose Model object lifecycleModel object lifecycle
Model reactive objects (user interfaces, Model reactive objects (user interfaces, devices, etc.)devices, etc.)
![Page 56: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/56.jpg)
56
Activity Diagram
Captures dynamic behavior (activity-oriented)
![Page 57: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/57.jpg)
57
Activity Diagram
Captures dynamic behavior (activity-oriented)
Purpose Model business workflows
Model operations
![Page 58: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/58.jpg)
58
Architecture and the UML
OrganizationPackage, subsystem
DynamicsInteractionState machine
Design View Implementation View
Process View
Components Classes, interfaces,collaborations
Active classes
Deployment View
Nodes
Use Case ViewUse cases
![Page 59: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/59.jpg)
59
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
![Page 60: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/60.jpg)
60
Rational Unified Process
Iterative
Architecture-centric
Use-case driven
Risk confronting
![Page 61: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/61.jpg)
61
Focus over time
Discovery Invention
Focus
Implementation
![Page 62: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/62.jpg)
62
Key concepts
Phase, Iterations
Process Workflows Activity, steps
Artifacts models
reports, documents
Worker: Architect
What does What does happen?happen?
What is What is produced?produced?
Who does Who does it?it?
When does When does architecture happen?architecture happen?
![Page 63: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/63.jpg)
63
Lifecycle Phases
time
Inception Elaboration Construction Transition
Inception Define the scope of the project and develop business case
Elaboration Plan project, specify features, and baseline the architecture
Construction Build the product
Transition Transition the product to its users
![Page 64: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/64.jpg)
64
Major Milestones
time
Vision Baseline Architecture
InitialCapability
Product Release
Inception Elaboration Construction Transition
![Page 65: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/65.jpg)
65
Phases and Iterations
An iteration is a sequence of activities with an established plan and evaluation criteria, resulting in an executable release
ArchIteration
... Dev Iteration
Dev Iteration
... TransIteration
...
Release Release Release Release Release Release Release Release
PrelimIteration
...
Inception Elaboration Construction Transition
![Page 66: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/66.jpg)
66
Architecture-Centric
Models are vehicles for visualizing, specifying, constructing, and documenting architecture
The Unified Process prescribes the successive refinement of an executable architecture
time
Architecture
Inception Elaboration Construction Transition
![Page 67: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/67.jpg)
67
Unified Process structure
ManagementEnvironment
Business Modeling
Implementation
Test
Analysis & Design
Preliminary Iteration(s)
Iter.#1
PhasesProcess Workflows
Iterations
Supporting Workflows
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#m
Iter.#m+1
Deployment
Configuration Mgmt
Requirements
Elaboration TransitionInception Construction
![Page 68: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/68.jpg)
68
Architecture and Iterations
Use caseModel
DesignModel
DeploymentModel
TestModel
ImplementationModel
Content
![Page 69: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/69.jpg)
69
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
Produce a Software Architecture Documen
![Page 70: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/70.jpg)
70
Architectural design workflow Select scenarios: criticality and risk
Identify main classes and their responsibility
Distribute behavior on classes
Structure in subsystems, layers, define interfaces
Define distribution and concurrency
Implement architectural prototype
Derive tests from use cases
Evaluate architectureIterate
Use case view
Logical view
Deployment view
Implementation view
Process view
![Page 71: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/71.jpg)
71
Sources of architecture
Theft
Method
Intuition
Classical system Unprecedented system
Theft
Method
Intuition
![Page 72: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/72.jpg)
72
Patterns
A pattern is a solution to a problem in a context
A pattern codifies specific knowledge collected from experience in a domain
All well-structured systems are full of patterns
Idioms
Design patterns
Architectural patterns
![Page 73: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/73.jpg)
73
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
daVinci
![Page 74: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/74.jpg)
74
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
Design PatternsGamma et al
![Page 75: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/75.jpg)
75
Modeling a design pattern
![Page 76: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/76.jpg)
76
Modeling a design pattern (cont.)
![Page 77: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/77.jpg)
77
Modeling a design pattern (cont.)
![Page 78: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/78.jpg)
78
Architectural patterns Distributed Layered
Event-driven MVC
Frame-based IR-centric
Batch Subsumption
Pipes and filters Disposable
Repository-centric
Blackboard
Interpreter
Rule-based
Software ArchitectureShaw and GarlanBuschmann et al
A System of PatternsBuschman et al
Booch
![Page 79: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/79.jpg)
79
Complex business systemReal-Life Object-oriented Systems
Soren Lauesen
SQL Database
Middle layer
GUI layer
ServiceAgent
purchase(customer, product, items)
Customer
name : StringAddress : String
save()
Customer
name : StringAddress : String
save()getName()updateName()
Customer Order Line
**
Product
**
Order Line
items : Product
getName()updateName()
Observer
update()
Order
date : Date
Product
name : Stringprice : Currency
getName()updateName()
Sales
product : Product
![Page 80: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/80.jpg)
80
Logical application architecture
RelationalDatabase
GraphicalUserInterface
RelationalDatabase
GraphicalUserInterface
BusinessObjectModel
GraphicalUserInterface
BusinessObjectModel
RelationalDatabase
![Page 81: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/81.jpg)
81
Physical application architecture
Relational Database Server(s)
Client CWWW Browser
WebServer
HTMLCGI
ASP Java
Business ObjectServices
Business ObjectEngine
Application
Business ObjectServices
Client A
Business ObjectEngine
Thinner client, thicker server
Client BApplication
Business ObjectServices
Business ObjectEngine
Business Object Server
DCOMADO/R
CORBA Beans
COMMTS
BeansETS
![Page 82: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/82.jpg)
82
Complex Internet systemThe Second Wave
Paul Dreyfus, Netscape
Client
Server
ApplicationServer
FulfillmentSystem
FinancialSystem
InventorySystem
RDBMSServer
Dynamic HTML, JavaScript, Javaplug-ins, source code enhancements
Java, C, C++, JavaScript, CGI
Java, C, C++, JavaBeans, CORBA, DCOM
Native languages
![Page 83: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/83.jpg)
83
Who are the architects?
Experience software development
domain
Pro-active, goal oriented
Leadership, authority
Architecture team balance
![Page 84: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/84.jpg)
84
Architect
Not just a top level designer Need to ensure feasibility
Not the project manager But “joined at the hip”
Not a technology expert Purpose of the system, “fit”,
Not a lone scientist Communicator
![Page 85: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/85.jpg)
85
Software architecture team charter Defining the architecture of the software Maintaining the architectural integrity of the
software Assessing technical risks related to the
software design Proposing the order and contents of the
successive iterations Consulting services Assisting marketing for future product
definition Facilitating communications between project
teams
![Page 86: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/86.jpg)
86
Architecture is making decisions
The life of a software architect is a long (and sometimes painful) succession of suboptimal decisions made partly in the dark.
![Page 87: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/87.jpg)
87
Futures
ADL: Architecture Description Languages UML, UniCon, LILEAnna, P++, LEAP, Wright,
µRapid
Standardization of concepts IEEE Working Group on Architecture
INCOSE Working Group on System Architecture
Systematic capture of architectural patterns
![Page 88: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/88.jpg)
88
References (Architecture) Len Bass, Paul Clements & Rick Kazman, Software Architecture in
Practice, Addison-Wesley, 1998.
Frank Buschmann, Régine Meunier, Hans Rohnert, Peter Sommerlad, and Michael Stahl, Pattern-Oriented Software Architecture - A System of Patterns, Wiley and Sons, 1996.
Christine Hofmeister, Robert Nord, Dilip Soni, Applied Software Architecture, Addison-Wesley 1999.
Eric Gamma, John Vlissides, Richard Helm, Ralph Johnson, Design Patterns, Addison-Wesley 1995.
Philippe Kruchten, “The 4+1 View Model of Architecture,” IEEE Software, 12 (6), November 1995, IEEE.
http://www.rational.com/support/techpapers/ieee/
Eberhardt Rechtin, Systems Architecting: Creating and Building Complex Systems, Englewood Cliffs NJ, Prentice-Hall, 1991.
![Page 89: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/89.jpg)
89
References (Architecture) Eberhardt Rechtin & Mark Maier, The Art of System
Architecting, CRC Press, 1997.
Recommended Practice for Architectural Description, Draft 2.0 of IEEE P1471, May 1998
http://www.pithecanthropus.com/~awg/
Mary Shaw, and David Garlan, Software Architecture—Perspectives on an Emerging Discipline, Upper Saddle River, NJ, Prentice-Hall, 1996.
Bernard I. Witt, F. Terry Baker, and Everett W. Merritt, Software Architecture and Design—Principles, Models, and Methods, New York NY, Van Nostrand Reinhold, 1995.
The World-wide Institute of Software Architects
http://www.wwisa.org
![Page 90: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/90.jpg)
90
References (UML) Grady Booch, James Rumbaugh, Ivar Jacobson, The Unified
Modeling Language User Guide, Addison-Wesley, 1999.
![Page 91: Software Architecture and the UML](https://reader035.vdocuments.site/reader035/viewer/2022062409/568147ae550346895db4ed6f/html5/thumbnails/91.jpg)
91
References (Process) Barry Boehm, “A spiral model of software development and
enhancement,” IEEE Computer, May 1998.
Barry Boehm, “Anchoring the software process,” IEEE Software, July 1996.
Grady Booch, Object Solutions, Addison-Wesley, 1995.
Philippe Kruchten, “A Rational Development Process,” CrossTalk, July 1996.
http://www.rational.com/support/techpapers/devprcs/
Philippe Kruchten, The Rational Unified Process - An Introduction, Addison-Wesley, 1999.
Rational Unified Process 5.0, Rational, Cupertino, CA, 1998
Walker Royce, Software Project Management: a Unified Framework, Addison-Wesley, 1998
The Software Program Manager’s Network
http://www.spmn.com