Presentation on theme: "Software Configuration Management (SCM)"— Presentation transcript:
1 Software Configuration Management (SCM) OverviewWhat is SCM?What are the processes of SCM?How does each process do?Summary
2 Software Configurations Software configuration -- the outputComputer programs (source and executables)DocumentsDataSoftware Configuration Management (SCM)The art of identifying, organizing and controlling modifications to the software being built
3 Why Do We Need SCM? First Law of System Engineering Sources of Change No matter where you are in the system life cycle, the system will change and the desire to change it will persist throughout the life cycleSources of ChangeNew business or market conditionsnew customer needsOrganization and/or business downsizingBudgetary or scheduling constraints
4 Baseline Concept IEEE defines a baseline as: A specification or product that has been formally reviewed and agreed upon, that thereafter serve as the basis for further development, and that can be changed only through formal change control proceduresA baseline is a milestone in the development of software that marked the delivery of one or more software configuration items6
5 Common Baselines System specification System engineeringRequirement analysisSoftware designCodingTestingReleaseSystem specificationSoftware requirement specificationDesign specificationSource codeTest plans/Procedures/DataOperational system7
6 Software Configuration Item (SCI) Information created as part of SE processSCIs used as target in SCM:System specificationSoftware project planSoftware requirements specificationPreliminary user manualDesign specificationSource code listing9
7 SCI (Cont’d) Test specification Operation and installation manuals Executable programDatabase descriptionAs-built user manualMaintenance documentsStandards and procedures for SE10
9 SCM Process Identification Version control Change control Configuration auditingStatus reporting11
10 Object identification in SW configuration SCI can be named and organized using OO approachTwo types of objects:basic object: ‘unit of text’ created during analysis, design, coding, or testing.Aggregated objects: a collect of basic objects12
11 Object identification in SW configuration (cont’d) Features of objects:name: a character stringdescription: a list of data items to identify the SCI type and a project id, version information, etc.resources: entity that are provided, processed, referenced by the objectRealization: a pointer to ‘unit of text’ for a basic object or null for an aggregate object13
12 Object identification in SW configuration (cont’d) Relationships between objectspart-of: a hierarchical relationshipinterrelated: a cross-structural relationshipObject identification methodsevolution graphautomated SCM toolsmodule interconnection language
15 Version Control Some of the issues When an executable is built, the versions of its constituents must be consistent.If A depends upon B and B is recompiled, A may also need to be recompiled.What if multiple people need to modify same SCI?Need to know what version different customers haveHow do you keep track of 100’s or 1000’s of modules?
16 Version Control Evolution graph to represent different versions Uses an object pool representing components, variants and versions, and their relationshipRCS (Revision Control System) is common tool.Use for documentation as well as code development.
17 Version Control Support At the language level (in Ada):If only body of B changes, no change to AIf spec of B changes, A must be recompiledSpec ABody ASpec BBody BWith B;The point here is that this is enforced by the language. You cannot build an executable if the versions are not consistent.The compiler system uses time stamps on the spec and body. These are compared whenever a compilation is to take place or when the linker is used to build a an executable. One is not allowed to proceed if the time stamps are not consistent.
18 Change Control Change request from user Developer evaluates Change report is generatedChange control authority makes decisionChange request is deniedUser is informedRequest is queued, persons are assigned“Check out” SCI(s)
19 Change Control (cont’d) Make the change/review change‘Check in’ changed SCIsEstablish a baseline for testingDo SQA and ‘promote’ changes for inclusion in next releaseRebuild appropriate versionAudit the SCI changes/ include changes in new versionRelease the new version
21 Configuration AuditTwo approaches can be used to ensure proper implementation of change:formal technical reviewsoftware configuration auditCA assesses a configuration object for characteristics that are not generally not considered during reviewCA generally checks:Changes incorporatedFTR conductedSE standards followedSCM procedures followedall related SCIs properly updatedchange date and author specified
22 Status Reporting Event occurred -- An SCI received updated ID people involvedTime happenedEffects on othersGenerated on a regular basisTo improve communication among all parties
23 Summary SCM identifies, controls, audits and reports modifications An object becomes a baseline once developed and reviewedVersion control is the set of procedures and tools for managing the use of these objects
24 SummaryChange control is a procedure activity necessary to achieve quality and consistencyConfiguration audit is an SQA activity to help ensure quality is maintainedReporting provides information for better communication