The purpose of software configuration management (SCM) is to establish and



Similar documents
fire Utrymningsplan/Evacuation plan In case of fire or other emergency Vid brand eller annan fara Rescue Call Larma Warn Varna Extinguish Evacuate

Customer"Experience"in"Car"Rental"

P h o t o g r a p h y. Vá c l a v J i r á s e k 瓦 茨 拉 夫 伊 拉 塞 克 I n f e c t i o n. I n d u s t r i a. U p s y c h 蔓. 工 业. 痴

Introduction to Software Engineering Professional Issues SWENET OSE2 Module June 2003

Information Systems for Business Management INF612

IPW Smart Delivery Management

Monthly Return on Movement of Open-ended Collective Investment Scheme listed under Chapter 20 of the Exchange Listing Rules

Page 1 of 8. Any change, which meets the following criteria, will be managed using IM/IT Change Management Process.

R I T. IEEE Computer Society Certified Software Development Professional (CSDP) Exam. Buenos Aires, Argentina Junio de Software Engineering

Mapping A Knowledge Areas of The SWEBOK Standard With The CBOK in Software Engineering Field Using A Set Theory

Software Process Improvement Framework Based on CMMI Continuous Model Using QFD

Zikova 1903/4, Praha doc. Ing. arch. Michal Kohout. raz23, s.r.o. info@raz23.cz. Fakulta architektury

MEASURES FOR EXCELLENCE. Software Process Improvement: Management. Commitment, Measures. And Motivation

CMMI for High-Performance with TSP/PSP

Software Quality. Process Quality " Martin Glinz. Chapter 5. Department of Informatics!

Implementation of Multiple Quality Frameworks An Analysis

Jim Lambers MAT 169 Fall Semester Lecture 25 Notes

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

CANADIAN PAYMENTS ASSOCIATION LVTS RULE 4 COMMENCEMENT

Usability-Improving Mobile Application Development Patterns

A Taxonomy of Operational Risks

Process-Family-Points

Quantitative Project Management Framework via Integrating

Crown Agency Risk Management and Internal Controls

A Service of the City of Lancaster RATE CLASS SCE RATE SCHEDULE LCE RATE SCHEDULE COMMERCIAL AND INDUSTRIAL GS-1 GS-1

Security Software Engineering: Do it the right way

An Enhanced Software Project Management Methodology Accompanying Agile and CMMI

A Variability Viewpoint for Enterprise Software Systems

Open System Interconnection (OSI) Protocols

Microeconomics and mathematics (with answers) 5 Cost, revenue and profit

Architecture Centric Development in Software Product Lines

An Approach for Monitoring Software Development Using Timesheet and Project Plan

References IEEE PUBLICATIONS

surroundinginheritanceandsubtypingandthedecisiontoexplicitlyseparatethemin Sather.

New Approach to Affordable Short Term Care!

A Capability Maturity Model for Scientific Data Management

Chapter 4 Elasticities of demand and supply. The price elasticity of demand

The IT Service CMM. Presentation overview. IT Service CMM. What it is; what it is not. Using the IT Service CMM. Current status and outlook 19/04/2002

School of Information & Communications Technology (ICT) Experience Seneca

RevisedJanuary26,

Conditional Orders and Trailing Stop Orders

CHAPTER 7: FACTORING POLYNOMIALS

Mahmoud Khraiwesh Faculty of Science and Information Technology Zarqa University Zarqa - Jordan mahmoud@zpu.edu.jo

Army Service Level Management/Information Technology (IT) Metrics

Complex Forward Balance Examples

Detailing T-Card Charges. A. If the traveler and the card holder are the same follow these instructions:

The Defined Process for Auditing Software Process Implementation

To Be or Not To Be a Linear Equation: That Is the Question

Filing at a Glance. General Information. Company and Contact

174: Scheduling Systems. Emil Michta University of Zielona Gora, Zielona Gora, Poland 1 TIMING ANALYSIS IN NETWORKED MEASUREMENT CONTROL SYSTEMS

