Your SlideShare is downloading. ×
Requirement configuration management
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Requirement configuration management

363

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
363
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ConfigurationConfiguration ManagementManagement
  • 2. Why Is Software DifficultWhy Is Software Difficult to Build?to Build?  Lack of controlLack of control  Lack of monitoringLack of monitoring  Lack of traceabilityLack of traceability  Uncontrolled changesUncontrolled changes
  • 3. Conflicts in TeamConflicts in Team Software DevelopmentSoftware Development  Simultaneous updates – howSimultaneous updates – how to prevent one person fromto prevent one person from undoing the changes ofundoing the changes of anotheranother  Shared and common code –Shared and common code – how to notify everyone whohow to notify everyone who needs to know about a changeneeds to know about a change  Versions – how to makeVersions – how to make changes to all affectedchanges to all affected
  • 4. Software ConfigurationSoftware Configuration Management BasicsManagement Basics  Identification – identifying softwareIdentification – identifying software configuration items in a baselineconfiguration items in a baseline  Control – controlling the release of a productControl – controlling the release of a product and changes to it throughout its lifecycleand changes to it throughout its lifecycle  Status Accounting – recording and reportingStatus Accounting – recording and reporting of the status of components and changesof the status of components and changes  Auditing and Reviewing – Validating theAuditing and Reviewing – Validating the completeness of a product and that SCMcompleteness of a product and that SCM procedures are being followedprocedures are being followed
  • 5. SCM DefinitionsSCM Definitions  Baseline – One or more softwareBaseline – One or more software configuration items that have beenconfiguration items that have been formally reviewed and agreed upon andformally reviewed and agreed upon and serve as a basis for further developmentserve as a basis for further development  Software Configuration Item – A collectionSoftware Configuration Item – A collection of software elements treated as a unit forof software elements treated as a unit for the purposes of SCMthe purposes of SCM  Configuration – A collection of all theConfiguration – A collection of all the elements of a baseline and a descriptionelements of a baseline and a description of how they fit togetherof how they fit together
  • 6. SCM Definitions (cont’d)SCM Definitions (cont’d)  Configuration Control Board – GroupConfiguration Control Board – Group with the responsibility for reviewing andwith the responsibility for reviewing and approving changes to baselinesapproving changes to baselines  Software – All of the code,Software – All of the code, specifications, plans, descriptions,specifications, plans, descriptions, processes, and documents associatedprocesses, and documents associated with a software development effortwith a software development effort  Version – A specific instance of aVersion – A specific instance of a baseline or configuration itembaseline or configuration item
  • 7. Examples ofExamples of Configuration ItemsConfiguration Items  Product concept specificationProduct concept specification  Software project plansSoftware project plans  Software requirements specificationsSoftware requirements specifications  Software design descriptionsSoftware design descriptions  Source codeSource code  Database descriptionsDatabase descriptions  SCM proceduresSCM procedures  Software release processesSoftware release processes  Software test documentsSoftware test documents  User documentationUser documentation  Maintenance documentationMaintenance documentation
  • 8. Version ControlVersion Control  Allows different projects to use theAllows different projects to use the same source files at the same timesame source files at the same time  Isolates work that is not ready to beIsolates work that is not ready to be shared by the rest of the projectshared by the rest of the project  Isolates work that should never beIsolates work that should never be sharedshared  Allows software engineers to continueAllows software engineers to continue development along a branch evendevelopment along a branch even when a line of development is frozenwhen a line of development is frozen
  • 9. Change ControlChange Control  Proposed changes to baselines must haveProposed changes to baselines must have some level of reviewsome level of review  The impact of proposed changes must beThe impact of proposed changes must be identified and understood.identified and understood.  When appropriate the approval of the CCB,When appropriate the approval of the CCB, key managers and project members mustkey managers and project members must be obtainedbe obtained  Approved changes must be properlyApproved changes must be properly implementedimplemented  After changes are made all affected partiesAfter changes are made all affected parties must be notifiedmust be notified
  • 10. Baseline ManagementBaseline Management  What baselines are required to beWhat baselines are required to be defined and managed?defined and managed? – Typically aligned with major milestonesTypically aligned with major milestones – Applies to documents as well as codeApplies to documents as well as code  How is the current softwareHow is the current software configuration defined?configuration defined? – A snapshot of everything the product hasA snapshot of everything the product has produced at some point in timeproduced at some point in time
  • 11. Baseline ManagementBaseline Management (cont’d)(cont’d)  Who must approve changes toWho must approve changes to baselines?baselines? – Usually the Change Control Board (CCB)Usually the Change Control Board (CCB)  How and when are baselines createdHow and when are baselines created and physically controlled?and physically controlled? – Through the use of document controlThrough the use of document control systems, code control tools, andsystems, code control tools, and procedures to prevent the making ofprocedures to prevent the making of unapproved changesunapproved changes
  • 12. Baseline ManagementBaseline Management (cont’d)(cont’d)  How are people informed of changes?How are people informed of changes? – The CCB disseminates changeThe CCB disseminates change informationinformation  How are baselines verified?How are baselines verified? – By reviews, inspections, and the testingBy reviews, inspections, and the testing of codeof code  Are baselines tied to projectAre baselines tied to project milestones?milestones? – Many are, but during coding many mayMany are, but during coding many may
  • 13. Baseline ManagementBaseline Management (cont’d)(cont’d)  What information is required to process aWhat information is required to process a change to a baseline?change to a baseline? – A description of the proposed changesA description of the proposed changes – Reasons for making the changesReasons for making the changes – List of other items affected by the changesList of other items affected by the changes  What tools, resources, and training areWhat tools, resources, and training are required to perform baseline changerequired to perform baseline change assessment?assessment? – File comparison tools to identify changesFile comparison tools to identify changes – Resources and training depend on size andResources and training depend on size and complexity of projectcomplexity of project
  • 14. Baseline ManagementBaseline Management (cont’d)(cont’d)  What metrics should be used toWhat metrics should be used to assess changes to a baseline?assess changes to a baseline? – ComplexityComplexity – Average module sizeAverage module size – Number of modules changedNumber of modules changed – Number of bugs fixed and verifiedNumber of bugs fixed and verified – Code coverageCode coverage
  • 15. Baseline ManagementBaseline Management (cont’d)(cont’d)  How are unauthorized changes toHow are unauthorized changes to source code prevented, detected, andsource code prevented, detected, and corrected?corrected? – No way to prevent unauthorized changesNo way to prevent unauthorized changes – Provide software engineers with trainingProvide software engineers with training – A commercial available SCM systemsA commercial available SCM systems provide adequate protectionprovide adequate protection – Unauthorized changes should be caughtUnauthorized changes should be caught during assessment proceduresduring assessment procedures
  • 16. Baseline ManagementBaseline Management (cont’d)(cont’d)  What tools, resources, and training areWhat tools, resources, and training are required to perform baselinerequired to perform baseline management?management? – A fully featured SCM toolA fully featured SCM tool – On large projects a separate SCM groupOn large projects a separate SCM group may be neededmay be needed – SCM training is required for all involved inSCM training is required for all involved in the processthe process
  • 17. Workspace ManagementWorkspace Management  Software engineers need a consistentSoftware engineers need a consistent and reproducible workspace area (aand reproducible workspace area (a sandbox) in which they can develop andsandbox) in which they can develop and debug their codedebug their code  They need to be able to share projectThey need to be able to share project files while shielding the project from thefiles while shielding the project from the instability of their evolving codeinstability of their evolving code  SCM tools should provide such aSCM tools should provide such a capabilitycapability
  • 18. Baseline ChangeBaseline Change AssessmentAssessment  Helps to identify recent changes thatHelps to identify recent changes that may be responsible for problemsmay be responsible for problems  Helps to ensure that only authorizedHelps to ensure that only authorized changes are madechanges are made
  • 19. Version ManagementVersion Management  Being able to reliably build andBeing able to reliably build and recreate versions of a product as itrecreate versions of a product as it evolves and after it is released.evolves and after it is released.  Being able to retreat to a previousBeing able to retreat to a previous version if necessaryversion if necessary  Being able to recreate all versions ofBeing able to recreate all versions of the product that customers havethe product that customers have
  • 20. Types of AuditsTypes of Audits  In-process audits – verify the consistency ofIn-process audits – verify the consistency of the design as it evolves through thethe design as it evolves through the development processdevelopment process  Functional audits – verify that functionalityFunctional audits – verify that functionality and performance are consistent withand performance are consistent with requirements defined in the SRSrequirements defined in the SRS  Physical audits – verify that the as-builtPhysical audits – verify that the as-built version of software and documentation areversion of software and documentation are internally consistent and ready for deliveryinternally consistent and ready for delivery  Quality system audits – independentQuality system audits – independent assessment of the compliance to theassessment of the compliance to the software QA plansoftware QA plan
  • 21. Configuration StatusConfiguration Status AccountingAccounting RequirementsRequirements  Identifying the types of information thatIdentifying the types of information that project managers needproject managers need  Identifying the degree of controlIdentifying the degree of control needed by project managementneeded by project management  Identifying the reports required and theIdentifying the reports required and the different audiences for each reportdifferent audiences for each report  Identifying the information required toIdentifying the information required to produce each reportproduce each report
  • 22. SCM SummarySCM Summary  Change is inevitableChange is inevitable  Defined procedures are required to manageDefined procedures are required to manage change without preventing changechange without preventing change  Software presents many challenges from aSoftware presents many challenges from a control, management, and trackingcontrol, management, and tracking perspectiveperspective  Knowing what you have and how you gotKnowing what you have and how you got there is very importantthere is very important  Being able to recreate exactly what isBeing able to recreate exactly what is delivered to customers is essentialdelivered to customers is essential

×