SMU CSE 7315
Planning and Managing a Software
Project
Module 32
Software
Configuration Management
Implementation
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315 – Software Project Management
Objective of This Module
To discuss issues of implementing software configuration management:
Futrell, chapter 31; Humphrey, chapters 7, 12
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 2
Configuration Management
Functions
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 3
Configuration Management Has
Five Major Functions
1) Configuration Identification
– Which parts are combined in what way to make a given release/version
2) Configuration Control
– How & when are changes made to software?
3) Change Management
4) Status accounting
– Where is each component?
5) Configuration Authentication
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 4
Function 1:
Configuration Identification
This is the process of naming components and defining the way they combine to make the product (configuration)
Required at every level of decomposition that can be independently used, sold, replaced or tested
Too much identification can be hard to maintain whereas too little causes productivity problems
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 5
Configuration Identification
Includes ...
Naming conventions for each version of the software and for each version of each configuration element
– Unique name for identification purposes
– Version or change level to distinguish different versions
Descriptions of how the named elements are combined to form higher level elements
Elements of the configuration would include software, documents, development tools, procedures, test cases, and so on.
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 6
Configuration Identification
Also Includes ...
Naming convention and description for each component that makes up each element
– Unique name for identification purposes
– Version
– Description - list of component parts
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 7
You Must Identify the Parts and the Structure
MAIN
COMP1 COMP2 COMP3
MOD1 MOD2 MOD3
Version Description for
Software Release 2.0
--------
MAIN 2.3
COMP1 2.2
COMP2 1.7
etc.
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
Software Structure
MAIN consists of the following components:
COMP1; COMP2; COMP3
COMP1 consists of:
MOD1; MOD2; MOD3
COMP2 consists of: etc., etc.
CSE7315- Software Project Management 8
Function 2:
Configuration Control
This task revolves around having only one official copy of code (baseline) to serve as a reference point
Sub tasks include:
– Promotion management
– Build management
– Access control mechanism
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 9
Promotion Management
Release
Version
Beta Test
Version
Alpha Test
Version
Development
Version
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
You must keep track of when software is ready to “promote” to a new level, what procedures are followed as it passes through levels, etc.
CSE7315- Software Project Management 10
Build Management
Source
Modules (C)
Source Modules
(in Java)
You must keep track of how the software is built, so you can construct it properly
Java
Compiler
Directives
(Build File)
Loader
Source Modules
(Assembly)
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
Assembler
Correctly Built
Version
CSE7315- Software Project Management 11
Access Control Mechanisms
Allow only authorized access and changes
Allow “checkout” (for change purposes) to only one individual at a time
Use private working copies for making modifications (until they are tested)
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 12
Function 3:
Change Management
Change proposal authorization mechanisms
– So you know why a change is being made and who has responsibility for it
– Often done by a Configuration Control Board to make sure all affected parties are informed
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 13
Typical Authorization
Mechanisms
Change initiation procedures
Change classification mechanisms
Change evaluation processes
– What is the impact of this change?
Change dispositioning
– Do we want to make this change?
Change implementation
Change verification
Final change approval
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 14
Change Management
(continued)
Maintain change records
– Record what was done, by whom, and how to test it
– So that you can …
...reinstate or recreate any previous state
...track all changes from the most recent baseline
...assure that subsequent changes are correct
...make sure that affected components are changed properly
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 15
Change Management
(continued)
Check-in procedures
– Make sure that ...
...items checked in have been properly tested
...proper regression testing has been performed before making a changed module part of the configuration
...all affected parts are recompiled
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 16
Function 4:
Status Accounting
This function entails maintaining descriptions and status information on all versions of the software
Description of the current baseline
– All elements - name, description, status (being changed, to be fixed, etc.)
– All changes - type, why, who, when, cause of problem, etc.
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 17
Status Accounting
(continued)
Description of current vs. next release or version
– What changes will be included
– Status of those changes
– Statistics such as how often changed, etc. for each component of the baseline
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 18
Status Accounting
(continued)
Descriptions and copies of prior versions
– Archiving if no longer in use
– Access if still in use
Record of all change activity
– Record of all changes since baseline
– For any element, identify all changes, all users, all uses of that element
– For any change, identify all affected elements
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 19
Function 5:
Configuration Authentication
Functional Configuration Audit
– Verifies that the software does what it is supposed to do
Meets its requirements, passes its tests, is properly designed, etc.
Physical Configuration Audit
– Verifies that all the parts are there and that they are the correct parts
For example, if you compile the source, do you get the right version of the object code?
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 20
Configuration Management
Responsibilities
Who does which of the various functions?
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315 – Software Project Management
There are Three Generally
Acknowledged Configuration
Management Responsibilities
Configuration Manager or Librarian
Module Owner
Change Control Board
These three must work together to have effective
CM. But these jobs are often performed by people in different organizations – this can lead to configuration management problems
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 22
Configuration Manager or
Librarian (for a software item or group of software items)
The central control point for all changes
– Defines/communicates/enforces procedures
– Establishes baselines and backups
– Forbids unauthorized changes
– Records all changes
– Assures that changes are properly tested
– Resolves all exceptions
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 23
Questions The Configuration
Manager Can Answer
What has changed since the baseline?
What tests have been or need to be run?
Where is the code? (specification / user’s guide / etc.)
What constitutes the current version?
This job is often performed by a configuration management professional
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 24
Module Owner (Technical
Control Point)
(for each module or component)
Individual with technical responsibility
– Knows and understands the design
– Knows and understands the interfaces to/from
– Technical control point for changes, fixes, enhancements
– Responsible for technical integrity
– May do periodic regression tests
– Reviews all changes
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 25
Questions The Module Owner
Can Answer
How do I call / use this module?
How does it work?
Why does it work that way?
Can I change it this way?
Is the spec right or the code? (if they differ)
This job is often performed by a software developer.
May not view this as a CM function!
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 26
Suggestions Regarding Module
Owners
1) Have a backup for each module owner
– Generally the things they know are not well documented
– If the module owner leaves, you don’t want to be in deep trouble
2) Have an owner for each interface as well
– For the same reasons you have module owners
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 27
Suggestions Regarding Module
Owners
(continued)
3) If the software is important or will have a long maintenance period, all of the answers to all of the questions should be documented somewhere
4) Make sure the CM role of the module owner is understood by the module owner, the configuration control board, and the configuration manager!
5) There may be a technical working group of knowledgeable software developers that discusses proposed changes and makes recommendations to the change control board
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 28
Change Control Board
Controls, evaluates and coordinates changes
– Includes representatives from all affected functions, such as development, documentation, quality assurance, maintenance, test, etc.
– Makes sure all ramifications of any proposed change are understood
– Authorizes work to make changes
– Authorizes incorporation of changes after suitable tests
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 29
Suggestions Regarding the
Change Control Board
Make sure all key organizations are represented
Make sure that, when an issue involving a module is discussed, that module’s owner is present or has been consulted
This job is often performed by managers. They often feel pressure to make decisions but may not understand the implications of their decisions.
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 30
Planning a SwCM Program
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 31
1) Analyze the Current
Software Process
Understand the culture of the organization
Identify what artifacts should be under the CM control
If you do too much too soon, it has high cost for little benefit
If you do too little too late, it may result in loss of control and integrity
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 32
2) Define the SwCM Process and Procedures
Define configuration control functionality
Establish the change management procedures
– This requires achieving balance between chaos and bureaucracy and should initially focus on frequent and expensive problems
Establish responsibilities needed to successfully implement the control mechanism
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 33
3) Document the Plan
Decide and resolve all issues that must be documented in an SwCM plan
Document all SwCM functions, risks, responsibilities and automation needs in one place to serve as a reference point in the future
Define processes and procedures for all
CM activities
Identify any training needs before the
SwCM process can be implemented
– Standards like DoD, NASA and IEEE can be helpful
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 34
4) Evaluate Tools
The tool should be able to match the requirements of the SwCM process
– The SwCM process drives the selection of tools, not vice versa
The tool should be able to support all of your SwCM needs
– Can it handle the documents, test cases, and other non-code elements of your configuration?
– You may need to supplement a tool with manual procedures or other tools
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 35
Evaluate Tools
(continued)
Does it run on your host machine and OS?
Does it integrate with your compilers, editors, etc?
Determine special needs of your language or design method, e.g:
– Changing a module in Ada forces you to recompile all modules that utilize the changed module
– Some design tools produce multiple files that must be kept together
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 36
Evaluate Tools
(continued)
Can the tool scale up to your project?
– Some tools work fine on small projects but cannot handle a large one
– You may need to augment the tool to fix or enhance it for your purposes
Beware - this can be a “tar baby”
Work with the vendor to influence them to make needed improvements
Work with other users to share effort
Many tools are file oriented
– You may need a more advanced concept, such as
“change set oriented” tools
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 37
Evaluate Tools
(continued)
What amount of training and expertise are required to use the tool properly?
– Modern CM tools can be very complex and difficult to use
– People with inadequate training and experience may use them improperly
Inefficencies
Errors
– Many organizations treat CM as a clerical function – this is not adequate for modern software systems
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 38
Final Steps for Planning SwCM
5) Perform a Pilot
– It is important to understand the weaknesses before applying a CM system to a large scale project
6) Rollout the SwCM system
7) Facilitate ongoing improvement
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 39
Some Practical Problems with
Implementing SwCM
Prerequisites
Cost vs. Benefit
Adequacy of Tools
Software CM vs. Other CM
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315 – Software Project Management
Three Important Prerequisites to Implementing SwCM
Management support
A repeatable process
Awareness of risks
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 41
Management Support
CM can be an expensive function and adds time & overhead to a project
It inhibits quick fixes near a deadline
Promotes team productivity over individual productivity
Management support is essential to acquire resources and to enforce the CM policies in the development process against many forms of resistance
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 42
Repeatable Process
The SwCM process must be integrated into the development process to improve the team productivity & product quality
Without an existing repeatable process, the risk of inappropriate CM process is very high. This may cause more problems rather than solving the problems of the existing process
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 43
All Risks Identified
All SwCM related risks should be identified and mitigated before enforcing the SwCM process
Typically, fewer than 25% of risks in implementing SwCM are technical
– The rest are political, management and cultural risks
– For example, determining who controls change or makes decisions
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 44
Cost vs. Benefit of CM
Configuration management can be an expensive function
CM adds time and overhead to a project
If you do too much too soon, it has high cost for little benefit
If you do too little too late, it may result in loss of control and integrity
It is a management function but is typically performed by software development people who may not understand much about management
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 45
Avoiding Excessive Overhead
Configuration management is notorious for adding overhead costs and time to a project. But these can be managed and controlled.
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 46
Techniques for Controlling CM
Overhead
Carefully integrate the CM function with the rest of the software development process
– Make the necessary CM steps a natural part of the process
Be careful to choose the right amount of
CM for the particular product
Be careful to choose tools and procedures that are efficient and effective
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 47
Another Way to Control
Overhead: Multiple Levels of CM
Have different levels of formality for different situations
Formality may change as development progresses, for example as individual development is replaced by group activities
Formality may vary as a function of the size of the development team or the complexity of the product
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 48
Multiple Levels of CM
Individual Control
If it affects only 1 person, that individual is responsible for all configuration management
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
Engineering Control
If it affects only one team
(same location, same group of related modules), that team does configuration management
(with all responsibilities accepted by team members)
CSE7315- Software Project Management 49
Multiple Levels of CM
(continued)
Formal Control
If it affects more than one team, or people outside of the local team, it becomes appropriate to use a more formal CM function, often carried out by a separate organization.
...
CM Staff
Developers
CSE7315- Software Project Management Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
50
CM Tools
Some CM tools are inadequate, slow and expensive, and/or cumbersome to use
– They may not scale up well for large projects
– In the past, such tools have typically been developed by people with a limited frame of reference
They may not be good at both document CM and design model and code CM, especially for different languages
Most modern tools are difficult to learn and to use properly
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 51
CM Tools
They may not integrate well with the rest of the software development tools and especially not with other tools used on a large program, such as system engineering or hardware design tools
Upgrades to new versions of a tool may be difficult because of lack of full compatibility
Translations between different tools may be impossible!
– Different underlying models
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 52
Recommendations on CM
Tools
Plan well ahead of time
– Define levels of CM needed, procedures to be used, etc.
– Use some form of CM from the very beginning
for requirements documents, SOW, etc.
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 53
Recommendations on CM
Tools
(continued)
Get the best tools you can
– Evaluate thoroughly
-- can it scale up?
-- does it run on your host machine and OS?
-- does it integrate with your compilers, editors, etc?
-- does it support all of your CM needs?
– You may need to use multiple tools or do some steps by hand
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 54
Recommendations
(continued)
Determine special needs of your language or design method
– For example, if you change a module in Ada, you must recompile all modules that utilize the changed module
– Some design tools produce multiple files that must be kept together
You may need to augment the tool to fix or enhance it for your purposes
– Beware - this can be a “tar baby”
– Work with the vendor to influence them to make needed improvements
– Work with other users of the tool to share effort
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 55
Software CM vs. Other CM
In concept, software CM is no different from hardware CM
But in practice, software CM is needed more intensely, sooner
– Intangibility of software
– Software change cycle is relatively short
– Software complexity is relatively high
– Proliferation of artifacts during software development
– Difficulty of telling “what goes with what” in software
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 56
Final Remarks
You must plan CM from the start
You must manage the configuration
You must automate CM or it will become too much of a burden
CM tools and methods are not always up to the task
– Often tend to bog down with large software projects
– Typically do not handle code, documents, design models, and other artifacts equally well
– Typically file oriented rather than “change set” oriented
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 57
Summary of Module
Software Configuration Management has five key functions and three key roles
The roles are often carried out by individuals from different organizations who must understand the need to work with each other and that they are all part of the CM process
There are many practical issues associated with planning and implementing CM
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 58
References
Ben-Menachem, Mordechai, Software CM
Guidebook , McGraw Hill Book Co., 1994,
ISBN 0-07-709013-6, LC# 94-001102
Compton, Stephen B. & Guy Conner, CM for
Software , Van Nostrand Reinhold, 1994,
ISBN 0442017464
Dart, Susan A., "Achieving the Best Possible
Configuration Management Solution,"
CrossTalk , Vol 9 #9 (September, 1996).
Esterbrook, Steve, The Configuration
Management (CM) Resource Guide , 1999, http://www.quality.org/config/cmguide.html
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 59
References
(continued)
Marshall, A. J., "Demystifying Software
Configuration Management." CrossKeys ,
Vol 8 #5, (May, 1995).
NASA, Software Configuration
Management Guidebook , 1995, http://satc.gsfc.nasa.gov/GuideBooks/cmpub.ht
m
Parnas, David Lorge. "Software Aging."
Proceedings of the 16th International
Conference on Software Engineering ,
1994, pp. 279-287.
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 60
Copyright 1995-2009, Dennis J. Frailey
CSE7315 M32 - Version 9.01
CSE7315- Software Project Management 61