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
© Copyright 2026 Paperzz