STATES OF JERSEY INTERNAL AUDIT: FOLLOWING UP THE REPORT OF THE COMPTROLLER AND AUDITOR GENERAL (P.A.C.3/2014) RESPONSE OF DEPARTMENTS

TASPO-ATS-L Requirements Traceability Matrix

Overview. CMU/SEI Cyber Innovation Center. Dynamic On-Demand High-Performance Computing System. KVM and Hypervisor Security.

Safety-Critical Systems: Processes, Standards and Certification

An OWL Ontology for Representing the CMMI-SW Model

REQUEST FOR EXPRESSIONS OF INTEREST

A Short Image Survey of Turkey s Main Consumer Banks. February 2007

Fiscal Year (FY) 2016 Budget Estimates Defense Health Program Procurement Budget Item Justification

Trillium: A Customer-Oriented Assessment Method for Software System Development Capability

Measuring the Cost of Software Quality of a Large Software Project at Bombardier Transportation

USB PC Adapter V4 Configuration

PROCESS AND PRODUCT QUALITY ASSURANCE MEASURES IN CMMI

Test Driven Development Method in Software Development Process

12.5 Equations of Lines and Planes

Transcription:

DonnaAlbino LIS489FinalProject SoftwareConfigurationManagement Thepurposeofsoftwareconfigurationmanagement(SCM)is toestablishand maintaintheintegrityoftheproductsofthesoftwareprojectthroughoutthe project ssoftwarelifecycle. 1 Anysoftwareprojectdevelopedforacustomercan benefitfromusingadependablesystemoftrackingandcontrollingchangesmadein thesoftware,especiallyifthereismorethanonedeveloperormorethanone installationsiteforthesoftware.aprojectleaderinterestedinbestpracticesin managingthetechnicaldevelopmentofasoftwareprojectwillturntoasoftware configurationmanagementproducttostreamlineandautomatetheprocessasmuch aspossible.anscmsystemisusedtoestablisharepositoryoffilesthatareusedto buildthedeliveredproduct,andthentocreatemonitoredaccesstothatrepository. Allchangestothefiles,thenameofthepersonwhomadethechanges,whythey madethechanges,andwhentheymadethechanges,becomepartoftheinformation recordkeptonthesoftwareproject.thefilesaremanagedfromtheinitialbaseline throughthestagesofcreating,integrating,andtestingthesoftware,releasingitto endusers,andmaintainingthesoftwarewithreleasesofpatchesandnew functionality. 1 SoftwareEngineeringInstitute.CapabilityMaturityModelIntegration,Version1.1 CMMIforSystemsEngineeringandSoftwareEngineering(CMMI SE/SW,V1.1) (CMU/SEI 2000 TR 018,ADA388775).Pittsburgh,PA:SoftwareEngineering Institute,CarnegieMellonUniversity,2000.

Configurationmanagementseekstoeliminateconfusionanderrorsthatexistwhen differentversionsofthesoftwarearecreated.changescorrecterrors,refineexisting features,oraddnewfunctionality.withoutaconfigurationmanagementprocess thatenforcesgoodbehavior,developerscanusedifferentversionsofsoftware unintentionallytocreatefaultyendproducts;ortheycancreatenewversionsof fileswithouttheproperauthority.asoftwareconfigurationmanagementtoolcan enforcethenecessarygoodbehaviorthroughcontrolledfileaccess. Theimportanceofacontrolledbaselineofsoftwarefilesgoesbeyondtracking changesastheyaremade.adevelopermayalsoneedtoreversechangesinorderto testanolderversionagainstabugreportinordertoduplicatetheproblemthe customerreported,orbackoutachangethatisnotworkingwell.twodevelopers maybetaskedtoimplementdifferentfunctionsinthesoftwarethataffectafilein common.theyneedtobeabletoworkindependentlyonthatfilewithoutimpacting theother swork,andthechangesmergedinsuchawaythatbothtasksare successfullyimplemented.softwaremayneedtobetrackedagainstalistof submittedbugreports,oralistofdocumentedrequirements.agoodsoftware configurationmanagementsolutionwillofferautomationtoolstohelpwith challengeslikethese. Softwareconfigurationmanagementsystemshavecertaincommonfunctions.The firstoftheseiscreatingabaseline.usuallyonlythesourcecodeisputunder configurationcontrol,andthebuildprocesswillcreatederivedcode,softlinks,and

