22
Configuration Configuration Management Management

Requirement configuration management

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Requirement configuration management

Configuration Configuration ManagementManagement

Page 2: Requirement configuration management

Why Is Software Why Is Software Difficult to Build?Difficult to Build?

Lack of controlLack of control Lack of monitoringLack of monitoring Lack of traceabilityLack of traceability Uncontrolled changesUncontrolled changes

Page 3: Requirement configuration management

Conflicts in Team Conflicts in Team Software DevelopmentSoftware Development

Simultaneous updates – how to Simultaneous updates – how to prevent one person from prevent one person from undoing the changes of anotherundoing the changes of another

Shared and common code – Shared and common code – how to notify everyone who how to notify everyone who needs to know about a changeneeds to know about a change

Versions – how to make Versions – how to make changes to all affected versions changes to all affected versions when neededwhen needed

Page 4: Requirement configuration management

Software Configuration Software Configuration Management BasicsManagement Basics

Identification – identifying software Identification – identifying software configuration items in a baselineconfiguration items in a baseline

Control – controlling the release of a Control – controlling the release of a product and changes to it throughout its product and changes to it throughout its lifecyclelifecycle

Status Accounting – recording and reporting Status Accounting – recording and reporting of the status of components and changesof the status of components and changes

Auditing and Reviewing – Validating the Auditing and Reviewing – Validating the completeness of a product and that SCM completeness of a product and that SCM procedures are being followed procedures are being followed

Page 5: Requirement configuration management

SCM DefinitionsSCM Definitions

Baseline – One or more software Baseline – One or more software configuration items that have been configuration items that have been formally reviewed and agreed upon and formally reviewed and agreed upon and serve as a basis for further developmentserve as a basis for further development

Software Configuration Item – A Software Configuration Item – A collection of software elements treated collection of software elements treated as a unit for the purposes of SCMas a unit for the purposes of SCM

Configuration – A collection of all the Configuration – A collection of all the elements of a baseline and a description elements of a baseline and a description of how they fit togetherof how they fit together

Page 6: Requirement configuration management

SCM Definitions SCM Definitions (cont’d)(cont’d)

Configuration Control Board – Group Configuration Control Board – Group with the responsibility for reviewing with the responsibility for reviewing and approving changes to baselinesand approving changes to baselines

Software – All of the code, Software – All of the code, specifications, plans, descriptions, specifications, plans, descriptions, processes, and documents processes, and documents associated with a software associated with a software development effortdevelopment effort

Version – A specific instance of a Version – A specific instance of a baseline or configuration item baseline or configuration item

Page 7: Requirement configuration management

Examples of Examples 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

Page 8: Requirement configuration management

Version ControlVersion Control

Allows different projects to use the Allows 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 be Isolates 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 be Isolates work that should never be sharedshared

Allows software engineers to continue Allows software engineers to continue development along a branch even development along a branch even when a line of development is frozen when a line of development is frozen

Page 9: Requirement configuration management

Change ControlChange Control

Proposed changes to baselines must have Proposed changes to baselines must have some level of reviewsome level of review

The impact of proposed changes must be The 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 must key managers and project members must be obtainedbe obtained

Approved changes must be properly Approved changes must be properly implementedimplemented

After changes are made all affected parties After changes are made all affected parties must be notifiedmust be notified

Page 10: Requirement configuration management

Baseline ManagementBaseline Management

What baselines are required to be What 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 software How is the current software configuration defined?configuration defined?– A snapshot of everything the product A snapshot of everything the product

has produced at some point in time has produced at some point in time

Page 11: Requirement configuration management

Baseline Management Baseline Management (cont’d)(cont’d) Who must approve changes to Who must approve changes to

baselines?baselines?– Usually the Change Control Board (CCB)Usually the Change Control Board (CCB)

How and when are baselines created How and when are baselines created and physically controlled?and physically controlled?– Through the use of document control Through the use of document control

systems, code control tools, and systems, code control tools, and procedures to prevent the making of procedures to prevent the making of unapproved changesunapproved changes

Page 12: Requirement configuration management

Baseline Management Baseline Management (cont’d)(cont’d) How are people informed of changes?How are people informed of changes?

– The CCB disseminates change informationThe CCB disseminates change information How are baselines verified?How are baselines verified?

