TCS2411 Software Engineering 2
Lecture ObjectivesTo understand the activities in
managing software changesTo identify the software configuration
items that needs to be managedTo describe the different tasks in
software configuration management
TCS2411 Software Engineering 3
What is S/w Configuration Management?
SCM is the discipline for systematically controlling the changes that take place during development
Umbrella activity that is applied throughout SE process
SCM is easier at the start of development and gets more complex towards the end
TCS2411 Software Engineering 4
Sources of Change
New business or market conditionsNew customer needsReorganisation and/or business
downsizingBudgetary or scheduling constraints
TCS2411 Software Engineering 5
Main Elements of SCM
Identification What are the configuration items?
Control How changes should be controlled?
Status Accounting What changes have been made?
Auditing Is the system being built to satisfy the
needs?
TCS2411 Software Engineering 6
Software ConfigurationComputer programs
Source code Executable code
Documents that describe the computer programs For technical staff For users
Data Within the program and external to it
TCS2411 Software Engineering 7
Software Configuration Item
A document or an artifact that is explicitly placed under configuration control and that can be regarded as a basic unit for modification
Examples: requirement documents design document code of a module test plan
TCS2411 Software Engineering 8
Baselines Definition
IEEE definition:“A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures”
TCS2411 Software Engineering 9
BaselinesA baseline is essentially a set of SCIsThe items have been reviewed,
corrected, and approvedBaselines should be used as
reference pointBaselines should only be changed
through formal proceduresCareful definition and control of
different baselines should be done
TCS2411 Software Engineering 10
Examples of Baselines
Functional baseline (requirements)Design baselineProduct baseline (developed system)
TCS2411 Software Engineering 11
Configuration Control
Version control - procedures and tools to manage different versions of configuration objects
Change control - procedures and tools to provide a mechanism for the control of changes
TCS2411 Software Engineering 12
Version Control
Process of identifying and keeping track of different versions and releases of a system
Procedures to ensure that different versions of a system may be retrieved when required and not accidentally changed
Version management is almost always supported by automated tools
TCS2411 Software Engineering 13
Evolution Graph
Obj1.0
Obj1.1.1
Obj1.1.2
Obj1.1
Obj1.2
Obj2.0
Obj1.3
Obj1.4
Obj2.1
TCS2411 Software Engineering 14
Versions, releases & variants
Version - an instance of a system that differs from other instances different functionality performance repair of system faults
Release - version that is distributed to customers
Variant - sometimes used when differences are small
TCS2411 Software Engineering 15
Change Control
Focuses on managing changes to the different forms of the SCIs
Engineering change proposal - basic document used for defining & requesting for a change.
Configuration Control Board (CCB) is responsible for configuration management
CCB evaluate proposal & approve/reject it
TCS2411 Software Engineering 16
Change Control Process
Needfor
change
OtherSCMtasks
Changerequest
generated
Changereport
generated
Place onqueue
for change
ECOgenerated
Requestoris informed
Evaluation
CCAdecision
Reject
Approve
Technical merits, Side effectsOverall impact, Project cost
TCS2411 Software Engineering 17
Engineering Change Proposal
proposed changereason(s)baselines & SCIs that are affectedcostschedule impactsprocedures for the change
TCS2411 Software Engineering 18
Engineering Change Order
Change descriptionConstraintsAudit review criteria
TCS2411 Software Engineering 19
Change Process
Object to be changed is “checked out”
Change is madeAppropriate SQA activities appliedObject is “checked in” to the
databaseVersion control mechanisms applied
for next version
TCS2411 Software Engineering 20
Change Process Diagram
SoftwareEngineer Project
Database
Check-out
Check-in
Accesscontrol
Configuration object(baseline version)
Configuration object(baseline version)
Ownershipinfo
lock
unlock
Configuration object(extracted version)
Configuration object(modified version)
Audit info
TCS2411 Software Engineering 21
Status Accounting/Reporting
Keeps record of how the system evolves and what is its current status (administrative nature)
Can be complex due to the existence of executable and non-executable forms
TCS2411 Software Engineering 22
Status Reporting Process
ConfigurationIdentification
ConfigurationAudit
ConfigurationControl
StatusReporting
CSRReport
CSRDatabase
SCIs
Changes
Deficiencies
TCS2411 Software Engineering 23
Status Accounting Tasks
Record baseline establishment timeRecord when SCI came into beingInformation about each SCIEngineering change proposal statusStatus of the approved changes
TCS2411 Software Engineering 24
Configuration Audit
Concerned with determining how accurately the current software system implements the system defined in the baseline & requirements document
Also concerned with increasing the visibility and traceability of the software
Also establish a new baseline
TCS2411 Software Engineering 25
AuditingHow do we know a change is properly
implemented? Formal technical reviews - assess the SCI to
determine consistency with other SCIs Software configuration audit
SCI changes made?FTR conducted?SE standards followed?SCM procedures followed & updates properly
done?Related SCIs updated?