Anda di halaman 1dari 59

SoftwareConfigurationManagement

"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

Models Subsystems Documents

ObjectModel DynamicModel RAD ODD ....

Database UserInterface ....

.... Code Data UnitTest ....

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

Release Version Revision


(Customer) (Developer) (Developer)
BaselinesinSCM

Baseline A (developmental)

Baseline B (functional, first prototype)

Baseline C (functional, beta test)

Official Release

How do we manage changes in the baselines?


Time
Changemanagement

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()

Models Subsystems Documents

ObjectModel DynamicModel RAD ODD ....

Database UserInterface ....

.... Code Data UnitTest ....

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)

LifecyclePhase ProjectType Size SCMTools LifeSpan Writing Characterof


Project

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.