art for chapter 13, configuration management

17
Using UML, Patterns, and Java Object-Oriented Software Engineering Art for Chapter 13, Configuration Management

Upload: jewell

Post on 01-Feb-2016

45 views

Category:

Documents


0 download

DESCRIPTION

Art for Chapter 13, Configuration Management. Figure 13-1, Configuration management concepts. *. Controlled item. *. Version. CM Aggregate. Configuration item. *. Promotion. Release. *. Workspace. Repository. A320:CM Aggregate. Fly-by-wire SW:CI. Landing Gear:CM Aggregate. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Art for Chapter 13, Configuration Management

Usi

ng U

ML

, Pat

tern

s, a

nd J

ava

Ob

ject

-Ori

ente

d S

oftw

are

En

gin

eeri

ng Art for Chapter 13,

Configuration Management

Page 2: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 2

Figure 13-1, Configuration management concepts.

Controlled item*

VersionCM Aggregate

*

Configuration item

ReleasePromotion

RepositoryWorkspace

*

*

Page 3: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 3

Figure 13-2, An example of CM aggregates and configuration item.

A320:CM Aggregate

Wing:CI

Fly-by-wire SW:CI Landing Gear:CM Aggregate

Fuselage:CI Tire:CI

Page 4: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 4

Figure 13-3, Examples of baselines, revisions, and variants.

A320-200:Revision

A319:Baseline

revised by

First release

A321:Baseline

derived from derived from

Improved versionincluding winglets

124 seat variant 185 seat variant

A320:Baseline

Page 5: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 5

Figure 13-4, Three digit version identification scheme.

MUE.1.0.0:Release

MUE.1.2.1:Release

MUE.2.0.3:Release

MUE.0.0.1:Release

First major release

Second minor releasewith bug fixes

Second major release with three series of bug fixes

Alpha test release

Three-digit version identification scheme<version> ::= <configuration item name>.<major>.<minor>.<revision><major> ::= <nonnegative integer><minor> ::= <nonnegative integer><revision> ::= <nonnegative integer>

Page 6: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 6

revised by

revised by

Main trunk

revised by

Branch 1.2.1

derived from

merged with

released as

Figure 13-5, CVS version identification scheme.

CVS version identification scheme<version> ::= <configuration item name>.<version identifier><version identifier> ::= <branch>.<revision><branch> ::= <version identifier>.<branch number> |

<branch number><branch number> ::= <nonnegative integer><revision> ::= <nonnegative integer>

MUE.1.1:Release

MUE.1.2:Release

MUE.1.3:Release 1.2.1.1:Release

1.2.1.2:Release

MUE.2.0:Release

Page 7: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 7

Figure 13-6, Change set representation of the MUE release history.

MUE.1.0:Release

emptyClassFix:ChangeSetdashedLineFix:ChangeSet

interactionDiagram:ChangeSet

MUE.1.1b:Release

MUE.1.2:Release

MUE.1.1a:Release

emptyClassFix:ChangeSet dashedLineFix:ChangeSet

applied to

results in

results in

applied to

results in

applied to applied to

applied to

results in

results in

MUE.2.0:Release

Page 8: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 8

Figure 13-7, MyCarParts subsystem decomposition and hardware allocation.

:NClient

:HomePC

:Server

:ServerHost:EClient

:DealerPC

The :ServerHost hosts the parts catalog server.

The :DealerPC is the machine used by a

dealer to order parts. The :DealerPC has often a higher bandwidth link

to the server.

The :Server enables client to retrieve lists of parts by criteria and part

entries, to order parts, and to track client

activity.

The :EClient allows an expert user to find parts by part

identifier, vehicle make and year, and order history.

The :EClient is for high-volume clients, e.g., car repair shops.

The :HomePC is the machine used by a car owner to order parts.

The :HomePC is connected to the server

via a modem.

The :NClient enables a novice user to find parts by description and, in subsequent releases, by

clicking on a vehicle map. The :NClient is for the occasional

client, e.g., a car hobbyist.

Page 9: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 9

Data Schema:CI

