Software Architecture and Practice

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 1 Version 1.0 1 Software Ar ch itecture Software Architecture in in Practice Practice Paul C. Clements Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213-3890 USA Sponsored by the U.S. Department of Defense  © 2002 by Carnegie Mellon University Carnegie Mellon University Software Engineering Institute

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