Conquering Complex and Changing Systems Object-Oriented Software Engineering Art for Chapter 10, Software Configuration Management * Con trol led item * CM Aggr egat e Con figu rati on i tem * Ver sion Pro moti on Rel ease * Wor kspa ce Rep osit ory Figure 10-1. Configuration management concepts (UML class diagram). Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 2 A320:CM Aggregate Fly-by-wire SW:CI Fuselage:CI Landing Gear:CM Aggregate Wing:CI Tire:CI Figure 10-2. An example of CM aggregates and configuration items (UML object diagram). Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 3 A320:Baseline First release revised by derived from A320-200:Revision derived from Improved version including winglets A319:Baseline A321:Baseline 124 seat variant 185 seat variant Figure 10-3. Examples of baselines, revisions, and variants (UML object diagram). The A319, A320, and the A321 are all based on the same design. They vary mostly by the length of their fuselage. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 4 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 Figure 10-4. Three digit version identification scheme (BNF and UML object diagram). Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 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 10-5. CVS version identification scheme (UML object diagram). Branches are identified with the version they were derived from followed by a unique number. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 6 MUE .1.0 :Rel ease app lied to app lied to das hedL ineF ix:C hang eSet emp tyCl assF ix:C hang eSet res ults in res ults in MUE .1.1 a:Re leas e MUE .1.1 b:Re leas e app lied to app lied to emp tyCl assF ix:C hang eSet das hedL ineF ix:C hang eSet res ults in Figure 10-6. Change set representation of the MUE release history (UML object diagram). dashedLineFix:ChangeSet and emptyClassFix:ChangeSet can be applied to the MUE.1.0:Release in arbitrary order because they do not overlap. Bernd Bruegge & Allen Dutoit res ults in MUE .1.2 :Rel ease app lied to int erac tion Diag ram: Chan geSe t res ults in MUE .2.0 :Rel ease Object-Oriented Software Engineering: Conquering Complex and Changing Systems 7 The :DealerPC is the 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.,PC car repair used shops. server. to order parts, clients, machine by a car :De aler entries, owner to order parts. and to track client :Se rver Host The :NClientThe enables a novice :HomePC is activity. :EC lien t user to find parts by to description connected the server and, in subsequent via a releases, modem. by :Se rver clicking on a vehicle map. The :NClient is for the occasional :Ho mePC client, e.g., a car hobbyist. :NC lien t Figure 10-7. MyCarParts subsystem decomposition and hardware allocation (UML deployment diagram). Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 8 NCl ient :CM Agg rega te RAD :CM Agg rega te Figure 10-8. Configuration items and CM aggregates for myCarParts (UML object diagram). NCl ient RAD :CI NCl ient UM: CI NCL ient ODD :CI ODD :CM Agg rega te ECl ient :CM Agg rega te ECl ient RAD :CI ECl ient UM: CI Use r Ma nual :CMAgg rega te ECl ient ODD :CI Ser ver: CM Agg rega te Ser ver ODD: CI Adm in M anua l:CI SDD :CM Agg rega te Pro toco l:CI Dat a Sc hema :CI Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 9 Se rver Wor kspa ce NC lien t RA D.2. 0: P romo tion Te ch W rite r Wo rksp ace Pr otoc ol.2 .0:P romo tion NC lien t RA D.2. 0: P romo tion NC lien t UM .2.0 :Pro moti on Da ta s chem a.2. 1: P romo tion Se rver .2.3 :Pro moti on Ex pert Wor kspa ce No vice Wor kspa ce NC lien t RA D.2. 0: P romo tion Pr otoc ol.2 .0:P romo tion NC lien t.2. 3:Pr omot ion Se rver .2.2 :Pro moti on EC lien t RA D.1. 2: P romo tion Pr otoc ol.1 .0:P romo tion EC lien t.1. 5:Pr omot ion Se rver 1. 4:Pr omot ion Figure 10-9. Snapshot of the workspaces used by myCarParts developers (UML object diagram). The Novice Workspace, the Tech Writer Workspace, and the Server Workspace contain promotions related to the navigation map functionality. The Expert Workspace, however, contains older and more stable versions. For all configuration items, version numbers of the form 1.x refer to the promotions without navigation maps functionality whereas version numbers of the form 2.x refer to the promotions containing partial or complete implementations of the navigation maps. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 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 10-10. Release process for the navigation map functionality of myCarParts.2.0 (UML activity diagram). :P denotes a promotion, :R denotes a release. (continued on next slide) Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 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 10-10 (continued from previous slide). Release process for the navigation map functionality of myCarParts.2.0 (UML activity diagram). :P denotes a promotion, :R denotes a release. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 12 Ma in t runk Se rver .1.5 :P .. . my CarP arts .2.0 :R Se rver .2.4 :P Server.2 .4 Navigatio n map release Re spon se t ime bran ch Se rver .1.5 .1.1 :P .. . Se rver .1.5 .1.7 :P Figure 10-11. An example of branch (UML object diagram, some promotions Server.2 .5 were omitted for brevity, :P denotes a Navigatio n map functio nality promotion, :R denotes a release). On the and imp rov ed resp on se main trunk, developers add the time fo r part retriev al navigation map functionality to myCarParts. On a concurrent branch, Se rver .2.6 :P developers improve the response time of the server by integrating a cache between Server.2 .6 the server and the database. The response Impro ved respo nse time time improvement is completed after the fo r nav igation map release of the navigation map functionality and made available as a patch. Se rver .2.5 :P my CarP arts .2.1 :R Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 13 DBI nter face .1.5 rev ises pro cess Part Req( ) DBI nter face .2.4 Serv er.1 .5 Co mmo n p romo tion rev ises DBI nter face .1.5 .1.7 cac he pro cess Part Req( ) pro cess MapR eq() Serv er.2 .4 this meth od is added to pro cess map requests pro cess Part Req( ) is merg ed i nto is merg ed i nto Serv er.1 .5. 1.7 this meth od is changed to access a cach e in stead of direct DB accesses DBI nter face .2.5 cac he Figure 10-12. An example of merge for the DBInterface class of the myCarParts system (UML class diagram). pro cess Part Req( ) pro cess MapR eq() rev ises Serv er.2 .5 pro cessP artReq() is taken from 1 .5. 1.7 pro cessM apReq() is tak en fro m 2. 6 DBI nter face .2.6 Serv er.2 .6 pro cessM apReq() is ch anged to access . pro cess Part Req( ) the cache in stead o f th e DB directly pro cess MapR eq() cac he Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 14 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 Figure 10-13. Examples of redundant variants (UML object diagram). In the redundant team organization, the myCarParts NClients for the Macintosh and the PC are realized independently. (continued on next slide) Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 15 Single project organization Mac NClient:Variant PC NClient:Variant Mac GUI:CI Windows GUI:CI Parts Catalog:CI Mac TCP:CI Server Interface:CI PC TCP:CI Figure 10-13 (continued from previous slide). Example of variants sharing configuration items (UML object diagram). In the single project organization, the myCarParts NClients for the Macintosh and the PC differ in their UI. Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 16 Any body Con trol Boa rd Dev elop er Qua lity Con trol Tea m Req uest cha nge Ass ess requ est [in cons iste nt w ith goal s][co nsis tent wit h go als] Rej ect requ est App rove req uest Ass ign chan ge Imp leme nt c hang e Val idat e ch ange Figure 10-14. An example of change management process (UML activity diagram). Bernd Bruegge & Allen Dutoit Object-Oriented Software Engineering: Conquering Complex and Changing Systems 17
© Copyright 2026 Paperzz