Software Architecture and Practice
Transcript of Software Architecture and Practice
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 1/103
Software Engineering Institute
Carnegie Mellon University
Pittsburgh, PA 15213-3890
Sponsored by the U.S. Department of Defense
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 1Version 1.0
1
Software Arch itectu reSoftware Arch itectu reinin
PracticePractice
Paul C. ClementsSoftware Engineering InstituteCarnegie Mellon UniversityPittsburgh, PA 15213-3890 USA
Sponsored by the U.S. Department of Defense © 2002 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 2/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 2Version 1.0
Schedule and Out line
0900 - 0915 Introductions
0915 - 0945 The Architecture Business Cycle
0945 -1000 What is architecture?
1000 - 1030 Why is architecture important?
1030 - 1045 Break
1045 - 1115 Architectural structures
1115 - 1200 New developments in softwarearchitecture
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 3/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 3Version 1.0
Schedule and Out line
0900 - 0915 Introductions
0915 - 0945 The Architecture Business Cycle
0945 -1000 What is architecture?
1000 - 1030 Why is architecture important?
1030 - 1045 Break
1045 - 1115 Architectural structures
1115 - 1200 New developments in softwarearchitecture
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 4/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 4Version 1.0
Factors Influencing Architectures
Architectures are influenced by• stakeholders of a system• technical and organizational factors• architect’s background
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 5/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 5Version 1.0
Stakeh olders of a System
Marketingstakeholder
Behavior,performance,
security,reliability!
Low cost,keeping people
employed, leveragingexisting corporate
assets!
Low cost, timelydelivery, not changed
very often!
Modifiability!Neat features,short time to market,low cost, parity withcompeting products!
Ohhhhh...Architect
Developmentorganization’smanagementstakeholder
End userstakeholder
Maintenanceorganizationstakeholder
Customerstakeholder
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 6/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 6Version 1.0
Development Organiza t ion
Concerns
Business issues• investing in, and then amortizing the infrastructure• keeping cost of installation low
• investing in, and then utilizing personnel
Organizational structure issues• furthering vested interests, e.g.,
- maintaining an existing database organization
- supporting specialized expertise• maintaining the standard method of doing business
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 7/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 7Version 1.0
Technica l Environment
Current trends: today’s information system will likelyemploy a• database management system• Web browser for delivery and distribution across
platformsThis was not true 10 years ago.
Available technology: decisions on using a centralizedor decentralized system depend on processor cost and
communication speed; both are changing quantities.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 8/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 8Version 1.0
Architect’s Background
Architects develop their mindset from their pastexperiences.• Prior good experiences will lead to replication of
prior designs.
• Prior bad experiences will be avoided in the newdesign.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 9/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 9Version 1.0
Summary: In fluences on the Archit ect
Architect’s influences
Stakeholders
Developmentorganization
Technicalenvironment
Architect’sexperience
Requirements
Architecture
System
Architect(s)
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 10/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 10Version 1.0
Wha t Makes a Good Archit ect?
People skills: must be able to• negotiate competing interests of stakeholders• promote inter-team collaboration
Technical skills: must understand• the relationships between qualities and structures• current technology• that most requirements for an architecture are not
written down in any requirements document
Communication skills: must be able to• clearly convey the architecture to teams (both verballyand in writing)
• listen to and understand multiple viewpoints
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 11/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 11Version 1.0
Factors In fluenced by Architectures
Structure of the development organization
Enterprise goals of the development organization
Customer requirements
Architect’s experience
Technical environment
The architecture itself
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 12/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 12Version 1.0
Architecture Influences the
Development Organ iza t ion St ructure
Short term: work units are organized aroundarchitectural units for a particular system underconstruction.
Long term: when company constructs a collection ofsimilar systems, organizational units reflect commoncomponents (e.g., operating system unit or databaseunit).
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 13/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 13Version 1.0
Architecture In fluences th e Development
Organizat ion En terpr ise Goals
Development of a system may establish a foothold inthe market niche.
Being known for developing particular kinds ofsystems becomes a marketing device.
Architecture becomes a leveraging point foradditional market opportunities and networking.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 14/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 14Version 1.0
Architecture In fluences Customer
Requirements
Knowledge of similar fielded systems leadscustomers to ask for particular features.
Customers will alter their requirements on the basis ofthe availability of existing systems.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 15/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 15Version 1.0
Architecture In fluences the Architect ’s
Experience an d Technical Environment
Creation of a system affects the architect’s background.
Occasionally, a system or an architecture will affect the
technical environment.• the WWW for information systems• the three-tier architecture for database systems
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 16/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 16Version 1.0
Architecture Business Cycle (ABC)
Architect’s influences
Stakeholders
Developmentorganization
Technicalenvironment
Architect’sexperience
Requirements
Architecture
System
Architect(s)
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 17/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 17Version 1.0
ABC Summa ry
Architecture involves more than just technicalrequirements for a system. It also involves non-technicalfactors, such as the• architect’s background
• development environment• business goals of the sponsoring organization
Architecture influences the factors that affect it.• Architects learn from experience.
• The development environment is expanded and altered.• Businesses gain new marketing possibilities.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 18/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 18Version 1.0
Schedule and Out line
0900 - 0915 Introductions
0915 - 0945 The Architecture Business Cycle
0945 -1000 What is architecture?
1000 - 1030 Why is architecture important?
1030 - 1045 Break
1045 - 1115 Architectural structures
1115 - 1200 New developments in softwarearchitecture
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 19/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 19Version 1.0
Some Usual Descr ipt ions of
Architecture
“Components and connectors”
“Overall structure of system”
A diagram:Controlprocess
(CP)
Noisemodel
(MODN)
Reverbmodel
(MODR)
Prop lossmodel
(MODP)
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 20/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 20Version 1.0
Wha t ’s Wrong with “Components
and Connectors?”
What kind of component?• task? process?• object? program? function?
• library? compilation unit?• processor?
What kind of connector?• calls? invokes? signals? uses? data flow?
• subclass?• runs with? excludes?• co-located with?
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 21/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 21Version 1.0
What’s Wrong with “Overa ll
Structure?”
Which structure? Software is composed of many structures.• module
• task• uses• logical• functional
When seeing boxes and lines, we must ask• What do the boxes represent?• What do the arrows mean?
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 22/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 22Version 1.0
What ’s Wrong with the Diagram?
Same questions as the previous slide.• What kind of components?• What kind of connectors?• What structures?
• What do the boxes and arrows mean?
Plus new questions• What is the significance of the layout?• Why is control process on a higher level?
Box and arrow drawings alone are not architectures;rather, they are a starting point.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 23/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 23Version 1.0
The Definition of Software
Architecture
The software architecture of a program or computingsystem is the structure or structures of the system,which comprise software components, the externally
visible properties of those components, and therelationships among them.
Notice this means that• box-and-line drawings alone are not architectures,
but a starting point.• architecture includes behavior of components
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 24/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 24Version 1.0
Architectura l Style -1
Architectural style: a description of component and connector types and a pattern of their runtime control and/or data transfer [Shaw 96]
Architectural styles are a set of canonicalarchitectural solutions to problems.
Styles are underspecified architectures. They suggestpatterns of runtime interaction, and topologies of
components.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 25/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 25Version 1.0
Architectura l Style -2
A style may be thought of as• a set of constraints on an architecture• an abstraction for a set of related architectures
Styles appearing in the literature include• client server• cooperating process• data-centered• layered
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 26/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 26Version 1.0
Schedule and Out line
0900 - 0915 Introductions
0915 - 0945 The Architecture Business Cycle
0945 -1000 What is architecture?
1000 - 1030 Why is architecture important?
1030 - 1045 Break
1045 - 1115 Architectural structures
1115 - 1200 New developments in software
architecture
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 27/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 27Version 1.0
Impor tance of Architecture to a Development
Organ iza t ion’s Business
Software for a system or group of systems• provides leverage over a marketplace• provides a vehicle for management oversight
• provides for the scoping of products• can be used as a sales tool (e.g., conforms to
industry standards)
Enterprise architectures enable
• shorter learning time• specialized tool support• sharing of infrastructure costs among systems
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 28/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 28Version 1.0
Impor tan t of Architecture to a
Development Project
Architecture is important for three primary reasons.1. It provides a vehicle for communication amongstakeholders.
2. It is the manifestation of the earliest designdecisions about a system.
3. It is a transferable, reusable abstraction of asystem.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 29/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 29Version 1.0
Communication Vehicle
Architecture is a frame of reference in whichcompeting interests may be exposed, negotiated.• negotiating requirements with users• keeping customer informed of progress, cost
• implementing management decisions andallocations
Architecture constrains the implementation andtherefore the implementors• implementations must conform to architecture• (global) resource allocation decisions constrain
implementations of individual components
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 30/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 30Version 1.0
Resu lt of Ea r ly Design Decisions -1
The architecture dictates organizational structure fordevelopment/maintenance efforts. Examples include• division into teams• units for budgeting, planning
• basis of work breakdown structure• organization for documentation• organization for CM libraries• basis of integration• basis of test plans, testing
• basis of maintenance
Once decided, architecture is extremely hard to change!
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 31/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 31Version 1.0
Resu lt of Ea r ly Design Decisions -2
Architecture permits/precludes achievement of asystem’s desired quality attributes. For example:
If you desire Examineperformance inter-component communication
modifiability component responsibilitiessecurity inter-component communication,
specialized components (e. g., kernels)scalability localization of resourcesability to subset inter-component usagereusability inter-component coupling
The architecture influences qualities, but does notguarantee them.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 32/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 32Version 1.0
Resu lt of Ea r ly Design Decisions -3
An architecture helps users reason about andmanage change (about 80% of effort in systemsoccurs after deployment).
Architecture divides all changes into three classes.• local: modifying a single component• non-local: modifying several components• architectural: modifying the gross system topology,
communication, and coordination mechanisms
A good architecture is one in which the most likely changesare also the easiest to make.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 33/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 33Version 1.0
Reusable Model
An architecture is an abstraction: a one-to-manymapping (one architecture, many systems).
Architecture is the basis for product (system)
commonality. Entire product lines can share a singlearchitecture.
Systems can be built from large, externally developedcomponents that are tied together via architecture.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 34/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 34Version 1.0
Schedule and Out line
0900 - 0915 Introductions
0915 - 0945 The Architecture Business Cycle
0945 -1000 What is architecture?
1000 - 1030 Why is architecture important?
1030 - 1045 Break
1045 - 1115 Architectural structures
1115 - 1200 New developments in software
architecture
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 35/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 35Version 1.0
Schedule and Out line
0900 - 0915 Introductions
0915 - 0945 The Architecture Business Cycle
0945 -1000 What is architecture?
1000 - 1030 Why is architecture important?
1030 - 1045 Break
1045 - 1115 Architectural structures
1115 - 1200 New developments in software
architecture
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 36/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 36Version 1.0
Architectura l St ructures -1
In a house, there are plans for• rooms• electrical wiring• plumbing
• ventilation
Each of these constitutes a “view” of the house.• used by different people• used to achieve different qualities in the house• serves as a description and prescription
So it is with software architecture.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 37/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 37Version 1.0
Architectura l St ructures -2
Which structures are used, and why?
Common structures include• module
• process• uses• calls• data flow• class• physical
A structure provides a view of the architecture.
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 38/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 38Version 1.0
Module St ructure
Components: modules, work assignments
Relations: “is a submodule of,” “shares a secretwith”
Used: as a basis of team structure and resourceallocation
Affected attributes include: maintainability,understandability
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 39/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 39Version 1.0
Process St ructure
Components: tasks, processes
Relations: “synchronizes with,” “excludes,”“preempts”
Used: to tune system runtime performance, exploitmultiprocessing hardware
Affected attributes include: performance
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 40/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 40Version 1.0
Uses Str uctu re
Components: procedures
Relations: “assumes the correct presence of”
Used: to engineer subsets, supersets
Affected attributes include: reusability, testability,incremental development
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 41/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 41Version 1.0
Calls St ructure
Components: procedures
Relation: invokes
Used: to trace control flow; for debugging
Affected attributes include: buildability, testability,maintainability, understandability
C i M ll U i i
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 42/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 42Version 1.0
Data Flow Structu re
Components: programs, modules
Relation: “may send data to”
Used: for traceability of functionality
Affected attributes include: performance, correctness,accuracy
Carnegie Mellon University
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 43/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 43Version 1.0
Class Str uctu re
Components: objects
Relation: “inherits from,” “is instance of”
Used: to exploit similarity among objects
Affected attributes include: development time,maintainability
Carnegie Mellon University
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 44/103
© 1999 by Carnegie Mellon University
Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 44Version 1.0
Physica l St ructure
Components: tasks, processes, processors
Relation: “resides on same processor”
Used: to manage process-to-processor allocation
Affected attributes include: performance
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 45/103
Carnegie Mellon University
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 46/103
© 1999 by Carnegie Mellon University
g y
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 46Version 1.0
Architectu ral Structu res Sum ma ry
Structures are related to each other in complicatedways.
In some systems, different structures collapse into asingle one. (For example, process structure may be thesame as module structure for extremely smallsystems.)
Carnegie Mellon University
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 47/103
© 1999 by Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 47Version 1.0
Which Views Should I Use?
Rational Unified Process: 4+1 views
Siemens 4-view model
(C4ISR framework prescribes 3 views, but these arenot views of the software architecture. More later.)
What to do? Choose the structures that are useful tothe system being built and to the achievement ofqualities that are important to you.
Carnegie Mellon University
S ft E i i I tit t
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 48/103
© 1999 by Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 48Version 1.0
Architectura l Structures Example:
A-7E Corsa ir II AircraftU. S. carrier-based, light attack aircraft, used from the1960s through the 1980s
Small computer on board for navigation, weapons
delivery
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 49/103
© 1999 by Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 49Version 1.0
A-7E Modu le St ructure (2 Levels)
H a r d w a r e - H i d i n
g M o d u l e
Deviceinterfacemodule
Extendedcomputermodule
B e h a v i o r - H i d i n
g M o d u l e
Functiondrivermodule
Sharedservicesmodule
Data bankermodule
Physicalmodels module
Application
data types mod.
Filterbehavior module
Softwareutilities module
Systemgeneration mod.
S o
f t w a r e - D e c i s i o n - H i d i n g M o d u l e
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 50/103
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 51/103
© 1999 by Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 51Version 1.0
“Uses” View
Function drivers
Extended computer
Application data types
Device interfaces
Databanker
Physicalmodels
Filterbehaviors
Shared services
Softwareutilities
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 52/103
© 1999 by Carnegie Mellon University
Software Engineering Institute
CECOM Course 2, Lecture 1 - page 52Version 1.0
A-7E Su bset : Display HUD Altitude
Function drivers
Extended computer
Application data types
Device interfaces
Databanker
Physicalmodels
Filterbehaviors
Shared services
Softwareutilities
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 53/103
© 1999 by Carnegie Mellon University
g g
CECOM Course 2, Lecture 1 - page 53Version 1.0
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
An architecture is composed of many structures,documented as views , which are software componentsand their relationships.
Each structure provides engineering leverage on differentqualities. Engineer and document the structures that helpto achieve your desired qualities.
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 54/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 54Version 1.0
Schedule and Out line
0900 - 0915 Introductions0915 - 0945 The Architecture Business Cycle0945 -1000 What is architecture?1000 - 1030 Why is architecture important?1030 - 1045 Break1045 - 1115 Architectural structures1115 - 1200 New developments in software
architecture- Software product lines- Aspect-oriented software development
- Predictable assembly from certifiablecomponents
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 55/103
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 56/103
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 57/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 57Version 1.0
CelsiusTech’s 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
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 58/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 58Version 1.0
What CelsiusTech Did
Assembled a small expert architecture team with• extensive domain knowledge• previous systems experience• Objective: produce architecture that would suffice
for both systems plus new systems in the samedomain.
Produce software components that populated thisarchitecture• Components were flexible, configurable across a
wide variety of envisioned uses
System-building became a matter of integration, notconstruction.
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 59/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 59Version 1.0
SS2000 System Architecture
Dataprocessor
Workstation
Workstation
Gunprocessor
Processor
dual Ethernet LAN
WorkstationProcessor
Processor
Dataprocessor
Surface toair missileinterface
Radardetector
E/Odirector
Torpedoprocessor
Standardinterface
unit
Videoswitch
Surface tosurfacemissile
interface
Plot andtarget
extractor
Comm.processor
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 60/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 60Version 1.0
Typica l System Configura t ion
15-30 nodes on LAN
30-70 CPUs
100-300 Ada programs
1-1.5 million Ada SLOC
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 61/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 61Version 1.0
Members of SS2000 Product Family
Over 55 variants• Swedish Goteborg class Coastal Corvettes (KKV) (380tons)
• Danish SF300 class multi-role patrol vessels(300 tons)
• Finnish Rauma class Fast Attack Craft (FAC)
(200 tons)• Australian/New Zealand ANZAC frigates (3225 tons)• Danish Thetis class Ocean Patrol vessels
(2700 tons)• Swedish Gotland class A19 submarines (1330 tons)• Pakistani Type 21 class frigates• Republic of Oman patrol vessels• Danish Niels Juel class corvettes
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 62/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 62Version 1.0
Result of Changes:
Shr inking, Predictable Schedules
1986 1988 1990 1992 1994 1996
A
B
C
D
E
F
G
Ships
Hardware-to-software cost ratio changed from 35:65 to 80:20
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 63/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 63Version 1.0
Result of Changes: Lower Sta ffing
200
180
160
140
120
100
80
60
40
20
01986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 64/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 64Version 1.0
Result of Changes: Reuse
Ships
N u m b e r o f
S y s t e m M
o d u l e s
Unique application
National application
Modified
Reusable application
Common (verbatim)
140
120
100
80
60
40
20
0
A B C D E
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 65/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 65Version 1.0
Cummins, Inc.
World’s largestmanufacturer oflarge diesel engines.
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 66/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 66Version 1.0
Complex domain of var iat ion
Today’s diesel engines are driven by software• Micro-control of ignition timing to achieve optimum
mix of power, economy, emissions
• Conditions change dynamically as function of roadincline, temperature, load, etc.
• Must also respond to statutory regulations thatoften change
• Reliability is critical! Multi-million dollar fleets canbe put out of commission by a single bug
• 130KSLOC -- C, assembler, microcode• Different sensors, platforms, requirements
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 67/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 67Version 1.0
In 1993, Cummins had a problem
Six engine projects were underwayAnother 12 were planned.
Each project had complete control over itsdevelopment process, architecture, even choice of
language. Two were trying to use O-O methods.
Ron Temple (VP in charge) realized that he wouldneed another 40 engineers to handle the new projects-- out of the question.
This was no way to do business.
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 68/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 68Version 1.0
Wha t Cum mins did
In May, 1994 Temple halted all the projects.
He split the leading project.• One half built core assets -- generic software,
documentation, and other assets that every product
could use• Other half became pilot project for using the core
assets to turn out a product
In 1995, the product was launched on time (relative to
re-vamped schedule) with high quality.
Others followed.
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 69/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 69Version 1.0
Cum mins’ results
Achieved a product family capability with a breathtakingcapacity 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
Highly parameterized code. 300 parameters areavailable for setting by the customer after delivery.
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 70/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 70Version 1.0
Cum mins’ results by the numbers -1
• 20 product groups launched, which account forover 1000 separate engine applications
• 75% of all software, on average, comes from coreassets
• Product cycle time has plummeted. Time to firstengine start went from 250 person-months to a fewperson-months. One prototype was bulit over aweekend.
• Software quality is at an all-time high, whichCummins attributes to product line approach.
Carnegie Mellon University
Software Engineering Institute
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 71/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 71Version 1.0
Cum mins’ results by the numbers -2
• Customer satisfaction is high. Productivity gainsenables new features to be developed (more than200 to date)
• Projects are more successful. Before product line
approach, 3 of 10 were on track, 4 were failing, and3 were on the edge. Now, 15 of 15 are on track.
• Widespread feeling that developers are moreportable, and hence more valuable.
Carnegie Mellon University
Software Engineering Institute
C i ’ l b h b 3
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 72/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 72Version 1.0
Cum mins’ results by the numbers -3
Supported Components 1992 1993 1994 1995 1996 1997 1998
======================================================Electronic controlmodules (ECMs) 3 3 4 5 5 11 12
Fuel systems 2 2 3 5 5 10 11
Engines 3 3 5 5 12 16 17
Features * ECM 60 80 180 370 1100 2200 2400
Achieving this flexibility without the product line approachwould have required 3.6 times the staff Cummins has.
Carnegie Mellon University
Software Engineering Institute
C i ’ l b h b 4
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 73/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 73Version 1.0
Cum mins’ results by the nu mbers -4
Cummins management has a history of embracingchange, but carefully targeted change.
They esimate that process improvement alone hasbrought a benefit/cost ration of 2:1 to 3:1.
They estimate that the product line approach hasbrought a benefit/cost ration of 10:1.
Product line approach let them quickly enter and then
dominate the industrial diesel engine market.
Carnegie Mellon University
Software Engineering Institute
T o compa nies sa me goals
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 74/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 74Version 1.0
Two compa nies, sa me goals
High quality
Quick time to market
Effective use of limited resources
Product alignment
Low cost production
Low cost maintenance
Mass customization
High qualityHigh quality
Quick time to marketQuick time to market
Effective use of limited resourcesEffective use of limited resources
Product alignmentProduct alignment
Low cost productionLow cost production
Low cost maintenanceLow cost maintenance
Mass customizationMass customization
Improved
efficiency
and
productivity
How?
Strategic reuse.
Improved
efficiency
and
productivity
How?
Strategic reuse.
Carnegie Mellon University
Software Engineering Institute
Reuse History: From Ad Hoc to
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 75/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 75Version 1.0
Reuse History: From Ad-Hoc toSystematic
1960’sSubroutines
1970’sModules
1980’sObjects
1990’sComponents
2000’s
SoftwareProduct Lines
Carnegie Mellon University
Software Engineering Institute
What Is a Product Line?
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 76/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 76Version 1.0
What Is a Product Line?
A product line is a group of products sharinga common, managed set of features that satisfy specific needs of aselected market or mission.
Market strategy/Application domain
pertain to
Products
Carnegie Mellon University
Software Engineering Institute
What is a Softwar e Pr oduct Line?
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 77/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 77Version 1.0
What is a Softwar e Pr oduct Line?
A software product line is a set of software-intensivesystems sharing a common, managed set of featuresthat satisfy the specific needs of a particular marketsegment or mission and that are developed from acommon set of core assets in a prescribed way.
Carnegie Mellon University
Software Engineering Institute
Software Product Lines
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 78/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 78Version 1.0
Software Product Lines
Market strategy/Application domain
Architecture
Components
pertain to
share an
are built from
is satisfied by
used to structureProducts
CORE ASSETS
Product lines• take economic advantage of commonality• bound variability
Product lines• take economic advantage of commonality• bound variability
Carnegie Mellon University
Software Engineering Institute
How Do Product Lines Help?
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 79/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 79Version 1.0
How Do Product Lines Help?
Product lines amortize the investment in theseand other core assets :•requirements and requirements analysis•domain model•software architecture and design•performance engineering•documentation•test plans, test cases, and data•people: their knowledge and skills•processes, methods, and tools•budgets, schedules, and work plans•components
product lines = strategic reuse
earlier life-cyclereuse
morebenefit
Carnegie Mellon University
Software Engineering Institute
Economics of Produ ct Lines
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 80/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 80Version 1.0
Economics of Produ ct Lines
Derived from data supplied byLucent Technologies
Bell Laboratories Innovations
With Product Line Approach
CurrentPractice
CumulativeCost
Number of Products
Carnegie Mellon University
Software Engineering Institute
The Key Concept s
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 81/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 81Version 1.0
The Key Concept s
Use of acommonasset base
in
production
of a relatedset ofproducts
ArchitectureArchitecture Production PlanProduction PlanScope DefinitionBusiness Case
Scope DefinitionBusiness Case
Carnegie Mellon University
Software Engineering Institute
Organiza t iona l Benefit s
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 82/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 82Version 1.0
Organiza t iona l Benefit s
Improved productivity by as much as 10x
Decreased time to market (to field, to launch...) by as much as an order of magnitude
Decreased cost by as much as 60%
Decreased labor needs
by as much as 10X fewer software developers
Increased quality by as much as 10X fewer defects
Carnegie Mellon University
Software Engineering Institute
Product Line Pr act ice
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 83/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 83Version 1.0
Contexts for productlines vary widely
• nature of products
• nature of market ormission
• business goals• organizationalinfrastructure
• workforce distribution• process maturity• artifact maturity
But there are
universal essentialelements and practices.
Carnegie Mellon University
Software Engineering Institute
CelsiusTech and Cummins both lear ned
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 84/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 84Version 1.0
CelsiusTech and Cummins both lear nedvita l lessonsLessons in software engineering• architectures for product lines• testing variable architectures and components• importance of having and capturing domain knowledge• managing variations• important of large, pre-integrated chunks
Lessons in technical/project management• importance of configuration management, and why it’s harder for productlines
• product line scoping: What’s in? What’s out?• Tool support for product lines
Lessons in organizational management.• People issues: how to bring about change, how to launch the effort
• Organizational structure: Who builds the core assets?• Funding: How are the core assets paid for?• Interacting with the customer has whole new dimension
Carnegie Mellon University
Software Engineering Institute
Embodying the knowledge:
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 85/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 85Version 1.0
y g gSEI Product Line Pr act ice Fr amework
Web-based, evolving document
Describes product line essential activities• Core asset development• Product development
• Management
Describes essential and proven product line practicesin the areas of• software engineering
• technical management• organizational management
Carnegie Mellon University
Software Engineering Institute
Framework Goals
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 86/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 86Version 1.0
Identify the foundational concepts underlying thesoftware product lines and the essential issues toconsider before fielding a product line.
Identify practice areas that an organization
creating or acquiring software productlines must master.
Define practices in each practice area wherecurrent knowledge is sufficient to do so.
Provide guidance to an organization about how to moveto a product line approach for software.
Carnegie Mellon University
Software Engineering Institute
SEI In format ion Sources
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 87/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 87Version 1.0
Collaborationswith customers
on actual product lines
Case studies,experience reports,and pilots
Workshops
Surveys
Carnegie Mellon University
Software Engineering Institute
Pract ice Areas
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 88/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 88Version 1.0
A practice area is a body of work or a collection ofactivities that an organization must master tosuccessfully carry out the essential work of a productline.
• Are finer chunks than the essential activities
• Must be mastered to carry out the essential activities
• Provide starting points for organizations wanting to
make and measure product line progress
Carnegie Mellon University
Software Engineering Institute
Softwar e Engineer ingP t i A
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 89/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 89Version 1.0
Pract ice Areas
Architecture Definition
Architecture Evaluation
Component Development
COTS Utilization
Mining Existing Assets
Requirements Engineering
Software System Integration
Testing
Understanding Relevant Domains
Carnegie Mellon University
Software Engineering Institute
Technical Management
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 90/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 90Version 1.0
Pract ice 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
Carnegie Mellon University
Software Engineering Institute
Organ iza t iona l ManagementPract ice Areas
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 91/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 91Version 1.0
Pract ice Areas
Achieving the Right Organizational StructureBuilding 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
Carnegie Mellon University
Software Engineering Institute
Examples of Product Line Pract ice - 1
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 92/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 92Version 1.0
Motorola - FLEXworks Project (family of one-way pagers)
• 4x cycle time improvement• 80% reuse
Nokia - mobile phones• went from 4 different phones produced per year to 50 per year
National Reconnaissance Office’s Control Channel Toolkit - ground-basedsatellite systems• first family member required 1/10 normal number of developers
Hewlett Packard - printer systems• 2-7x cycle time improvement (some 10x)• Sample Project
– shipped 5x number of products – that were 4x as complex – and had 3x the number of features – with 4x products shipped/person
Carnegie Mellon University
Software Engineering Institute
Examples of Product Line Pract ice - 3
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 93/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 93Version 1.0
MarketMaker Software AG - German financial info provider• able to field a customer-specific solution in about a week• small company (under 50 people)
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 94/103
Carnegie Mellon University
Software Engineering Institute
For Addit ional In format ion onSEI’s Product Line Systems Program
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 95/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 95Version 1.0
SEI s Product Line Systems Program
Dave WhiteBusiness DevelopmentProduct Line Systems ProgramTelephone: 412-268-4796Email: [email protected]
For questions about this talk:Paul ClementsProduct Line Systems ProgramEmail: clements@ sei.smu.edu
World Wide Web:http://www.sei.cmu.edu/plp
Linda NorthropDirectorProduct Line Systems ProgramTelephone: 412-268-7638Email: [email protected]
U.S. mail:Software Engineering InstituteCarnegie Mellon UniversityPittsburgh, PA 15213-3890
SEI Fax: 412-268-5758
Carnegie Mellon University
Software Engineering Institute
To read more about CelsiusTech
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 96/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 96Version 1.0
Software Architecture in Practice
Len BassPaul ClementsRick Kazman
Addison Wesley 1998
- Seven case studies insuccessful softwarearchitectures
- Architecture evaluation- Architecture business cycle
- Achievement of systemqualities through architecture
Carnegie Mellon University
Software Engineering Institute
To read more about Cummins
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 97/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 97Version 1.0
Software Product Lines: Practices and Patterns
Paul ClementsLinda Northrop
Addison Wesley 2001
~600 pages
- Product line fundamentalsand economics
- Practice areas described- Patterns for adoption
- 3 Detailed case studies- Product Line Technical Probe
Carnegie Mellon University
Software Engineering Institute
Schedule and Out line
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 98/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 98Version 1.0
0900 - 0915 Introductions0915 - 0945 The Architecture Business Cycle0945 -1000 What is architecture?1000 - 1030 Why is architecture important?1030 - 1045 Break
1045 - 1115 Architectural structures1115 - 1200 New developments in software
architecture- Software product lines- Aspect-oriented software development
- Predictable assembly from certifiablecomponents
Carnegie Mellon University
Software Engineering Institute
Aspect -Orien ted SoftwareD l t (AOSD)
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 99/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 99Version 1.0
Development (AOSD)
Also called “multi-dimensional separation ofconcerns.” Recognition that separation of concernsmay be performed in many ways.
Example:
• Dividing a system into elements based on likelyapplication-based changes
• Each element still must reflect- a particular error-handling philosophy- an architectural packaging decision- naming conventions
- interaction protocols- …and many others
Carnegie Mellon University
Software Engineering Institute
AOSD (cont’d.)
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 100/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 100Version 1.0
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.
AOSD represents the introduction of trulyarchitectural thinking into program development.
For more information: http://www.aosd.net.
Carnegie Mellon University
Software Engineering Institute
Schedule and Out line
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 101/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 101Version 1.0
0900 - 0915 Introductions0915 - 0945 The Architecture Business Cycle0945 -1000 What is architecture?1000 - 1030 Why is architecture important?1030 - 1045 Break
1045 - 1115 Architectural structures1115 - 1200 New developments in software
architecture- Software product lines- Aspect-oriented software development
- Predictable assembly from certifiablecomponents
Carnegie Mellon University
Software Engineering Institute
Predictable Assembly of Cer t ifiableComponents (PACC)
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 102/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 102Version 1.0
Components (PACC)
At the vanguard of work on component-basedsystems.
Previous work has concentrated on componentselection and qualification, and building frameworksfor component-based systems.
This work focuses on building systems with provablequality attributes from components.
Carnegie Mellon University
Software Engineering Institute
PACC -2
8/9/2019 Software Architecture and Practice
http://slidepdf.com/reader/full/software-architecture-and-practice 103/103
© 1999 by Carnegie Mellon University CECOM Course 2, Lecture 1 - page 103Version 1.0
Two driving questions:• Given a set of components with certified quality
attributes, what can you conclude about the qualitiesof a system including those component?
• Given a quality attribute need for a system, what mustyou be able to certify about its components to know
you’ve satisfied that need?
Very early work. Preliminary results with latency,starting to work on reliability.
For more information:http://www.sei.cmu.edu/pacc/index.html