Art for Chapter 13, Configuration Management

Using UML, Patterns, and Java
Object-Oriented Software Engineering
Art for Chapter 13,
Configuration
Management
Figure 13-1, Configuration management concepts.
*
Controlled item
*
CM Aggregate
Version
Configuration item
*
Promotion
Release
*
Workspace
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Repository
2
Figure 13-2, An example of CM aggregates and
configuration item.
A320:CM Aggregate
Fly-by-wire SW:CI
Fuselage:CI
Bernd Bruegge & Allen H. Dutoit
Landing Gear:CM Aggregate
Wing:CI
Object-Oriented Software Engineering: Using UML, Patterns, and Java
Tire:CI
3
Figure 13-3, Examples of baselines, revisions, and
variants.
A320:Baseline
First release
revised by
derived from
A320-200:Revision
derived from
Improved version
including winglets
A319:Baseline
A321:Baseline
124 seat variant
Bernd Bruegge & Allen H. Dutoit
185 seat variant
Object-Oriented Software Engineering: Using UML, Patterns, and Java
4
Figure 13-4, Three digit version identification
scheme.
Three-digit version identification scheme
<version> ::= <configuration item name>.<major>.<minor>.<revision>
<major> ::= <nonnegative integer>
<minor> ::= <nonnegative integer>
<revision> ::= <nonnegative integer>
MUE.0.0.1:Release
Alpha test release
MUE.1.0.0:Release
First major release
MUE.1.2.1:Release
Second minor release
with bug fixes
MUE.2.0.3:Release
Second major
release with three
series of bug fixes
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
5
Main trunk
MUE.1.1:Release
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>
revised by
MUE.1.2:Release
revised by
MUE.1.3:Release
merged with
released as
derived from
Branch 1.2.1
1.2.1.1:Release
revised by
1.2.1.2:Release
MUE.2.0:Release
Figure 13-5, CVS version identification scheme.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
6
MUE.1.0:Release
applied to
applied to
emptyClassFix:ChangeSet
dashedLineFix:ChangeSet
results in
results in
MUE.1.1a:Release
MUE.1.1b:Release
applied to
applied to
emptyClassFix:ChangeSet
dashedLineFix:ChangeSet
results in
results in
MUE.1.2:Release
Figure 13-6,
Change set
representation of
the MUE release
history.
Bernd Bruegge & Allen H. Dutoit
applied to
interactionDiagram:ChangeSet
results in
MUE.2.0:Release
Object-Oriented Software Engineering: Using UML, Patterns, and Java
7
Figure 13-7, MyCarParts subsystem decomposition
The :DealerPC is the
and hardware allocation.
machine used by a
The :EClient allows an expert
to part
order parts.
user to find dealer
parts by
The :DealerPC
make andhas often
The :Server enables identifier, vehicle
a higher
bandwidth
link
year,
and
order
history.
The
The :ServerHost
hosts
client to retrieve lists of
to the server.
high-volume
theparts
partsbycatalog
:HomePC is the
criteria and part :EClient is forThe
e.g., car repair shops.
server. to order parts, clients,
entries,
:DealerPC machine used by a car
owner to order parts.
and to track client
:ServerHost
The :NClientThe
enables
a novice
:HomePC
is
activity.
:EClient
user to find
parts by to
description
connected
the server
and, in subsequent
via a releases,
modem. by
:Server
clicking on a vehicle map. The
:NClient is for the occasional
client, e.g., a car hobbyist.
:HomePC
:NClient
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
8
NClient:CM Aggregate
RAD:CM Aggregate
NClient RAD:CI
NClient UM:CI
NCLient ODD:CI
Figure 13-8,
Configuration items
and CM aggregates for
myCarParts.
ODD:CM Aggregate
EClient:CM Aggregate
EClient RAD:CI
EClient UM:CI
User Manual:CMAggregate
EClient ODD:CI
Server:CM Aggregate
Server ODD:CI
Admin Manual:CI
SDD:CM Aggregate
Protocol:CI
Data Schema:CI
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
9
Figure 13-9, Snapshot of the workspaces used by
myCarParts developers.
Server Workspace
NClient RAD.2.0:Promotion
Tech Writer Workspace
NClient RAD.2.0:Promotion
NClient UM.2.0:Promotion
Data schema.2.1:Promotion
Server.2.3:Promotion
Expert Workspace
Novice Workspace
NClient RAD.2.0:Promotion
Protocol.2.0:Promotion
NClient.2.3:Promotion
Server.2.2:Promotion
Bernd Bruegge & Allen H. Dutoit
Protocol.2.0:Promotion
EClient RAD.1.2:Promotion
Protocol.1.0:Promotion
EClient.1.5:Promotion
Server 1.4:Promotion
Object-Oriented Software Engineering: Using UML, Patterns, and Java
10
Novice Client Team
Server Team
Server.2.3:P
Quality Control
Team
NClient.2.4:P
Documentation
Team
NClientRAD.2.0:P
Test new
functionality
Repair
NClient.2.5:P
NClientUM.2.0:P
Test manual
Repair
NClientUM.2.1:P
Figure 13-10, Release process for the navigation map
functionality of myCarParts.2.0.
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
11
Novice Client Team
Server Team
Quality Control
Team
Documentation
Team
NClientUM.2.1:P
Beta test
Repair
Repair
NClient.2.6:P
Server.2.4:P
Retest & Release
myCarParts.2.0:R
Figure 13-10, (continued from previous slide).
Release process for the navigation map functionality
of myCarParts.2.0
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
12
Main trunk
Server.1.5:P
Response time branch
...
myCarParts.2.0:R
Server.1.5.1.1:P
...
Server.2.4:P
Server.2.4
Navigation map release
Server.1.5.1.7:P
Server.2.5:P
myCarParts.2.1:R
Server.2.5
Navigation map functionality
and improved response
time for part retrieval
Server.2.6:P
Figure 13-11, An
example of branch
Server.2.6
Improved response time
for navigation map
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
13
DBInterface.1.5
revises
processPartReq()
DBInterface.2.4
processPartReq()
is merged into
Figure 13-12,
An example of
merge for the
DBInterface
class of the
myCarParts
system.
Bernd Bruegge & Allen H. Dutoit
revises
DBInterface.1.5.1.7
cache
processPartReq()
processMapReq()
Server.2.4
this method is added to
process map requests
Server.1.5
Common promotion
is merged into
Server.1.5.1.7
this method is changed to
access a cache instead
of direct DB accesses
DBInterface.2.5
cache
processPartReq()
processMapReq()
revises
DBInterface.2.6
cache
processPartReq()
processMapReq()
Server.2.5
processPartReq() is taken from 1.5.1.7
processMapReq() is taken from 2.6
Server.2.6
processMapReq() is changed to access
the cache instead of the DB directly.
Object-Oriented Software Engineering: Using UML, Patterns, and Java
14
Figure 13-13, Examples of redundant variants.
Redundant team organization
Mac NClient:Variant
PC NClient:Variant
Mac GUI:CI
PC GUI:CI
Mac Parts Catalog:CI
PC Parts Catalog:CI
Mac Server Interface:CI
PC Server Interface:CI
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
15
Figure 13-13 (continued from previous slide).
Example of variants sharing configuration items.
Single project organization
Mac NClient:Variant
PC NClient:Variant
Mac GUI:CI
Windows GUI:CI
Parts Catalog:CI
Mac TCP:CI
Bernd Bruegge & Allen H. Dutoit
Server Interface:CI
Object-Oriented Software Engineering: Using UML, Patterns, and Java
PC TCP:CI
16
Figure 13-14, An example of change management
process.
Anybody
Control Board
Developer
Request change
Quality Control
Team
Assess request
[inconsistent with goals] [consistent with goals]
Reject request
Approve request
Assign change
Implement change
Validate change
Bernd Bruegge & Allen H. Dutoit
Object-Oriented Software Engineering: Using UML, Patterns, and Java
17