Académique Documents
Professionnel Documents
Culture Documents
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/224001127
CITATIONS READS
3,470 27,669
3 authors, including:
All content following this page was uploaded by Rick Kazman on 07 February 2017.
Software Architecture
in
Practice
Paul C. Clements
Software Engineering Institute
Carnegie MellonInstitute
Software Engineering University
Pittsburgh,
Carnegie MellonPA 15213-3890 USA
University
Pittsburgh, PA 15213-3890
Sponsored by the U.S. Department of Defense
Sponsored
2002 bybyCarnegie Mellon
the U.S. Department University
of Defense
1999 by Carnegie Mellon University
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 2
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 3
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 4
Carnegie Mellon University
Software Engineering Institute
Stakeholders of a System
Development Maintenance
organizations Marketing End user organization Customer
management stakeholder stakeholder stakeholder stakeholder
stakeholder
Architect
Ohhhhh...
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 5
Carnegie Mellon University
Software Engineering Institute
Development Organization
Concerns
Business issues
investing in, and then amortizing the infrastructure
keeping cost of installation low
investing in, and then utilizing personnel
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 6
Carnegie Mellon University
Software Engineering Institute
Technical Environment
Current trends: todays information system will likely
employ a
database management system
Web browser for delivery and distribution across
platforms
This was not true 10 years ago.
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 7
Carnegie Mellon University
Software Engineering Institute
Architects Background
Architects develop their mindset from their past
experiences.
Prior good experiences will lead to replication of
prior designs.
Prior bad experiences will be avoided in the new
design.
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 8
Carnegie Mellon University
Software Engineering Institute
Architects influences
Stakeholders
Requirements
Architect(s)
Development Architecture
organization
Technical
System
environment
Architects
experience
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 9
Carnegie Mellon University
Software Engineering Institute
Customer requirements
Architects experience
Technical environment
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 11
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 12
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 13
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 14
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 15
Carnegie Mellon University
Software Engineering Institute
Architects influences
Stakeholders
Requirements
Architect(s)
Development Architecture
organization
Technical
System
environment
Architects
experience
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 16
Carnegie Mellon University
Software Engineering Institute
ABC Summary
Architecture involves more than just technical
requirements for a system. It also involves non-technical
factors, such as the
architects background
development environment
business goals of the sponsoring organization
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 17
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 18
Carnegie Mellon University
Software Engineering Institute
A diagram:
Control
process
(CP)
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 19
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 22
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 23
Carnegie Mellon University
Software Engineering Institute
Architectural Style -1
Architectural style: a description of component and
connector types and a pattern of their runtime control
and/or data transfer [Shaw 96]
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 24
Carnegie Mellon University
Software Engineering Institute
Architectural Style -2
A style may be thought of as
a set of constraints on an architecture
an abstraction for a set of related architectures
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 25
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 26
Carnegie Mellon University
Software Engineering Institute
Important of Architecture to a
Development Project
Architecture is important for three primary reasons.
1. It provides a vehicle for communication among
stakeholders.
2. It is the manifestation of the earliest design
decisions about a system.
3. It is a transferable, reusable abstraction of a
system.
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 28
Carnegie Mellon University
Software Engineering Institute
Communication Vehicle
Architecture is a frame of reference in which
competing interests may be exposed, negotiated.
negotiating requirements with users
keeping customer informed of progress, cost
implementing management decisions and
allocations
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 29
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 30
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 31
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 32
Carnegie Mellon University
Software Engineering Institute
Reusable Model
An architecture is an abstraction: a one-to-many
mapping (one architecture, many systems).
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 33
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 34
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 35
Carnegie Mellon University
Software Engineering Institute
Architectural Structures -1
In a house, there are plans for
rooms
electrical wiring
plumbing
ventilation
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 36
Carnegie Mellon University
Software Engineering Institute
Architectural Structures -2
Which structures are used, and why?
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 37
Carnegie Mellon University
Software Engineering Institute
Module Structure
Components: modules, work assignments
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 38
Carnegie Mellon University
Software Engineering Institute
Process Structure
Components: tasks, processes
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 39
Carnegie Mellon University
Software Engineering Institute
Uses Structure
Components: procedures
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 40
Carnegie Mellon University
Software Engineering Institute
Calls Structure
Components: procedures
Relation: invokes
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 41
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 42
Carnegie Mellon University
Software Engineering Institute
Class Structure
Components: objects
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 43
Carnegie Mellon University
Software Engineering Institute
Physical Structure
Components: tasks, processes, processors
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 44
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 45
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 46
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 47
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 48
Carnegie Mellon University
Software Engineering Institute
Behavior-Hiding Module
Physical
models module
Application
data types mod.
Extended Shared Filter
computer services behavior module
module module
Software
utilities module
System
generation mod.
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 49
Carnegie Mellon University
Software Engineering Institute
Device interfaces
sensor inputs
values
to display calculated
Data banker real-world
values Physical models
computed values stored values
stored sensor
values Shared services
values
computed values
filtered
Function drivers values Filter behaviors
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 50
Carnegie Mellon University
Software Engineering Institute
Uses View
Function drivers
Shared services
Device interfaces
Extended computer
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 51
Carnegie Mellon University
Software Engineering Institute
Shared services
Device interfaces
Extended computer
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 52
Carnegie Mellon University
Software Engineering Institute
Lecture Summary -1
Architecture is important because
it provides a communication vehicle among
stakeholders
it is the result of the earliest design decisions about a
system
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 54
Carnegie Mellon University
Software Engineering Institute
CelsiusTech Systems
Swedish defense
contractor
approximately
2000 employees
Long-time
supplier of
naval shipboard
command and
control systems
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 55
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 56
Carnegie Mellon University
Software Engineering Institute
CelsiusTechs Response
Business strategy
create a product family
make the software scaleable over a wide range of
systems
Technical strategy
create a new generation of system
- hardware, software
- supporting development approach
configure systems from product family; each new
project was added to the family
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 57
Carnegie Mellon University
Software Engineering Institute
Workstation
Processor
Data Surface to
Gun Radar E/O Torpedo
air missile
processor processor detector director processor
interface
Workstation
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 59
Carnegie Mellon University
Software Engineering Institute
30-70 CPUs
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 60
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 61
Carnegie Mellon University
Software Engineering Institute
Result of Changes:
Shrinking, Predictable Schedules
A
D
Ships
E
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 62
Carnegie Mellon University
Software Engineering Institute
180
160
140
120
100
80
60
40
20
0
1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 63
Carnegie Mellon University
Software Engineering Institute
120
100
80
60
40
20
0
A B C D E
Ships
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 64
Carnegie Mellon University
Software Engineering Institute
Cummins, Inc.
Worlds largest
manufacturer of
large diesel engines.
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 65
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 66
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 67
Carnegie Mellon University
Software Engineering Institute
Others followed.
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 68
Carnegie Mellon University
Software Engineering Institute
Cummins results
Achieved a product family capability with a breathtaking
capacity for variation, or customization
9 basic engine types
4-18 cylinders
3.9 - 164 liter displacement
12 kinds of electronic control modules
5 kinds of microprocessors
10 kinds of fuel systems
diesel fuel or natural gas
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 69
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 71
Carnegie Mellon University
Software Engineering Institute
Fuel systems 2 2 3 5 5 10 11
Engines 3 3 5 5 12 16 17
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 72
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 73
Carnegie Mellon University
Software Engineering Institute
Quick
Quick time
time to
to market
market
Effective
Effective use
use of
of limited
limited resources
resources Improved
Product
efficiency
Product alignment
alignment
and
Low
Low cost
cost production
production productivity
Low
Low cost
cost maintenance
maintenance
How?
Mass
Mass customization
customization
Strategic reuse.
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 74
Carnegie Mellon University
Software Engineering Institute
2000s
1980s
1990s Software
1970s Components
1960s Modules Objects Product Lines
Subroutines
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 75
Carnegie Mellon University
Software Engineering Institute
Products
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 76
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 77
Carnegie Mellon University
Software Engineering Institute
Product lines
take
take economic
economic advantage
advantage of
of commonality
commonality
bound
bound variability
variability
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 78
Carnegie Mellon University
Software Engineering Institute
Current
Practice
Number of Products
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 81
Carnegie Mellon University
Software Engineering Institute
Organizational Benefits
Improved productivity
by as much as 10x
Decreased cost
by as much as 60%
Increased quality
by as much as 10X fewer defects
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 82
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 84
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 85
Carnegie Mellon University
Software Engineering Institute
Framework Goals
Identify the foundational concepts underlying the
software product lines and the essential issues to
consider before fielding a product line.
Case studies,
experience reports, Workshops
and pilots
Collaborations
with customers
Surveys on actual product lines
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 87
Carnegie Mellon University
Software Engineering Institute
Practice Areas
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 88
Carnegie Mellon University
Software Engineering Institute
Software Engineering
Practice Areas
Architecture Definition
Architecture Evaluation
Component Development
COTS Utilization
Mining Existing Assets
Requirements Engineering
Software System Integration
Testing
Understanding Relevant Domains
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 89
Carnegie Mellon University
Software Engineering Institute
Technical Management
Practice Areas
Configuration Management
Data Collection, Metrics, and Tracking
Make/Buy/Mine/Commission Analysis
Process Definition
Product Line Scoping
Technical Planning
Technical Risk Management
Tool Support
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 90
Carnegie Mellon University
Software Engineering Institute
Organizational Management
Practice Areas
Achieving the Right Organizational Structure
Building and Communicating a Business Case
Customer Interface Management
Developing and Implementing an Acquisition Strategy
Funding
Launching and Institutionalizing a Product Line
Market Analysis
Operations
Organizational Planning
Organizational Risk Management
Technology Forecasting
Training
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 91
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 93
Carnegie Mellon University
Software Engineering Institute
Adoption strategies
Proactive (predictive)
Look ahead, define the product lines scope proactively
Learn all you can from domain analysis
Product line adoption is an organization-wide affair
Cummins and CelsiusTech both took this approach
Reactive
Start with 1-2 products
React to new customers as they arrive
Extractive
Extract commonality from existing products
Form common asset base from what you already have
Product line adoption can start in small pockets, spread as
acceptance grows
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 94
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 95
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 96
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 97
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 98
Carnegie Mellon University
Software Engineering Institute
Aspect-Oriented Software
Development (AOSD)
Also called multi-dimensional separation of
concerns. Recognition that separation of concerns
may be performed in many ways.
Example:
Dividing a system into elements based on likely
application-based changes
Each element still must reflect
- a particular error-handling philosophy
- an architectural packaging decision
- naming conventions
- interaction protocols
- and many others
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 99
Carnegie Mellon University
Software Engineering Institute
AOSD (contd.)
AOSD tools and languages let programmers weave
these separate concerns together in discrete elements,
so that these global design decisions (that have far-
reaching effects) can be changed locally.
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 100
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 101
Carnegie Mellon University
Software Engineering Institute
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 102
Carnegie Mellon University
Software Engineering Institute
PACC -2
Two driving questions:
Given a set of components with certified quality
attributes, what can you conclude about the qualities
of a system including those component?
Given a quality attribute need for a system, what must
you be able to certify about its components to know
youve satisfied that need?
1999 by Carnegie Mellon University Version 1.0 CECOM Course 2, Lecture 1 - page 103