Professional Documents
Culture Documents
"Softwareconfigurationmanagementisanumbrellaactivity...developed
to(1)identifychange,(2)controlchange,(3)ensurethatchangeisbeing
properlyimplemented,and(4)reportchangetootherswhomayhavean
interest."
"Configurationmanagementprovidesamechanismforidentifying,
controllingandtrackingtheversionsofeachsoftwareitem.Inmanycases
earlierversionsstillinusemustalsobemaintainedandcontrolled.
a)identifyuniquelytheversionsofeachsoftwareitem;
identifytheversionsofeachsoftwareitemwhichtogetherconstitutea
specificversionofacompleteproduct;
identitythebuildstatusofsoftwareproductsindevelopmentordelivered
andinstalled;
identifyandtrackallactionsandchangesresultingfromachangerequest,
frominitiation...torelease."
ConfigurationManagement
themangementofsoftwaredevelopmentprojectswithrespecttoissuessuchasmultipledevelopers
workingonthesamecodeatthesametime,targettingmultipleplatforms,supportingmultipleversions,
andcontrollingthestatusofcode(forexamplebetatestversusrealrelease).Evenwithinthatscope
therearedifferentschoolsofthought:
PurposeofConfigurationManagementThepurposeofConfigurationManagementistoestablishand
maintaintheintegrityoftheworkproductsthroughoutthesoftwarelifecycle.Provideadefinedand
controlledconfigurationoftheSWthroughouttheSWLifeProvideabilitytoconsistentlyreplicatethe
executablecodeofwhicheverthereleaseorversionrequiredProvideControlsthatensureproblems
receiveattentionandchangesarerecorded,approved,andimplemented.ControlprocessI&Oto
ensureconsistency,traceabilityandrepeatabilityofprocessactivitiesEnsurethatsecurephysical
archiving(Backup),recoveryandcontrolaremaintainedfortheCIsMaximizeproductivityby
minimizingmistakes
CVSistheConcurrentVersionsSystem.CVSisasoftwareconfigurationmanagement(SCM)tool.It
allowsdeveloperstocollaborateonprojectstransparentlyacrossnetworksandclientplatforms.It
worksbestonplaintextfiles,butcanalsohandlebinaryfiles.Somefunctionalitywillbelostonbinary
filesasCVScannotperformthesameoperationsonthesefiles.
CVSisaconfigurationcontrolpackagedesignedtofacilitatemultipledevelopersworkingonthesame
softwarepackage.ItisimplementedasalayerontopofRCSandprovidesanumberofusefulfeatures
whichRCSalonedoesnot.Thetwomostimportantofthesefeaturesare
TheCVScheckin/checkoutmechanismdoesnotrequireexclusivelocksonsourcesduringthe
developmentprocess,andprovidesformergingoforthogonalchangestothesamesourcefile.
(Overlappingchangesareidentifiedduringthemergerprocess,andmustberesolvedbyhuman
intervention.)
MostCVScommandsworkrecursivelyontheentirecontentsofadirectorytree,unlessspecific
commandlineswitchesaresettolimitoperationtothelocaldirectory.
SoftwareConfigurationManagementishowyoucontroltheevolutionofasoftwareproject.
Slightlymoreformally,softwareconfigurationmanagement(SCM)isasoftware
engineeringdisciplinecomprisingthetoolsandtechniques(processesormethodology)that
acompanyusestomanagechangetoitssoftwareassets.TheintroductiontotheIEEE
"StandardforSoftwareConfigurationManagementPlans"[IEEE8281998]saysthisabout
SCM:
SoftwareConfigurationManagementisalsocalledSoftwareControlManagement.
Configurationmanagementistheprocessofmanagingchangeinhardware,software,
firmware,documentation,measurements,etc.Aschangerequiresaninitialstateandnext
state,themarkingofsignificantstateswithinaseriesofseveralchangesbecomes
important.Theidentificationofsignificantstateswithintherevisionhistoryofa
configurationitemisthecentralpurposeofbaselineidentification.[1]
AConfigurationBaselineistheconfigurationofaservice,productorinfrastructurethathas
beenformallyreviewedandagreedon,whichthereafterservesasthebasisforfurther
activitiesandcanbechangedonlythroughformalchangeprocedures.Aconfiguration
baselinecanbeusedtocheckpointaservicedevelopmentmilestone,asabasisforfuture
buildsandchanges,toassemblecomponentsforachangeorreleaseandtoprovidethebasis
foraconfigurationauditorbackout.
Readmore:http://wiki.answers.com/Q/What_is_a_Configuration_Baseline#ixzz1tqgYac9d
TheConfigurationControlprocessguaranteesthatthecontentof
yourConfigurationManagementSystem(CMS)/Configuration
ManagementDatabase(CMDB)remainsaccurate.
ThemainresultoutoftheConfigurationControlprocessare
a)acorrect,timely,traceablecontentofyourconfiguration
managementsystem(CMS)(suchasupdatedCIs,updatedRelations)
b)aconfigurationbaseline(ifyoudecidedtostoreone)
CIDpermitsuniqueanduniformnamingofeachcomponentand
productofthetotalsoftwaresystemdowntothelowestseparable
level.Anysystem,includingsoftwaresystems,isseparableinto
smallerandsmallerpartsdowntosomedesirable,manageablelevel.
Inthisbook,thelowestlevelofasoftwaresystemthatis,the
smallestcomponentthatcanbeassembledorcompilediscalledthe
unit.
Configurationmanagement(CM)isthedetailedrecordingand
updatingofinformationthatdescribesanenterprise'shardwareand
software.Suchinformationtypicallyincludestheversionsand
updatesthathavebeenappliedtoinstalledsoftwarepackagesandthe
locationsandnetworkaddressesofhardwaredevices.Special
configurationmanagementsoftwareisavailable.Whenasystem
needsahardwareorsoftwareupgrade,acomputertechniciancan
accessestheconfigurationmanagementprogramanddatabasetosee
whatiscurrentlyinstalled.Thetechniciancanthenmakeamore
informeddecisionabouttheupgradeneeded.
Configurationmanagementisalsousedinsoftwaredevelopment,
whereitiscalledUnifiedConfigurationManagement(UCM).Using
UCM,developerscankeeptrackofthesourcecode,documentation,
problems,changesrequested,andchangesmade.
OutlineoftheLecture
PurposeofSoftwareConfigurationManagement(SCM)
Motivation:Whysoftwareconfigurationmanagement?
Definition:Whatissoftwareconfigurationmanagement?
Activitiesandrolesinsoftwareconfigurationmanagement
SomeTerminology
ConfigurationItem,Baseline,SCMDirectory,Version,Revision
Release.
SoftwareConfigurationManagementActivities
PromotionManagement,ReleaseManagement,ChangeManagement
OutlineofaSoftwareConfigurationManagementPlans
Standards(Example:IEEE8281990)
BasicelementsofIEEE8281990
ConfigurationManagementTools
WhySoftwareConfigurationManagement?
Theproblem:
Multiplepeoplehavetoworkonsoftwarethatischanging
Morethanoneversionofthesoftwarehastobesupported:
Releasedsystems
Customconfiguredsystems(differentfunctionality)
System(s)underdevelopment
Softwaremustrunondifferentmachinesandoperatingsystems
Needforcoordination
SoftwareConfigurationManagement
managesevolvingsoftwaresystems
controlsthecostsinvolvedinmakingchangestoasystem
WhatisSoftwareConfigurationManagement?
Definition:
Asetofmanagementdisciplineswithinthesoftwareengineeringprocess
todevelopabaseline.
ForwardDefinition!
Description:
SoftwareConfigurationManagementencompassesthedisciplinesand
techniquesofinitiating,evaluatingandcontrollingchangetosoftware
productsduringandafterthesoftwareengineeringprocess.
Standards(approvedbyANSI)
IEEE828:SoftwareConfigurationManagementPlans
IEEE1042:GuidetoSoftwareConfigurationManagement
SoftwareConfigurationManagementisaProject
Function
SCMisaProjectFunction(asdefinedintheSPMP)withthegoalto
maketechnicalandmanagerialactivitiesmoreeffective.
SoftwareConfigurationManagementcanbeadministeredinseveral
ways:
Asinglesoftwareconfigurationmanagementteamforthewhole
organization
Aseparateconfigurationmanagementteamforeachproject
SoftwareConfigurationManagementdistributedamongtheproject
members
Mixtureofalloftheabove
ConfigurationManagementActivities
SoftwareConfigurationManagementActivities:
Configurationitemidentification
Promotionmanagement
Releasemanagement
Branchmanagement
Variantmanagement
Changemanagement
Nofixedrules:
Activitiesareusuallyperformedindifferentways(formally,informally)
dependingontheprojecttypeandlifecyclephase(research,
development,maintenance).
ConfigurationManagementActivities(continued)
Configurationitemidentification
modelingofthesystemasasetofevolvingcomponents
Promotionmanagement
isthecreationofversionsforotherdevelopers
Thislecture
Releasemanagement
isthecreationofversionsfortheclientsandusers
Changemanagement
isthehandling,approvalandtrackingofchangerequests
Branchmanagement
isthemanagementofconcurrentdevelopment
Variantmanagement Reading
isthemanagementofversionsintendedtocoexist
ConfigurationManagementRoles
ConfigurationManager
Responsibleforidentifyingconfigurationitems.Theconfiguration
managercanalsoberesponsiblefordefiningtheproceduresforcreating
promotionsandreleases
Changecontrolboardmember
Responsibleforapprovingorrejectingchangerequests
Developer
Createspromotionstriggeredbychangerequestsorthenormalactivities
ofdevelopment.Thedeveloperchecksinchangesandresolvesconflicts
Auditor
Responsiblefortheselectionandevaluationofpromotionsforreleaseand
forensuringtheconsistencyandcompletenessofthisrelease
Terminology
Wewilldefinethefollowingterms
ConfigurationItem
Baseline
SCMDirectories
Version
Revision
Release
ThedefinitionofthetermsfollowstheIEEEstandard.
Differentconfigurationmanagementsystemsmayusedifferent
terms.
Example:CVSconfigurationmanagementsystemusedinourprojects
usestermsdifferingfromtheIEEEstandard .
Terminology:ConfigurationItem
Anaggregationofhardware,software,orboth,thatisdesignated
forconfigurationmanagementandtreatedasasingleentityinthe
configurationmanagementprocess.
Softwareconfigurationitemsarenotonlyprogramcodesegmentsbutalltypeof
documentsaccordingtodevelopment,e.g
alltypeofcodefiles
driversfortests
analysisordesigndocuments
userordevelopermanuals
systemconfigurations(e.g.versionofcompilerused)
Insomesystems,notonlysoftwarebutalsohardwareconfigurationitems(CPUs,
busspeedfrequencies)exist!
TasksfortheConfigurationManagers
Defineconfigurationitems
Defineconfigurationitems
FindingConfigurationItems
Largeprojectstypicallyproducethousandsofentities(files,
documents,data...)whichmustbeuniquelyidentified.
Anyentitymanagedinthesoftwareengineeringprocesscan
potentiallybebroughtunderconfigurationmanagementcontrol
Butnoteveryentityneedstobeunderconfigurationmanagement
controlallthetime.
TwoIssues:
What:SelectionofConfigurationItems
Whatshouldbeunderconfigurationcontrol?
When:Whendoyoustarttoplaceentitiesunderconfigurationcontrol?
ConflictfortheProjectManager:
StartingwithCIstooearlyintroducestoomuchbureaucracy
StartingwithCIstoolateintroduceschaos
FindingConfigurationItems(continued)
Someitemsmustbemaintainedforthelifetimeofthesoftware.This
includesalsothephase,whenthesoftwareisnolongerdeveloped
butstillinuse;perhapsbyindustrialcustomerswhoareexpecting
propersupportforlotsofyears.
Anentitynamingschemeshouldbedefined
sothatrelateddocumentshaverelatednames.
Selectingtherightconfigurationitemsisaskillthattakespractice
Verysimilartoobjectmodeling
UsetechniquessimilartoobjectmodelingforfindingCis!
FindtheCIs
FindrelationshipsbetweenCIs
WhichoftheseEntitiesshouldbeConfigurationItems?
ProblemStatement Sourcecode
SoftwareProjectManagementPlan APISpecification
(SPMP) Inputdataanddatabases
RequirementsAnalysisDocument
(RAD) Testplan
SystemDesignDocument(SDD) Testdata
ProjectAgreement Supportsoftware(partoftheproduct)
ObjectDesignDocument(ODD) Supportsoftware(notpartofthe
DynamicModel product)
Objectmodel Usermanual
FunctionalModel Administratormanual
Unittests
Integrationteststrategy
PossibleSelectionofConfigurationItems
ProblemStatement Sourcecode
SoftwareProjectManagementPlan APISpecification
(SPMP) Inputdataanddatabases
RequirementsAnalysisDocument
(RAD) Testplan
SystemDesignDocument(SDD) Testdata
ProjectAgreement Supportsoftware(partoftheproduct)
ObjectDesignDocument(ODD) Supportsoftware(notpartofthe
DynamicModel product)
Objectmodel Usermanual
FunctionalModel Administratormanual
Unittests
Integrationteststrategy
OncetheConfigurationItemsareselected,theyareusuallyorganizedinatree
ConfigurationItemTree(Example)
TheprojectCI
Theproject
Terminology:Version
Theinitialreleaseorrereleaseofaconfigurationitemassociated
withacompletecompilationorrecompilationoftheitem.Different
versionshavedifferentfunctionality.
Terminology:Baseline
Aspecificationorproductthathasbeenformallyreviewedand
agreedtobyresponsiblemanagement,thatthereafterservesasthe
basisforfurtherdevelopment,andcanbechangedonlythrough
formalchangecontrolprocedures.
Examples:
BaselineA:AlltheAPIhavecompletelybeendefined;thebodiesofthe
methodsareempty.
BaselineB:Alldataaccessmethodsareimplementedandtested.
BaselineC:TheGUIisimplemented.
MoreonBaselines
Assystemsaredeveloped,aseriesofbaselinesisdeveloped,usually
afterareview(analysisreview,designreview,codereview,system
testing,clientacceptance,...)
Developmentalbaseline(RAD,SDD,IntegrationTest,...)
Goal:Coordinateengineeringactivities.
Functionalbaseline(firstprototype,alpharelease,betarelease)
Goal:Getfirstcustomerexperienceswithfunctionalsystem.
Productbaseline(product)
Goal:Coordinatesalesandcustomersupport.
Manynamingschemeforbaselinesexist(1.0,6.01a,...)
A3digitschemeisquitecommon:
7.5.5
Baseline A (developmental)
Official Release
Changemanagementisthehandlingofchangerequests
Achangerequestleadstothecreationofanewrelease
Generalchangeprocess
Thechangeisrequested(thiscanbedonebyanyoneincludingusersand
developers)
Thechangerequestisassessedagainstprojectgoals
Followingtheassessment,thechangeisacceptedorrejected
Ifitisaccepted,thechangeisassignedtoadeveloperandimplemented
Theimplementedchangeisaudited.
Thecomplexityofthechangemanagementprocessvarieswiththeproject.Small
projectscanperformchangerequestsinformallyandfastwhilecomplexprojects
requiredetailedchangerequestformsandtheofficialapprovalbyonemore
managers.
ControllingChanges
Twotypesofcontrollingchange:
Promotion:Theinternaldevelopmentstateofasoftwareischanged.
Release:Achangedsoftwaresystemismadevisibleoutsidethedevelopmentorganization.
Promote Release
Policy Policy
User
Programmer Master SoftwareRepository
Promotion Directory Release
Approachesforcontrollingchange(ChangePolicy)
Informal(goodforresearchtypeenvironmentsandpromotions)
Formalapproach(goodforexternallydevelopedCIsandforreleases)
Terminology:SCMDirectories
ProgrammersDirectory(IEEE:DynamicLibrary)
Libraryforholdingnewlycreatedormodifiedsoftwareentities.
Theprogrammersworkspaceiscontrolledbytheprogrammeronly.
MasterDirectory(IEEE:ControlledLibrary)
Managesthecurrentbaseline(s)andforcontrollingchangesmadeto
them.
Entryiscontrolled,usuallyafterverification.
Changesmustbeauthorized.
SoftwareRepository(IEEE:StaticLibrary)
Archiveforthevariousbaselinesreleasedforgeneraluse.
Copiesofthesebaselinesmaybemadeavailabletorequesting
organizations.
StandardSCMDirectories
ProgrammersDirectory
(IEEEStd:DynamicLibrary)
Completelyundercontrolofone
programmer.
Promotion
MasterDirectory
(IEEEStd:ControlledLibrary) Centralsource
codearchive
Centraldirectoryofallpromotions.
Release
SoftwareRepository
(IEEEStd:StaticLibrary) Foo95 Foo98
Externallyreleasedbaselines.
PromotionandReleaseareOperationsonCIs
TheprojectCI
TheprojectCI
promote()
release()
Theproject
LetsCreateaModelforConfigurationManagement
Wejustlearnedthatpromotionsarestoredinthemasterdirectory
andreleasesarestoredintherepository
Problem:Therecanbemanypromotionsandmanyreleases
Solution:UseMultiplicity
* Promotion Release
*
Master Repository
Directory
LetsCreateaModelforConfigurationManagement
Insight:PromotionsandReleasesarebothversions
Solution:UseInheritance
Version
* Promotion Release
*
Master Repository
Directory
LetsCreateaModelforConfigurationManagement
Problem:Aconfigurationitemhasmanyversions
Solution:Createa1manyassociationbetweenConfigurationItem
andVersion
ConfigurationItem
*
Version
* Promotion Release
*
Master Repository
Directory
LetsCreateaModelforConfigurationManagement
Problem:Configurationitemscanthemselvesbegrouped
Solution:Usethecompositedesignpattern
Controlleditem
ConfigurationItem
*
*
CMAggregate Configurationitem Version
* Promotion Release
*
Master Repository
Directory
ConfigurationItemModel(UMLClassDiagram)
* Controlled
item
Configuration *
CMAggregate item Version
* Promotion Release
*
Master Repository
Directory
ChangePolicies
Wheneverapromotionorareleaseisperformed,oneormore
policiesapply.Thepurposeofchangepoliciesistoguaranteethat
eachversion,revisionorrelease(seenextslide)conformsto
commonlyacceptedcriteria.
Examplesforchangepolicies:
Nodeveloperisallowedtopromotesourcecodewhichcannotbe
compiledwithouterrorsandwarnings.
Nobaselinecanbereleasedwithouthavingbeenbetatestedbyatleast
500externalpersons.
Terminology:Versionvs.Revisionvs.Release
Version:
Aninitialreleaseorrereleaseofaconfigurationitemassociatedwitha
completecompilationorrecompilationoftheitem.Differentversionshave
differentfunctionality.
Question:IsWindows98anew
versionoranewrevisioncompared
toWindows95?
Revision:
Changetoaversionthatcorrectsonlyerrorsinthedesign/code,butdoes
notaffectthedocumentedfunctionality.
Release:
Theformaldistributionofanapprovedversion.
TasksfortheConfigurationManagers
Defineconfigurationitems
Defineconfigurationitems
Definepromote/releasepolicies
Definepromote/releasepolicies
SoftwareConfigurationManagementPlanning
Softwareconfigurationmanagementplanningstartsduringtheearly
phasesofaproject.
TheoutcomeoftheSCMplanningphaseisthe
SoftwareConfigurationManagementPlan(SCMP)
whichmightbeextendedorrevisedduringtherestoftheproject.
TheSCMPcaneitherfollowapublicstandardliketheIEEE828,or
aninternal(e.g.companyspecific)standard.
TheSoftwareConfigurationManagementPlan
Definesthetypesofdocumentstobemanagedandadocument
namingscheme.
DefineswhotakesresponsibilityfortheCMproceduresandcreation
ofbaselines.
Definespoliciesforchangecontrolandversionmanagement.
DescribesthetoolswhichshouldbeusedtoassisttheCMprocess
andanylimitationsontheiruse.
Definestheconfigurationmanagementdatabaseusedtorecord
configurationinformation.
OutlineofaSoftwareConfigurationManagementPlan
(SCMP,IEEE8281990)
1.Introduction 4.Schedule(WHEN?)
Describespurpose,scopeof Establishesthesequenceand
application,keytermsand coordinationoftheSCMactivities
references withprojectmilestones.
2.Management(WHO?) 5.Resources(HOW?)
Identifiestheresponsibilitiesand Identifiestoolsandtechniques
authoritiesforaccomplishingthe requiredfortheimplementationof
plannedconfigurationmanagement theSCMP
activities
6.Maintenance
3.Activities(WHAT?) Identifiesactivitiesand
Identifiestheactivitiestobe responsibilitiesonhowtheSCMP
performedinapplyingtothe willbekeptcurrentduringthelife
project. cycleoftheproject.
SCMPSection1:Introduction
1.1Simplifiedoverviewoftheconfigurationmanagementactivities.
1.2Scope:
Overviewdescriptionoftheproject
IdentificationoftheCI(s)towhichsoftwareconfigurationmanagementwill
beapplied.
1.3IdentificationofothersoftwaretobeincludedaspartoftheSCMP
(supportsoftwareandtestsoftware)
1.4RelationshipofSCMtohardwareofsystemconfiguration
managementactivities
1.5DegreeofformalityanddepthofcontrolforapplyingSCMto
project.
1.6LimitationsandtimeconstraintsforapplyingSCMtothisproject
1.7Assumptionsthatmighthaveanimpactonthecost,scheduleand
abilitytoperformdefinedSCMactivities.
SCMPSection2:Management
2.1Organization
Organizationalcontext(technicalandmanagerial)withinwhichtheSCM
activitiesareimplemented.Identifies
Allorganizationalunits(client,developers,managers)thatparticipateinanSCM
activity
Functionalrolesofthesepeoplewithintheproject
Relationshipbetweenorganizationalunits
2.2.Responsibilities
ForeachSCMactivitylistthenameorjobtitletoperformthisactivity
ForeachboardperformingSCMactivities,list
purposeandobjectives
membershipandaffiliations
periodofeffectivity,scopeofauthority
operationalprocedures
3.ApplicablePolicies
ExternalconstraintsplacedontheSCMP
SCMPSection3:Activities
3.1ConfigurationIdentification
3.2ConfigurationControl
3.3ConfigurationStatusAccounting
3.4ConfigurationAuditsandReviews
3.5InterfaceControl
3.2ConfigurationControl
Definesthefollowingsteps
3.2.1Howtoidentifytheneedforachange(layoutofchangerequestform)
3.2.2Analysisandevaluationofachangerequest
3.2.3Approvalordisapprovalofarequest
3.2.4Verification,implementationandreleaseofachange
3.2.1ChangeRequest
SpecifiestheproceduresforrequestingachangetoabaselinedCI
andtheinformationtobedocumented:
Name(s)andversion(s)oftheCI(s)wheretheproblemappears
Originatorsnameandaddress
Dateofrequest
Indicationofurgency
Theneedforthechange
Descriptionoftherequestedchange
3.2.2EvaluationofaChange
Specifiestheanalysisrequiredtodeterminetheimpactofproposed
changesandtheprocedureforreviewingtheresultsoftheanalysis.
3.2.3ChangeApprovalorDisapproval
ThissectionoftheSCMPdescribestheorganiztionofthe
configurationcontrolboard(CCB).
ConfigurationControlBoard(CCB)
Canbeanindividualoragroup.
MultiplelevelsofCCBsarealsopossible,dependingonthecomplexityof
theproject
MultiplelevelsofCCBsmaybespecified.
InsmalldevelopmenteffortsoneCCBlevelissufficient.
ThissectionoftheSCMPalsoindicatesthelevelofauthorityofthe
CCBanditsresponsibility.
Inparticular,theSCMPmustspecifywhentheCCBisinvoked.
3.2.4ImplementingChange
ThissectionoftheSCMPspecifiestheactivitiesforverifyingand
implementinganapprovedchange.
Acompletedchangerequestmustcontainthefollowinginformation:
Theoriginalchangerequest(s)
Thenamesandversionsoftheaffectedconfigurationitems
Verificationdateandresponsibleparty
Identifierofthenewversion
Releaseorinstallationdateandresponsibleparty
Thissectionmustalsospecifyactivitiesfor
Archivingcompletedchangerequests
Planningandcontrolofreleases
Howtocoordinatemultiplechanges
HowtoaddnewCIstotheconfiguration
Howtodeliveranewbaseline
3.3ConfigurationStatusAccounting
ThissectionoftheSCMPmustcontainthefollowingsections
Whatelementsaretobetrackedandreportedforbaselinesand
changes?
Whattypesofstatusaccountingreportsaretobegenerated?What
istheirfrequency?
Howisinformationtobecollected,storedandreported?
Howisaccesstotheconfigurationmanagementstatusdata
controlled?
3.4ConfigurationAuditsandReviews
ThissectionoftheSCMPidentifiesauditsandreviewsforthe
project.
AnauditdeterminesforeachConfigurationItemifithastherequired
physicalandfunctionalcharacteristics.
Areviewisamanagementtoolforestablishingabaseline.
Foreachauditorreviewtheplanhastodefine:
Objective
TheConfigurationItemsunderreview
Thescheduleforthereview
Proceduresforconductingthereview
Participantsbyjobtitle
Requireddocumentation
Procedureforrecordingdeficienciesandhowtocorrectthem
Approvalcriteria
TasksfortheConfigurationManagers(Summary)
Defineconfigurationitems
Defineconfigurationitems
Definepromote/releasepolicies
Definepromote/releasepolicies
Defineactivitiesandresponsibilities
Defineactivitiesandresponsibilities
FormofanSCMP
Form:
TheSCMPcanbeaseparatedocumentorasectionembeddedinanother
document,forexampleintheSPMP,titledSoftwareConfigurationManagement
Plan.
Minimuminformation
6Sections:Introduction,Management,Activities,Schedules,ResourcesandPlan
Maintenance
ConsistencyCriteria(tobeusedataSCMPreviewmeeting):
AllactivitiesdefinedintheSCMP(Section3.1to3.6)areassignedtoan
organizationalunitorperson.
AllidentifiedConfigurationitems(Section2.1)havedefinedprocessesforbaseline
establishmentandchangecontrol(Section3.2)
Allactivitiesareassociatedwithresources(section5)toaccomplishtheactivities.
SuchaSCMPcanincludethefollowingsentence:
ThisSCMPlanconformswiththerequirementsofIEEEStd8281990.
TailoringtheSCMP
TheIEEEstandardallowsquiteabitflexibilityforpreparingan
SCMP.
Toconformtotherestoftheproject,theSCMPmaybe
tailoredupward:
toaddinformation
touseaspecificformat
tailoreddownward
SomeSCMPcomponentsmightnotapplytoaparticularproject.
Insteadofomittingtheassociatedsection,mentionitsapplicability.
InformationthathasnotbeendecidedonatthetimetheSCMPisapproved
shouldbemarkedastobedetermined.
ConformancetotheIEEEStandard8281990
Presentationformat&Minimuminformation
Aseparatedocumentorasectionembeddedinanotherdocumenttitled
SoftwareConfigurationManagementPlan.
6Sections:Introduction,Management,Activities,Schedules,Resources
andPlanMaintenance
ConsistencyCriteria:
AllactivitiesdefinedintheSCMP(Section3.1to3.6)areassignedtoan
organizationalunitorpersonandtheyareassociatedwithresourcesto
accomplishtheactivities.
AllConfigurationitemsidentifiedinSection2.1havedefinedprocessesfor
baselineestablishmentandchangecontrol(Section3.2).
Iftheabovecriteriaaremet,theSCMPcanincludethefollowing
sentence:
ThisSCMPconformswiththerequirementsofIEEEStd8281990.
Note:TheconsistencycriteriacanalsobeusedataSCMPreview
meeting
ExampleSCMPlans(fromtheGuideIEEE1042.1990)
A
Complexsystem
Development Critical Medium Advanced Short Highly contractedto
Structured anothercompany
B Smallsoftware
development
Concept Prototype Small Basic Short Informal project
C SCMPusedby
Maintenance Support Large Online Full Structured organizationusing
Software LifeCycle contractedSW
D
Developmentof
All Commercial Small Integrated Full Informal embedded
LifeCycle applications
ARENAorTRAMP:Concept.Prototype,Small,Online,Short,Informal
ToolsforSoftwareConfigurationManagement
Softwareconfigurationmanagementisnormallysupportedbytools
withdifferentfunctionality.
Examples:
RCS
veryoldbutstillinuse;onlyversioncontrolsystem
CVS(ConcurrentVersionControl)
basedonRCS,allowsconcurrentworkingwithoutlocking
http://www.cvshome.org/
CVSWeb:WebFrontendtoCVS
Perforce
Repositoryserver;keepstrackofdevelopersactivities
http://www.perforce.com
ClearCase
Multipleservers,processmodeling,policycheckmechanisms
http://www.rational.com/products/clearcase/
TasksfortheConfigurationManagers
SCMPfollowingtheIEEE8281990standard
Defineconfigurationitems
Defineconfigurationitems
Definepromote/releasepolicies
Definepromote/releasepolicies
Defineactivitiesandresponsibilities
Defineactivitiesandresponsibilities
Setupconfigurationmanagementsystem
Setupconfigurationmanagementsystem
References
Readingsusedforthislecture
[BrueggeDutoit]Chapter13ConfigurationManagement
[IEEEStd828]SoftwareConfigurationManagement
[IEEEStd1042]GuidetoConfigurationManagementPlan(SCMP)
AdditionalReferences
CVS
Homepage:http://www.cvshome.org/
OnlineDocumentation:http://www.cvshome.org/docs/manual/cvs.html
Jikes:OpenSourceJavaCompilermaintainedwithCVS
Sourcetree(readonly):http://sourcery.org/jikes/anoncvs.html
Jikesprojectportalhttp://sourcery.org/jikes
CVSWEBexample
http://stud.fhheilbronn.de/~zeller/cgi/cvsweb.cgi/
Summary
SoftwareConfigurationManagement:Importantpartofproject
managementtomanageevolvingsoftwaresystemsandcoordinate
changestothem.
SoftwareConfigurationManagementconsistsofseveralactivities:
PromotionandReleasemanagement(Coveredtoday)
Branch,VariantandChangeManagement([BrueggeDutoit])
PublicstandardforSCMplans:IEEE828.
Thestandardcanbetailoredtoaparticularproject:
Largeprojectsneeddetailedplanstobesuccessful
Smallprojectsshouldnotbeburdenedwiththebureaucracyofdetailed
SCMplans
SCMshouldbesupportedbytools.Theserangefrom
Simpleversionstoragetools
Sophisticatedsystemswithautomatedproceduresforpolicychecksand
supportforthecreationofSCMdocuments.