– By reviews, inspections, and the testing of By reviews, inspections, and the testing of codecode

Are baselines tied to project Are baselines tied to project milestones?milestones?– Many are, but during coding many may Many are, but during coding many may

not benot be

Page 13: Requirement configuration management

Baseline Management Baseline Management (cont’d)(cont’d)

What information is required to process a What 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 are What tools, resources, and training are required to perform baseline change required to perform baseline change assessment?assessment?– File comparison tools to identify changesFile comparison tools to identify changes– Resources and training depend on size and Resources and training depend on size and

complexity of projectcomplexity of project

Page 14: Requirement configuration management

Baseline Management Baseline Management (cont’d)(cont’d) What metrics should be used to What 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

Page 15: Requirement configuration management

Baseline Management Baseline Management (cont’d)(cont’d) How are unauthorized changes to How are unauthorized changes to

source code prevented, detected, source code prevented, detected, and corrected?and 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 systems A commercial available SCM systems

provide adequate protectionprovide adequate protection– Unauthorized changes should be caught Unauthorized changes should be caught

during assessment proceduresduring assessment procedures

Page 16: Requirement configuration management

Baseline Management Baseline Management (cont’d)(cont’d) What tools, resources, and What tools, resources, and

training are required to perform training are required to perform baseline management?baseline management?– A fully featured SCM toolA fully featured SCM tool– On large projects a separate SCM On large projects a separate SCM

group may be neededgroup may be needed– SCM training is required for all SCM training is required for all

involved in the processinvolved in the process

Page 17: Requirement configuration management

Workspace Workspace ManagementManagement

Software engineers need a consistent Software engineers need a consistent and reproducible workspace area (a and reproducible workspace area (a sandbox) in which they can develop and sandbox) in which they can develop and debug their codedebug their code

They need to be able to share project They need to be able to share project files while shielding the project from the files while shielding the project from the instability of their evolving codeinstability of their evolving code

SCM tools should provide such a SCM tools should provide such a capabilitycapability

Page 18: Requirement configuration management

Baseline Change Baseline Change AssessmentAssessment Helps to identify recent changes Helps to identify recent changes

that may be responsible for that may be responsible for problemsproblems

Helps to ensure that only Helps to ensure that only authorized changes are madeauthorized changes are made

Page 19: Requirement configuration management

Version ManagementVersion Management

Being able to reliably build and Being able to reliably build and recreate versions of a product as recreate versions of a product as it evolves and after it is released.it evolves and after it is released.

Being able to retreat to a Being able to retreat to a previous version if necessaryprevious version if necessary

Being able to recreate all versions Being able to recreate all versions of the product that customers of the product that customers havehave

Page 20: Requirement configuration management

Types of AuditsTypes of Audits

In-process audits – verify the consistency of In-process audits – verify the consistency of the design as it evolves through the the design as it evolves through the development processdevelopment process

Functional audits – verify that functionality Functional audits – verify that functionality and performance are consistent with and performance are consistent with requirements defined in the SRSrequirements defined in the SRS

Physical audits – verify that the as-built Physical audits – verify that the as-built version of software and documentation are version of software and documentation are internally consistent and ready for deliveryinternally consistent and ready for delivery

Quality system audits – independent Quality system audits – independent assessment of the compliance to the software assessment of the compliance to the software QA planQA plan

Page 21: Requirement configuration management

Configuration Status Configuration Status Accounting Accounting RequirementsRequirements Identifying the types of information Identifying the types of information

that project managers needthat project managers need Identifying the degree of control Identifying the degree of control

needed by project managementneeded by project management Identifying the reports required and Identifying the reports required and

the different audiences for each the different audiences for each reportreport

Identifying the information required Identifying the information required to produce each reportto produce each report

Page 22: Requirement configuration management

SCM SummarySCM Summary

Change is inevitableChange is inevitable Defined procedures are required to Defined procedures are required to

manage change without preventing manage change without preventing changechange

Software presents many challenges from Software presents many challenges from a control, management, and tracking a control, management, and tracking perspectiveperspective

Knowing what you have and how you got Knowing what you have and how you got there is very importantthere is very important

Being able to recreate exactly what is Being able to recreate exactly what is delivered to customers is essentialdelivered to customers is essential