Server:CM Aggregate

ODD:CM Aggregate

Server ODD:CI

EClient UM:CI

NClient UM:CI

NClient:CM Aggregate

EClient:CM Aggregate

Protocol:CI

NClient RAD:CI

Admin Manual:CI

EClient RAD:CI

NCLient ODD:CI

EClient ODD:CI

RAD:CM Aggregate

User Manual:CM Aggregate

SDD:CM Aggregate

Figure 13-8, Configuration items and CM aggregates for myCarParts.

Page 10: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 10

Figure 13-9, Snapshot of the workspaces used by myCarParts developers.

NClient UM.2.0:Promotion

Tech Writer Workspace

NClient RAD.2.0:Promotion

Server.2.3:Promotion

Server Workspace

Data schema.2.1:Promotion

Protocol.2.0:Promotion

NClient RAD.2.0:Promotion

Server.2.2:Promotion

NClient.2.3:Promotion

Novice Workspace

NClient RAD.2.0:Promotion

Protocol.2.0:Promotion

Server 1.4:Promotion

EClient.1.5:Promotion

Expert Workspace

EClient RAD.1.2:Promotion

Protocol.1.0:Promotion

Page 11: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 11

Figure 13-10, Release process for the navigation map functionality of myCarParts.2.0.

Novice Client Team Server Team Quality Control Documentation

Team Team

Repair

Test newfunctionality

Repair

NClient.2.4:P

NClient.2.5:P

Test manual

NClientRAD.2.0:P

NClientUM.2.0:P

NClientUM.2.1:P

Server.2.3:P

Page 12: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 12

Figure 13-10, (continued from previous slide). Release process for the navigation map functionality of myCarParts.2.0

Novice Client Team Server Team Quality Control DocumentationTeam Team

Repair Repair

Retest & Release

Beta test

NClient.2.6:P Server.2.4:P

NClientUM.2.1:P

myCarParts.2.0:R

Page 13: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 13

Server.1.5:P

Main trunk

Server.1.5.1.1:P

Response time branch

Server.2.4:P

Server.1.5.1.7:P

Server.2.5:P

Server.2.6:P

...

...

myCarParts.2.0:R

myCarParts.2.1:R

Server.2.5Navigation map functionality

Server.2.6Improved response time

Server.2.4Navigation map release

and improved responsetime for part retrieval

for navigation map

Figure 13-11, An example of branch

Page 14: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 14

DBInterface.2.4

processPartReq()processMapReq()

DBInterface.1.5.1.7

processPartReq()

DBInterface.2.6

processPartReq()processMapReq()

DBInterface.1.5

processPartReq()

DBInterface.2.5

processPartReq()processMapReq()

Server.1.5.1.7this method is changed to

access a cache insteadof direct DB accesses

Server.2.4this method is added toprocess map requests

Server.2.5processPartReq() is taken from 1.5.1.7processMapReq() is taken from 2.6

Server.1.5Common promotion

Server.2.6processMapReq() is changed to accessthe cache instead of the DB directly .

revises revises

revises

is merged into is merged into

cache

cache

cache

Figure 13-12, An example of merge for the DBInterface class of the myCarParts system.

Page 15: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 15

Figure 13-13, Examples of redundant variants.

Redundant team organization

PC NClient:Variant

PC GUI:CI

PC Server Interface:CI

PC Parts Catalog:CI

Mac NClient:Variant

Mac GUI:CI

Mac Server Interface:CI

Mac Parts Catalog:CI

Page 16: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 16

Figure 13-13 (continued from previous slide). Example of variants sharing configuration items.

Single project organization

PC NClient:VariantMac NClient:Variant

Server Interface:CI

Parts Catalog:CI

Mac GUI:CI

Mac TCP:CI PC TCP:CI

Windows GUI:CI

Page 17: Art for Chapter 13, Configuration Management

Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 17

Figure 13-14, An example of change management process.

Request change

Assess request

Approve request

Reject request

Assign change

Implement change

Validate change

Anybody Control Board Developer Quality Control

[inconsistent with goals] [consistent with goals]

Team