executablefilesthatarenotcontrolled.therefore,itisimportanttotracktoolsused tocreateandusethesoftwarebuild,suchascompilers,scripts,testtools,and browsers,sothatthederiveditemsarebuiltidenticallyforthecustomerasthey werebuiltduringthedevelopmentandtestprocedures.ifpartofthecontrolled code,suchasthebuildtools,isgoingtobesharedwithanotherproject,aseparate baselineforthatsharedcodecanbecreatedsothatsoftwarecanbeupdatedforone projectwithoutaffectingtheotherproject. Oncethefilesareinacontrolledbaseline,thesoftwareconfigurationmanagement systemsuppliesfunctionalityforaccessingafile.dependingonthesystem,the developermayhaveread onlyaccesstothefullbaselineandwillhavetospecifically checkoutafileformodifications,orthedevelopermayhavewriteaccesstoallthe filesintherepository.thedeveloperwillhaveaccesstothelatestreleasedversion, andallpreviousreleasedversions,ofeachfileintherepository,andcaneasily accessonefile,orthewholesetoffilesthatcreatedaformalrelease.toolsare suppliedtocomparedifferentversionsofthesamefiletoeachother,and summarizethelinesaredifferentbetweentheversions,andtoaccesstherelease notesassociatedwiththebuild. Whenchangesaremade,thedeveloperwilleitherwanttokeepthosechanges,or discardthemandreverttoapreviousversion.thesoftwareconfiguration managementsystemsuppliesfunctionalityforupdatingthefileintherepository,or

revertingtoapreviousversion.changestotherepositorycanbecommittedwithor withoutacommentfromthedeveloperastowhythefilehaschanged. Asoftwareconfigurationmanagementsystemallowsadevelopertoquerythe repositorytoseewhoisworkingontheproject,andwhatfileseachpersonis modifying.thesoftwareconfigurationmanagementsystemalsoallowsthe developertogetindividualfileinformationsuchasitslatestversionandits developmenthistory.thisrecordofchangescanbeveryhelpfulincreating documentationofreleasesforacustomer. Theinitialrepositoryoffilesundersoftwarecontrolcanbethoughtofasthetrunk ofatree.itistaggedwithareleasenumber,typically1.0.whenachangeis requested,anewbranchiscreatedoffthetrunkwhilethedevelopermodifiesthe code.whenthedeveloperhascompletedthechangeandthoroughlytestedit,the codeismergedbackintothetrunk,andisgivenanewtag,orreleasenumber.ifthe changeisconsideredtobeasmallone,thenewtagmaybe1.1,or1.0.1.ifthe changeisconsideredtobeasubstantialone,thenewtagmaybe2.0.nowthetrunk hasawarenessofbothreleases,andthesoftwareconfigurationmanagementsystem canrecreateversion1.0,oritcanrecreatethisnewrelease.sometimesadeveloper mayhaveseveralbranchesopenonthetrunk,toimplementdifferentfunctionality ineachone.abranchcanstartfromanyprevioustaggedrelease,notjustthefirst 1.0baselinenode.Eachbranchismergedbackintothetrunkwhenitiscompleted, orabranchcanbediscardedifthechangeisconsideredtobenolongernecessary.

