24
Software Configuration Management (SCM) Overview Overview What is SCM? What is SCM? What are the processes of SCM? What are the processes of SCM? How does each process do? How does each process do? Summary Summary

Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Software Configuration Management (SCM)Software Configuration Management (SCM)

OverviewOverview What is SCM?What is SCM? What are the processes of SCM?What are the processes of SCM? How does each process do?How does each process do? SummarySummary

Page 2: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Software ConfigurationsSoftware Configurations

Software configuration -- the outputSoftware configuration -- the output Computer programs (source and executables)Computer programs (source and executables) DocumentsDocuments DataData

Software Configuration Management (SCM)Software Configuration Management (SCM) The art of identifying, organizing and controlling The art of identifying, organizing and controlling

modifications to the software being builtmodifications to the software being built

Page 3: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Why Do We Need SCM?Why Do We Need SCM?

First Law of System EngineeringFirst Law of System Engineering No matter where you are in the system life No matter where you are in the system life

cycle, the system will change and the desire to cycle, the system will change and the desire to change it will persist throughout the life cyclechange it will persist throughout the life cycle

Sources of ChangeSources of Change New business or market conditions New business or market conditions new customer needsnew customer needs Organization and/or business downsizingOrganization and/or business downsizing Budgetary or scheduling constraintsBudgetary or scheduling constraints

Page 4: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Baseline Concept

IEEE defines a baseline as:IEEE defines a baseline as: A specification or product that has been formally A specification or product that has been formally

reviewed and agreed upon, that thereafter serve as the reviewed and agreed upon, that thereafter serve as the basis for further development, and that can be changed basis for further development, and that can be changed only through formal change control proceduresonly through formal change control procedures

A baseline is a milestone in the development of A baseline is a milestone in the development of software that marked the delivery of one or more software that marked the delivery of one or more software configuration itemssoftware configuration items

Page 5: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Common Baselines

System engineering System engineering

Requirement analysisRequirement analysis

Software designSoftware design

CodingCoding

TestingTesting

ReleaseRelease

System specification

Software requirement specificationDesign specification

Source code

Test plans/Procedures/Data

Operational system

Page 6: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Software Configuration Item (SCI)

Information created as part of SE processInformation created as part of SE process SCIs used as target in SCM:SCIs used as target in SCM:

System specificationSystem specification Software project planSoftware project plan Software requirements specificationSoftware requirements specification Preliminary user manualPreliminary user manual Design specificationDesign specification Source code listingSource code listing

Page 7: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

SCI (Cont’d)

Test specificationTest specification Operation and installation manualsOperation and installation manuals Executable programExecutable program Database descriptionDatabase description As-built user manualAs-built user manual Maintenance documentsMaintenance documents Standards and procedures for SEStandards and procedures for SE

Page 8: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

SCI Modification Process

Page 9: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

SCM Process

IdentificationIdentification Version controlVersion control Change controlChange control Configuration auditing Configuration auditing Status reportingStatus reporting

Page 10: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Object identification in SW configuration

SCI can be named and organized using OO SCI can be named and organized using OO approachapproach

Two types of objects:Two types of objects: basic objectbasic object: ‘unit of text’ created during : ‘unit of text’ created during

analysis, design, coding, or testing.analysis, design, coding, or testing. Aggregated objectsAggregated objects: a collect of basic objects: a collect of basic objects

Page 11: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Object identification in SW configuration (cont’d)

Features of objects:Features of objects: name: a character stringname: a character string description: a list of data items to identify the SCI description: a list of data items to identify the SCI

type and a project id, version information, etc.type and a project id, version information, etc. resources: entity that are provided, processed, resources: entity that are provided, processed,

referenced by the objectreferenced by the object Realization: a pointer to ‘Realization: a pointer to ‘unit of text’unit of text’ for a basic for a basic

object or object or nullnull for an aggregate object for an aggregate object

Page 12: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Object identification in SW configuration (cont’d)

Relationships between objectsRelationships between objects part-of: a hierarchical relationshippart-of: a hierarchical relationship interrelated: a cross-structural relationshipinterrelated: a cross-structural relationship

