Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Architecting a house
Modeling a house
Space plan
Services
Stuff
Structure
Skin
Site
Walker Royce
Lower
management
complexity
- Small scale
- Informal
- Single stakeholder
- Products
Telecom
Switch
Commercial
Embedded Compiler
Automotive
Software
CASE Tool
Small Scientific
Simulation
IS Application
Distributed Objects
(Order Entry)
Defense
Weapon System
National Air Traffic
Control System
Large-Scale
Organization/Entity
Simulation
Enterprise IS
(Family of IS
Applications)
Defense
MIS System
IS Application
GUI/RDB
(Order Entry)
Business
Spreadsheet
Higher
management
complexity
- Large scale
- Contractual
- Many stake holders
- Projects
Forces in Software
Functionality
Cost
Compatibility
Capacity
Fail safe
Availability
Fault tolerance
Performance
Throughput
Technology churn
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
Jan Baan
Wojtek Kozaczynski
The what
Architecture
Qualities
Architecture
Constrain
Architecture
Representation
The who
System
Features
Satisfies
S/W
Requirements
System
Quality Attributes
Technology
Produces
Defines
The how
Follows
Architect
Process
Skills
Defines role
Stakeholders
Organization
Architecture defined
usage
functionality
performance
resilience
reuse
comprehensibility
economic and technology constraints and
tradeoffs
- aesthetic concerns
10
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 systems overall properties can be
determined from the properties of its parts
11
Architecture metamodel
Software
Architecture
Software
Architects
is part
of
are actors in
System
architecture
is represented by
Architecture
Design Process
produces
Software
Architecture
Description
has
Logical view
Process
view
is made of
relates to
is a
Architecture
Style guide
Architectural
view
has
Architectural style
Deployment
view
is made of
has
is a
Implementation view
Use case
view
constrains
Form
Connection
Architectural
Pattern
Component
depicts
Constraints
satisfies
constrains
Requirements
12
Architectural
Blueprint
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
13
end-user
customer
project manager
system engineer
developer
architect
maintainer
other developers
Multidimensional reality
Multiple stakeholders
multiple views, multiple blueprints
14
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
15
16
Logical View
Implementation View
End-user
Functionality
Programmers
Software management
Deployment View
System integrators
Performance
Scalability
Throughput
System engineering
System topology
Delivery, installation
Communication
Conceptual
Physical
17
Component view
Process view
Deployment view
18
Adding views:
- Data view, security view
19
20
Meyer
Before and after
conditions
Gamma, et al
Statecharts
HP Fusion
Booch
Booch method
Embley
Rumbaugh
OMT
Jacobson
Wirfs-Brock
OOSE
Responsibilities
Odell
Shlaer - Mellor
Classification
Object lifecycles
21
visualizing
specifying
constructing
documenting
22
23
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
24
Relationships
Dependency
Association
Generalization
Realization
25
Extensibility Mechanisms
Stereotype
Tagged value
Constraint
26
Scenario
Scenario
Diagrams
Collaboration
Diagrams
Diagrams
Scenario
Scenario
Diagrams
Statechart
Diagrams
Diagrams
State
State
Diagrams
Class
Diagrams
Diagrams
Use Case
Use Case
Diagrams
Use Case
Diagrams
Diagrams
State
State
Diagrams
Object
Diagrams
Diagrams
State
State
Diagrams
Component
Diagrams
Diagrams
Models
Component
Component
Diagrams
Deployment
Diagrams
Activity
Diagrams
27
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
29
Class Diagram
Captures the vocabulary of a system
31
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
32
Object Diagram
Captures instances and links
33
Object Diagram
Shows instances and links
Built during analysis and design
Purpose
- Illustrate data/object structures
- Specify snapshots
34
Component Diagram
Captures the physical structure of the
implementation
35
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
36
Deployment Diagram
Captures the topology of a systems
hardware
37
Deployment Diagram
Captures the topology of a systems
hardware
Built as part of architectural specification
Purpose
- Specify the distribution of components
- Identify performance bottlenecks
38
Sequence Diagram
Captures dynamic behavior (time-oriented)
39
Sequence Diagram
Captures dynamic behavior (time-oriented)
Purpose
- Model flow of control
- Illustrate typical scenarios
40
Collaboration Diagram
Captures dynamic behavior (messageoriented)
41
Collaboration Diagram
Captures dynamic behavior (messageoriented)
Purpose
- Model flow of control
- Illustrate coordination of object structure and
control
42
Statechart Diagram
Captures dynamic behavior (eventoriented)
43
Statechart Diagram
Captures dynamic behavior (eventoriented)
Purpose
- Model object lifecycle
- Model reactive objects (user interfaces,
devices, etc.)
44
Activity Diagram
Captures dynamic behavior (activity-oriented)
45
Activity Diagram
Captures dynamic behavior (activity-oriented)
Purpose
- Model business workflows
- Model operations
46
Design View
Classes, interfaces,
collaborations
Implementation View
Components
Use cases
Deployment View
Active classes
Nodes
Organization
Package, subsystem
Dynamics
Interaction
State machine
47
Architectural process
- Sequence of activities that lead to the
production of architectural artifacts:
A software architecture description
An architectural prototype
48
Key concepts
When does
architecture happen?
Phase, Iterations
Process Workflows
What does
happen?
- Activity, steps
Artifacts
What is
produced?
- models
- reports, documents
Who does
it?
Worker: Architect
49
Lifecycle Phases
Inception
Elaboration
Construction
Transition
time
Inception
Elaboration
50
Major Milestones
Inception
Elaboration
Construction
Transition
time
Vision
Baseline
Architecture
Initial
Capability
51
Product
Release
Inception Elaboration
Construction
Transition
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration Mgmt
Management
Environment
Preliminary
Iteration(s)
Iter.
#1
Iter.
#2
Iter.
#n
Iter. Iter.
#n+1 #n+2
Iterations
52
Iter.
#m
Iter.
#m+1
Architectural design
Identify, select, and validate
architecturally significant elements
Not everything is architecture
-
53
Logical view
Implementation view
Deployment view
Process view
Cus tom er
nam e : S tring
A ddres s : S tring
S ales
Order
date : Date
GUI lay er
s ave()
S ervic eA gent
Obs erver
upd ate()
M iddle lay er
Cus to m er
nam e : S tring
A ddres s : S tr ing
s ave()
get Nam e()
updateNam e()
P roduc t
O rder L ine
na me : S tring
pr ic e : C urren c y
item s : P roduc t
get Na me()
updateNam e()
Cus tom er
ge tNam e()
up dateNam e()
Order Line
*
P roduct
*
55
S QL Databas e
Graphical
User
Interface
Relational
Database
Graphical
User
Interface
Business
Object
Model
Relational
Database
56
Graphical
User
Interface
Business
Object
Model
Relational
Database
Client B
Client A
Client C
Application
Application
WWW Browser
DCOM
CORBA Beans
ADO/R
Business Object
Services
Business Object
Engine
COM
Business
Object Server MTS
Beans
ETS
Web
HTML
Server CGI
ASP
Java
Business Object
Services
Business Object
Services
Business Object
Engine
Business Object
Engine
57
Server
Application
Server
Fulfillment
System
Financial
System
Inventory
System
58
RDBMS
Server
Native languages
Architect
Not just a top level designer
Need to ensure feasibility
59
61