Ifthereareseveraldevelopersworkingononerepository,thesoftware configurationmanagementsystemkeepsthedevelopersfrominterferingwitheach other sprogress.ifonemergescodeintothetrunk,theotherdevelopersmust performarebaseagainstthosechanges,beforetheywillbeabletomergetheircode intothetrunktoo.thisinvolvespickingupthechangesfromthefirstdeveloper, performingmergesinanycommonfiles,andretesting.thesoftwareconfiguration managementsystemwilltrytoautomatethemergeprocessasmuchasitcan.butif thedeveloperschangedthesamesectionofcodeindifferentways,thesecond developerwillhavetomergethatsectionmanually. Therearemanytoolsavailableinthemarketplaceformanagingsoftware configurationatdifferentpricerangesandimplementedforuseondifferent platforms.aprojectmanagerwhowillselectthesoftwareconfiguration managementsystemusedontheirprojectwillconsideropensourcevs.proprietary systems,howasystemdealswithfilesthatarebeingchangedbyseveralpeopleat thesametime,howithelpsorhindersinmerges,andwhatotherfunctionalitymay beavailablebeyondversioncontrol. Thesoftwareconfigurationmanagementsystemscanbecategorizedaseitherfile lockedsystems,ormergedsystems.ifasystemusesfilelocking,onlyonedeveloper cancheckoutafileforeditingatonetime.ifaseconddevelopertriestocheckout thesamefile,theywillbeunabletodoso.thisforcesdevelopmenttobedoneina

serialmanner,ratherthanaparallelmanner.developersdonoteverhavetodofile merging,whichcanbeprolongedandpainfulifthechangeshavebeenbigand intertwinedwithsomeoneelse schanges.ifdevelopershaveotherworkthatcan keepthembusywhiletheyarewaitingforsomeonetofinishafixbeforethem,this canbeagoodsolution.butifdevelopersareworkingoncopiesofthecodeoutside oftheconfigurationmanagementsystem,tryingtoworkinparalleltokeepona schedule,thenthesystemisnotworkingasintendedandafile lockedsystemisa poorchoice.sometoolsthatuseamergedsystemcanbereconfiguredtousea lockedsystemtomanageabaselineifdesired. Iftheprojectmanagerwantstouseamergingsystemratherthanafilelocking system,itisimportanttolookatthemergingtoolssuppliedandtoconsiderthem carefully.ifthesystemcannotautomateamergebecauseofchangesinthesame areaofthesamefiles,thedeveloperneedstochooseanactionateachmergepoint (usethebaselinecode,ornewcode).inordertodothiscorrectly,thedeveloper needstoseethelinessurroundingthemergepoint.asplit screenmergetoolcanbe veryhelpful,allowingthedevelopertopointandclickonthechangesdesired.a text onlytoolmayonlyshowalittlebitofthecode,andalinenumber,whichmay notbeenoughtohelpthedevelopertorecognizethecontextandknowwhatroutine isbeingmodified,orinwhichportionoftheroutine.incaseslikethat,adeveloper mayendupmakingapoorselectionthatwilleludeimmediatedetection.

Mergesintextfilescanbecomplex;mergesinimagefilescanbeevenmore complex.somesoftwareiscreatedinagraphicalway,likeibm srhapsodysoftware thatcreatesc++orjavacodefromuml(universalmodelinglanguage)diagrams.if aprojectisgoingtobeusingimagefilesratherthantextfilesinitscontrolled repositoryofsourcecode,theprojectleadermustgetassurancesfromthevendorof thesoftwareconfigurationmanagementsystemthatitsmergetoolwillbeableto handletheseimagesinausefulway. Beyondfilelockingvs.mergingsystems,aprojectmanagerselectingasoftware configurationmanagementsystemmustalsoconsidertheadvantagesand disadvantagesofadistributedrevisioncontrolsystemvs.aclient serverrevision controlsystem.inaclient serversystem,thereisasinglecentralrepository(one trunk)andalldevelopersmergeagainstit.inadistributedsystem,eachdeveloper ownsaworkingcopyofthecodebase,andtheyswappatchesamongthemselves. Thedistributedsystemcanbefaster,sincethereisnocommunicationwithacentral server.eachdeveloper sworkingcopyisabackupofthecodebase,whichcanbe helpfulifthere sasystemfailure.butadistributedsystemhasnobaseline,only workingcopies.ifoneofthesecopiesisdesignatedasthebaseline,thenthesystem essentiallybecomesclient serverandtheadvantagesofadistributedsystemare lost. Closerexaminationofthreepopularsystemscanilluminatethesepointstoconsider. AclassicchoiceforversioncontrolisSoftwareCodeControlSystem(SCCS).Itis

