Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Software Configuration
Management
Objectives
What is Software Configuration Management
Illustrate the need for Software Configuration
Management
Present predicted results from implementing
Software Configuration Management
Provide a brief description of the key SCM
activities and concepts
SCM Tools
SCM
• Configuration
The arrangement of a computer system of component as defined by the number,
nature, and interconnections of its constituent parts
• Configuration Management
A discipline applying technical and administrative direction and surveillance to:
identify and document the functional and physical characteristics of a
configuration item, and control changes to those characteristics,report change
processing and implementation status, and verify compliance with specified
requirements
Need for SCM
Number of communication channels increase
exponentially with number of team members-the
number of coordination problems also increase
exponentially with the project size.
Software is Easy to Copy
Changes
Staff Turnover
Resulting Problems
Listing seems OK; program does not work
Works in Bombay, misbehaves in Delhi
We had customized for this client, how do we
install the upgrade now?
I had fixed this bug last month, how did it reappear
I haven’t changed the program. Why is it now
blowing up?
Which is the latest source ? I need to put a patch.
Resulting Problems -2
In the last month, user asked for this change and
now she does not want it
Where did Anil leave the programs he was
working Where did Anil leave the programs he
was working on?
Software Configuration
Management
SCM addresses all the issues!!
Key SCM activities
• Configuration Identification
Selection of the configuration items for a system and recording their
functional and physical characteristics
• Baselining
A item that has been formally reviewed and agreed upon, that thereafter
serves as the basis further development, and that can be changed only
through formal change procedures
• Change Control
Evaluation,coordination, approval or disapproval, and implementation of
changes to configuration items after formal establishment of their
configuration identification.
Key SCM activities - 2
• Status Accounting
Recording and reporting of Information needed to manage
a configuration effectively. Includes a listing of the approved
configuration identification, the status of the configuration, and
the implementation status of approved changes.
• Configuration Audit
Verifying that all required configuration items have been
produced, that the current version agrees with the specified
requirements, that the technical documentation completely and
accurately describes the configuration items and that all
change requests have been resolved.
Key SCM activities - 3
• Subcontractor Control (If applicable)
Evaluation,coordination and approval or disapproval
of all changes submitted by the subcontractor to
approved configuration documentation and
monitoring of the subcontractor’s performance on CM
function.
Configuration Identification
Configuration Identification
Identifying the structure of the software system
Identifying all related software life cycle work
products
providing a unique identifier for each of those
work products
Supporting traceability between the software and all
other related software products.
Configuration Identification
• An organisation and/or project should identify
which work product are to be placed under
configuration Management
• The criteria for which items are selected should
be documented and made available to all
affected groups that are supporting the software
project
Examples of
•
Configuration items
Examples of work products that may be identified to be placed under
configuration control include:
• Requirement specification compilers
• development plan operating systems
• architecture specification Linkers/Loaders
• Interface specifications procedure languages
• design specification shell scripts
• code modules other related support tools
• Test plans third party tools
• test procedures project plans
• user documentation quality plans
• development procedures configuration management plans
• standards logical data structures
• data dictionaries user interface files, data
• system build files Installation / configuration files
Structures in software
development process
• There are two structures that SCM is concerned
with
• Problem solving structure
- The system concept evolves through the lifecycle by
successive refinement and elaboration
• Product system structure
- The system is composed of subsystem components, which
are themselves composed of subsystem components
Configuration Items and
Versions
• A configuration item is a work product (documents, code unit
test etc.) explicitly based under configuration control
• Each time a configuration item is revised and replaced under
configuration control, a new version is created.
• Branch versions are also called Variants
• A configuration is a collection of configuration item versions
that are put together( to form a module, a subsystem a
product, etc..)
Versions of configuration Items
• Version
- Defined state of an object at a particular time(snap shot)
- Replace a previous version when that object has been further
developed
• variant - One of several versions of an item that exist at the same time
- Item needs to meet similar but different requirements at the same
time(different hardware platforms
Baselining
Baselining
A base line is an approved snapshot of the system
at appropriate points in the development life cycle.
A baseline could be
- Specification
- Product that has been formally reviewed
and agreed upon
A partial system
The Value of Baselining
• Change is a fact of line in software development
– Customers want to modify requirements
– Developers want to modify the technical approach
– Management wants to modify the project approach
• Why all of this modification?
– As time passes all parties know more
• about what they need
• which approach would be best
• how to get it done and still make money
– The additional knowledge becomes the driving force behind most changes
• Most change requests are justified!!!
Baselining
• The fundamental success of any development effort is
dependent on well-defined reference points….against which
to specify requirements, formulate a design, and specify
changes to these requirements and the resultant designs.
• The term baseline is normally used to denote such a
reference point
• A baseline is an approved snapshot of the system at a
given point in its evolution
•
Baselining-2
• A baseline establishes a formal base for defining
subsequent change
• Without this line or reference point the notion of change is meaningless
• The items in the baseline form the basis for the work in the
next phase of the software development cycle
• The items of the next baseline are measured and verified
against previous baselines before they become baselines
themselves
Additional Baselines
• The project leader may choose to defines or
create additional baselines on his project to
create points of visibility or stability during
development
• This may be particularly appropriate if an
incremental development approach is adopted or
if the customer demand it
Summary
• Baselines are created to establish visibility and
stability within a project from which to move
forward.
– The high level design baseline for instance is a definition of the
system architecture from which detailed designs can be
produced.
• A change to baseline is made with a change
request because it is likely to involve new
agreements/contracts with other affected groups
– It may also have an effect on work that has already been
completed in working from the original baseline.
Configuration Change Control
Configuration Change Control
• Establishing a change control process that
specifies :
- Who can initiate the change request
- The individuals, group, or groups who are responsible
for evaluating, accepting and tracking the change
proposals for the various baseline products
- The “change impact” analysis expected for each
requested change
- How the change history should be kept
Need for Change Control
C h a n g e r e q u e s t e v a l u a t e d
C h a n g e r e q u e s t r e v i e w e d f o r a p p r o
P e n d i n g C C B A p p r o v e d R e j e c t e d
C h a n g e o r d e r p r e p a r e d
C o n f i g u r a t i o n i t e m s , t a s k s , Q C r e q u i r e
C o n f i g u r a t i o n i t e m s c h e c k e d o u t
C h a n g e m a d e ; Q C a c t i v i t i e s c a r r i e d
c o n f i g u r a t i o n a u d i t c a r r i e d o u t
C h a n g e d i t e m s c h e c k e d i n
N e w p r o d u c t r e l e a s e m a d e
Some Good Practices
• Keep version history in the configuration item
• Item to contain exact item name, version number ,
date
• Identify configuration items to be tracked
Configuration Management
Status Accounting
Status Accounting
How are changes control The steps to process changes are ...
to the Configuration
Controlled?
Low End
Bad Excuses
• We apply CM only to source code
• CM is not applicable because using the latest iterative, concurrent, rapid, spiral,
evolutionary life cycle model
• CM hinders persons with initiative from making a quick correction
• CM hinders creativity
• We do not have a change request form because the customer doesn’t want it
• Our CASE tools will automatically do CM
• CM responsibility belongs to our customer
• CM is a clerical task that does not require much skill
• Design documents are not in CM because we want the flexibility to change design easily
• We don’t track change history in data dictionary because our CASE tool has no provision
to do it.
Assignment-Self Study
1. Understand the following terms with respect to
Configuration Management, how it is performed in the
SCM Tool you use in your project
Basic Setup :-Repository (repo),Server/Client, Working Set/Workin Copy,.
Trunk/Main, workspace
Changelog/History/Update/Sync , Revert
Advanced Actions :
– Branch: Diff/Change/Delta
– Merge (or patch): Conflict:
– Resolve:.
– Locking:.
– Breaking the lock: Check out for edit: