Benefits of SCM Why Products Change ?: Software Configuration Management
Benefits of SCM Why Products Change ?: Software Configuration Management
1 2
3 4
5 6
1
SCM Activities are done to….. Software Configuration Item (SCI)
7 8
changes in
business requirements
programs documents changes in
technical requirements
changes in
user requirements other
documents
9 10
11 12
2
Baselines Baselines modified
SCIs
• The IEEE (IEEE Std. No. 610.12-1990) defines a baseline as: Project database
approved
• A specification or product that has been formally reviewed and agreed upon, that Software Formal
engineering SCIs technical SCIs
thereafter serves as the basis for further development, and that can be changed only tasks reviews
through formal change control procedures.
stored
SCIs
and the approval of these SCIs that is obtained through a formal BASELINES:
System Specification
technical review Software Requirements
Design Specification
Source Code
Test Plans/Procedures/Data
Operational System
13 14
15 16
17 18
3
Baseline Management - Questions Baseline Management - Questions
• How are people informed of changes? • What information is required to process a change to a baseline?
• The CCB disseminates change information • A description of the proposed changes
• How are baselines verified? • Reasons for making the changes
• By reviews, inspections, and the testing of code • List of other items affected by the changes
• Are baselines tied to project milestones? • What tools, resources, and training are required to perform baseline
• Many are, but during coding many may not be change assessment?
• File comparison tools to identify changes
• Resources and training depend on size and complexity of project
19 20
21 22
23 24
4
Configuration Identification Configuration Identification
• Identify what the different baselines will consist of • Configuration identification is the process of identifying the attributes
that define every aspect of a configuration item.
• Set labelling and identification conventions for the CIs • A configuration item is a product (hardware and/or software) that has
an end-user purpose.
• These attributes are recorded in configuration documentation and
baselined.
• Baselining an attribute forces formal configuration change control
processes to be effected in the event that these attributes are
changed.
25 26
27 28
• Basic object
architectural design
module design
interface design
• A ‘unit of text’ that has been created by a software engineer during Component N
analysis, design, coding or testing
interface description
• Aggregate objects algorithm desc ription
Test specific ation PDL
• A collection of basic objects and other aggregate objects
(conceptually it can be viewed as a named (identified) list of tes t plan
tes t proc edure
pointers that specify basic objects) tes t cases
Source code
29 30
5
SCM Repository Repository Content
use-cases
analy sis m odel
• The SCM repository is the set of mechanisms and data structures that
business rules source code
business funct ions scenario-based diagram s obj ect code
organizat ion st ruct ure flow-orient ed diagram s sy st em build inst ruct ions
class-based diagram s
•
t est script s
Data integrity t est result s
qualit y m et rics
Model
• Information sharing Cont ent
V&V
31 32
35 36
6
The SCM Process
5 SCM tasks Software
Vm.n
• Identification reporting
• Status reporting
identification
SCIs
37 38
• A variant is a different set of objects at the same revision level and Revisions
coexists with other variants
changes to a version to correct only errors in design logic but does not
affect documented functional capabilities since none of the requirements
have changed.
• A new version is defined when major changes have been made to
one or more objects
Variants
a variation of a version developed to run on different types of HW, or to
provide slightly different facilities for different users.
39 40
Examples Merging
successive versions • Two diverging versions may be merged to create a single new version
combining both set of change requests.
1.1 1.2 1.3 1.4
1.3.1.1 1.3.1.2
41 42
7
Version Management Version Control
• Being able to reliably build and recreate versions of a product as it • Version control combines procedures and tools
evolves and after it is released. • to manage different versions of configuration objects that are created during the software
process
• Being able to retreat to a previous version if necessary • for managing the creation and use of multiple occurrences of Conf Items in the SCM
repository
• Being able to recreate all versions of the product that customers have
• A version control system implements or is directly integrated with four major
capabilities:
• a project database (SCM repository) that stores all relevant configuration objects
• a version management capability that stores all versions of a configuration object (or enables
any version to be constructed using differences from past versions)
• a make facility that enables the software engineer to collect all relevant configuration
objects and construct a specific version of the software.
• an issues tracking (also called bug tracking) capability that enables the team to record and
43 track the status of all outstanding issues associated with each configuration object. 44
• Version control is a set of procedures and tools for managing the • Change request
creation and use of multiple occurrences of Cis in the SCM repository • submitted and evaluated to assess technical merit and impact on the other configuration
objects and budget
• Required version control capabilities
• An SCM repository that stores all relevant configuration objects • Change report
• A version management capability that stores all versions of a configuration • contains the results of the evaluation
object (or enables any version to be constructed using differences from past
versions) • Change control authority (CCA)
• To make facility that enables the software engineer to collect all relevant • makes the final decision on the status and priority of the change based on the change report
configuration objects and construct a specific version of the software
• Issues tracking (bug tracking) capability that enables the team to record and • Engineering change order (ECO)
track the status of all outstanding issues associated with each configuration • generated for each change approved (describes change, lists the constraints, and criteria for
object review and audit)
45 46
47 48
8
Change Control Change Management Methodology
request is queued for action, Check-in SCIs that have been changed
Engg. Change Order (ECO) change request is denied
is generated establish a “baseline” for testing
user is informed
change control process—II change control process—III
51 52
9
Software Libraries Three Kinds of Software Libraries
• SW libraries provide the means for implementing SCM Dynamic library (programmer’s library)
• programmer’s workspace
• The number and kind of libraries will vary from project to project . It
depends on the levels of control needed. Controlled library (master library)
• used for managing the current baseline(s) and for controlling changes made
to them
55 56
foward
• Full files delta files
Vn Vn
• Forward Delta files version version + first
version
• Reverse Delta files
changes
• The set of differences between two versions is called a delta.
Vn+1 Vn+1
version version
Vn
version
57 58
recent version
Vn Vn
version version
SCM Audit
59 60
10
Configuration Auditing Configuration Audit
• Ensure existence of required components • A configuration audit establishes that product integrity has been
• Maintains integrity of each configuration maintained and that changes have taken place in an orderly and controlled
manner.
• Audits ensure each configuration contains the correct versions
• Configuration auditing is an SQA activity that helps to ensure that quality is
• Review configuration changes maintained as changes are made
• Audits generally correspond to major milestones • It complements the formal technical review and is conducted by the SQA
group
• Audit for:
• Audit of the SW product
• Audit of SCM activities
61 62
• The correct CIs (by version) have been incorporated into a specific build • Functional audits – verify that functionality and performance are consistent with requirements defined in
• That all documentation is up-to-date and consistent with the version that has the SRS
• it verifies that each CI in the product has been tested to determine that it satisfies the functions defined in the specifications
been built or contract(s) for which it was developed.
• Physical audits – verify that the as-built version of software and documentation are internally consistent and
• It addresses the following questions ready for delivery
• consists of determining that all items identified as being part of the configuration are present in the Product baseline
• Has the change specified been made? Have any additional modifications been incorporated?
• Has a formal technical review been conducted to assess technical correctness? • it must also establish that the correct version and revision of each part are included in the product baseline and that they
correspond to information contained in the baseline’s configuration status report.
• Has the software process been followed, and have software engineering standards been properly
applied?
• Has the change been "highlighted" and "documented" in the CI? Have the change data and change • Quality system audits – independent assessment of the compliance to the software QA plan
author been specified? Do the attributes of the configuration object reflect the change?
• Have SCM procedures for noting the change, recording it, and reporting it been followed?
• Have all related CIs been properly updated?
63 64
Change
• Identify changes made to configuration
Change
Reports • Maintain records of changes to all objects throughout the application’s life
Requests ECOs
cycle
SCIs
• Identify work in process
• Document contents of all builds
• Generate periodic status reports
Status Accounting
Reporting
65 66
11
Configuration Status Accounting Requirements Status Accounting
• Identifying the types of information that project managers need • Provides
• a mechanism for administrative tracking and reporting of all SW items identified and
controlled.
• Identifying the degree of control needed by project management • information about each change to those personnel in an organization with a need to know
67 68
Status reporting
• Answers what happened, who did it, when did it happen, and what else
will be affected?
69 70
71 72
12
SCM Plan SW Configuration Management Plan
The SCM Plan is prepared in Project Initiation phase. It documents -- IEEE Standard 828-1990 for SCM Plan
73 74
75 76
- user
- customer Define responsibilities
- developer
77 78
13
Questions
79
14