software configuration management
TRANSCRIPT
SOFTWARE CONFIGURATION MANAGEMENT
What is configuration management?• “SCM is the control of the evolution of
complex systems,…, for the purpose to contribute to satisfying quality and delay constraints.”
– Jacky Estublier
• “SCM provides the capabilities of identification, control, status accounting, audit and review, manufacture, process management, and teamwork.”
– Susan Dart
Goals of CM
• SPM activities are planned.• Selected s/w work products are
identified,controled and available..• Change to identified s/w work products
are controlled.• Affected groups and individuals are
informed of the status and contents s/w baseline.
Objectives of CM
• Remote system administration.• Reduced user down-time.• Reliable data backup.• Easy worstation set up.• Multi user support.• Remote s/w installation.
Configuration Management process
• Work products; change
requests
• Controlled work
products; approved change
requests
• Status reports;
audit results
• CM Plan
• Project Management Processes
• Project Planning
• Project Monitoring &
Control
• Project Startup
• Project Closeout
• Project Formulation
• Product Development Processes
• Requirements
Engineering
• Product Release
• Sustaining Engineerin
g & Maintenan
ce
• Design
• Implementation
• Testing
• Systems Engineeri
ng
• Configuration
Management
Process
• Planning Data
CM Benefits• Improves
– Product protection– Product visibility– Product control– Team communication– Customer Confidence
• Decreases– Rework– Confusion– Project Risk
BASELINE• “A specification or product that has been formally
reviewed and agreed to by responsible management, that thereafter serves as the basis for further development, and can be changed only through formal change control procedures.”
Examples: Baseline A: The API of a program is completely defined;
the bodies of the methods are empty.Baseline B: All data access methods are implemented and
tested; programming of the GUI can start.Baseline C: GUI is implemented, test-phase can start.
BASELINE IN SCM
Official Release
Baseline A (developmental)
Baseline B (functional)
Baseline C (beta test)
All changes relative to baseline A
All changes relative to baseline B
All changes relative to baseline C
What is Change ?• Change is defined as anything hardware,
software, system components, services, documents, or processes that is deliberately introduced into the production environment and which may affect a Service Level Management(SLA) or otherwise affect the functioning of the environment or one of its components.
Change Management• Software change management encompasses all of the
processes necessary to determine where you are at compared to where you planned to be and the activities required to get back on track if those are not aligned.
Change Management cont..• Change management is the handling of change requests
– A change request leads to the creation of a new release.
• General change process– The change is requested (this can be done by anyone
including users and developers)– The change request is assessed against project goals– Following the assessment, the change is accepted or
rejected– If it is accepted, the change is assigned to a developer and
implemented– The implemented change is audited.
Change Request form• The definition of a change request form
is part of the CM planning process.• This form records the change proposed,
requestor of change, the reason why change was suggested and the urgency of change(from requestor of the change).
• It also records change evaluation, impact analysis, change cost and recommendations (System maintenance staff).
Change Request formChange Request Form
Project: Proteus/PCL-Tools Number: 23/02Change requester: I. Sommerville Date: 1/12/02Requested change: When a component is selected from the structure, displaythe name of the file where it is stored.
Change analyser: G. Dean Analysis date: 10/12/02Components affected: Display-Icon.Select, Display-Icon.Display
Associated components: FileTable
Change assessment: Relatively simple to implement as a file name table isavailable. Requires the design and implementation of a display field. No changesto associated components are required.
Change priority: Low
Change implementation:Estimated effort: 0.5 days
Date to CCB: 15/12/02 CCB decision date: 1/2/03CCB decision: Accept change. Change to be implemented in Release 2.1.Change implementor: Date of change:Date submitted to QA: QA decision:Date submitted to CM:Comments
• Two types of controlling change:- Promotion: The internal development state of a software is changed.- Release: A set of promotions is distributed outside the development organization.
• Approaches for controlling change to libraries (Change Policy)– Informal (good for research type environments)– Formal approach (good for externally developed CIs and for
releases)
Promotion ReleaseSoftware
Repository
UserProgrammer
PromotePolicy
ReleasePolicy
MasterDirectory
Controlling Changes
Change Tracking Tools• A major problem in change management is tracking
change status.• Change tracking tools keep track the status of each
change request and automatically ensure that change requests are sent to the right people at the right time.
• Integrated with E-mail systems allowing electronic change request distribution.
Version Control
• Manages file sharing for Concurrent Development.
• Keeps track of changes with Version Control
• SubVersion (SVN) http://subversion.tigris.org/ is a version control system.
• keeps log of any changes made to any file. Ever!Also keeps copies of those changes. For ever!
• Participants can go back and receive older versions of a file or even an older version of an entire project state