bundledwithunixmachinesandisopensource.itwasfirstreleasedinthe1970s andisverystable.checkoutsaredoneonefileatatime,andthuseachfilehasa versionnumberassociatedwithit.thissystemisfilelocked,somergesandparallel developmentarenotsupported.thisisaclient serversystem,supportingonetrunk anddevelopmentfromthattrunk.areleaseisconstructedbycreatingasetoffile versions:forinstance,version1.0ofonefile,version1.3ofanotherfile,version1.7 ofathirdfile,andsoon.eachfilehasitsversionnumberandacommentstring embeddedinit,andanyobjectfilecreatedfromcontrolledsourcewillhavethe versionnumbersembeddedinittoo. Averypopular,opensource,client serverchoiceforversioncontrolissubversion (SVN)byApache.Adeveloperchecksoutacopyofthewholebaseline,ratherthan filebyfilelikesccs.allthefilesgiventothedeveloperatcheckouttimehavewrite access.thedevelopercanmovedirectoriesandfilesaroundwithinthebaseline withoutlosingthehistoryonthefile.thisisavaluableenhancementtohave,as restructuringcodeiscommonasnewfunctionalityorrequirementsareaddedtoa complexsystem.mergingwithimagefileshasdemonstratedproblemswithibm s Rhapsody,butmergingwithtextfilesworkswell. AnexpensivebutpowerfulsystemisIBMRational sclearcase.itisaproprietary client serversystemforversioncontrol.adevelopercreatesaview,whichisacopy withread onlysourceoftheentirebaseline,andthenchecksoutindividualfiles withintheviewtogetwriteaccessonthemformodification.iftherearemultiple

baselinesbeingused,aconfigurationspecificationfilecoordinateswhichbaselines tousewhencompiling.clearcaseintegrateswithclearquest,whichtracksproblem reportsandlinksthemwithadeveloperandatagonthereleasethatfixedthe problem.clearcaseproducesaconfigurationrecord,whichcontainsthebuild procedure,alistofalltheinputfiles,andalistofallthederivedfilesthatarepartof arelease.theadministratorwhowillcreateasoftwarereleaseusesthe configurationrecordtoaidinthatprocess.clearcasecommandscanbeenteredina text onlyenvironment,ortheycanbeenteredinagraphicinterface.thegraphic interfaceisespeciallypowerfulforperformingmanualmerges,andforseeinga graphicrepresentationofthetrunk,branches,andreleasesonfiles.asplit screen mergeshowsthebaselinecodeandthedeveloper scodeateachofthemerge points,andwithaseriesofmouseclicksthedevelopercanselectwhichlinesto select,ortocodeahybridthirdchoiceonthespot.clearcasecanalsobeconfigured toworkasafilelockedsystemifdesired. Therearemanyothertoolsavailableforsoftwareconfigurationmanagement.Each toolhasstrengthsandweaknessesthatneedtobeconsideredagainstthe requirementstheprojecthasforsoftwareconfigurationmanagement,price,and platform.burrowsandwesley 2 provideathoroughcomparisonofcommercially availableconfigurationmanagementtools,andshouldbeconsideredrequired readingforanyonewhoplanstopurchaseasoftwareconfigurationmanagement 2 Burrows,CliveandWesley,Ian.OvumEvaluates:ConfigurationManagement. London,UK:Ovum,Ltd.,2005.

system.thecmcrossroads 3 websiteisanonlineresourcethatoffersarticles,white papers,bookreviews,toolreports,discussionforums,andaccesstothe ConfigurationManagementJournal.Italsolinkstoothersiteswithconfiguration managementinformation. 3 http://www.cmcrossroads.com/,accessednovember21,2014.