Object identification methodsObject identification methods evolution graphevolution graph automated SCM toolsautomated SCM tools module interconnection languagemodule interconnection language

Page 13: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Configuration ObjectsConfiguration Objects

Page 14: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Evolution Graph

obj1.2

obj1.4

obj2.0

obj1.3

obj1.1.1

obj1.1.2

obj2.1

obj1.0

obj1.1

Page 15: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Version Control

Some of the issuesSome of the issues When an executable is built, the versions of its When an executable is built, the versions of its

constituents must be consistent.constituents must be consistent. If A depends upon B and B is recompiled, A may If A depends upon B and B is recompiled, A may

also need to be recompiled.also need to be recompiled. What if multiple people need to modify same SCI?What if multiple people need to modify same SCI? Need to know what version different customers haveNeed to know what version different customers have How do you keep track of 100’s or 1000’s of How do you keep track of 100’s or 1000’s of

modules?modules?

Page 16: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Version ControlVersion Control

Evolution graph to represent different Evolution graph to represent different versionsversions

Uses an object pool representing components, Uses an object pool representing components, variants and versions, and their relationshipvariants and versions, and their relationship

RCS (Revision Control System) is common RCS (Revision Control System) is common tool.tool. Use for documentation as well as code Use for documentation as well as code

development.development.

Page 17: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Version Control SupportVersion Control Support

At the language level (in Ada):At the language level (in Ada):

If only body of B changes, no change to AIf only body of B changes, no change to A If spec of B changes, A must be recompiledIf spec of B changes, A must be recompiled

Spec ASpec A

Body ABody A

Spec BSpec B

Body BBody B

With B;With B;

Page 18: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Change Control

Change request from userChange request from user

Developer evaluatesDeveloper evaluates

Change report is generatedChange report is generated

Change control authority makes decisionChange control authority makes decision

Request is queued, persons are assigned

“Check out” SCI(s)

Change request is denied

User is informed

Page 19: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Change Control (cont’d)

Make the change/review changeMake the change/review change

‘‘Check in’ changed SCIsCheck in’ changed SCIs

Establish a baseline for testingEstablish a baseline for testing

Do SQA and ‘promote’ changes for inclusion in next Do SQA and ‘promote’ changes for inclusion in next releaserelease

Rebuild appropriate versionRebuild appropriate version

Audit the SCI changes/ include changes in new versionAudit the SCI changes/ include changes in new version

Release the new versionRelease the new version

Page 20: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Access and Synchronization Control

Page 21: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Configuration Audit

Two approaches can be used to ensure proper Two approaches can be used to ensure proper implementation of change:implementation of change: formal technical reviewformal technical review software configuration auditsoftware configuration audit

CA assesses a configuration object for characteristics that CA assesses a configuration object for characteristics that are not generally not considered during revieware not generally not considered during review

CA generally checks:CA generally checks:•SCM procedures followed•all related SCIs properly updated•change date and author specified

•Changes incorporated•FTR conducted•SE standards followed

Page 22: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Status Reporting

Event occurred -- An SCI received updated IDEvent occurred -- An SCI received updated ID people involvedpeople involved Time happenedTime happened Effects on othersEffects on others Generated on a regular basisGenerated on a regular basis To improve communication among all partiesTo improve communication among all parties

Page 23: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

Summary

SCM identifies, controls, audits and reports SCM identifies, controls, audits and reports modificationsmodifications

An object becomes a baseline once developed An object becomes a baseline once developed and reviewedand reviewed

Version control is the set of procedures and Version control is the set of procedures and tools for managing the use of these objectstools for managing the use of these objects

Page 24: Software Configuration Management (SCM) ä Overview ä What is SCM? ä What are the processes of SCM? ä How does each process do? ä Summary

SummarySummary

Change control is a procedure activity Change control is a procedure activity necessary to achieve quality and consistencynecessary to achieve quality and consistency

Configuration audit is an SQA activity to Configuration audit is an SQA activity to help ensure quality is maintainedhelp ensure quality is maintained

Reporting provides information for better Reporting provides information for better communicationcommunication