Configuration Management
Configuration management
Configuration management is unique identification, controlled storage, change
control, and status reporting of selected intermediate work products, product
components, and products during the life of a system.
Configuration Management Planning
Configuration Management starts during the early phases of the project All products of the software process may have to be managed
Example:
o Specifications
o code
o Designs
o Programs
o Test data
o User manuals
Thousands of separate documents may be generated for a large software system
Configuration Management Plan
o Defines the types of documents to be managed and a document naming scheme
o Defines who takes responsibility for the CM procedures and creation of “baselines”
o Defines policies for change control and version management
o Defines the CM records which must be maintained
o Describes the tools which should be used to assist the CM process and any limitations on their use
Configuration item identification
o Large projects typically produce thousands of documents which must be uniquely identified. Some of these documents must be maintained for the lifetime of the software
o Document naming scheme should be defined so that related documents have related names.
o A hierarchical scheme with multi-level names is probably the most flexible approach
The configuration database
All CM information should be maintained in a configuration database. This should allow queries about configurations to be answered
o Who has a particular system version?
o What platform is required for a particular version?
o What versions are affected by a change to component X?
o How many reported faults in version T?
o The CM database should preferably be linked to the software being managed
Change Management
Software systems are subject to continual change requests
o From users
o From developers
o From market forces
Change management is concerned with keeping track of these changes and ensuring that they are implemented in the most cost-effective way
Version and Release Management
o Invent identification scheme for system versions
o Plan when new system version is to be produced
o Ensure that version management procedures and tools are properly applied
o Plan and distribute new system releases
Versions/Variants/Releases
Version: An instance of a system which is functionally distinct in some way from other system instances
Variant: An instance of a system which is functionally identical but non-functionally distinct from other instances of a system
Release: An instance of a system which is distributed to users outside of the development team
Version identification
o Procedures for version identification should define an unambiguous way of identifying component versions
o Three basic techniques for component identification
o Version numbering
o Attribute-based identification
o Change-oriented identification
Release management
o Releases incorporate changes forced on the system by errors discovered by users and by hardware changes
o They also incorporate new system functionality
o Release planning is concerned with when to issue a system version as a release
System releases
o Not just a set of executable programs, may also include Compilers
o configuration files defining how the release is configured for a particular installation
o Data files needed for system operation
o An installation program or shell script to install the system on target hardware
o Electronic and paper documentation
o Packaging and associated publicity
o Systems are now normally released on CD-ROM or as downloadable installation files from the Web
Release problems
o Customer may not want a new release of the system
o They may be happy with their current system as the new version may provide unwanted functionality
o Release management must not assume that all previous releases have been accepted
o All files required for a release should be re-created when a new release is installed
Release creation
o Release creation involves collecting all files and documentation required to create a system release
o Configuration descriptions have to be written for different hardware and installation scripts have to be written
o The specific release must be documented to record exactly what files were used to create it
• This allows it to be re-created if necessary
System building
o The process of compiling and linking software components into an executable system
o Different systems are built from different
combinations of components
o Invariably supported by automated tools that are driven by ‘build scripts’
System building problems
o When there are many hundreds of components making up a system, it is easy to miss one out; this should normally be detected by the linker.
o A system built with the wrong version may work initially but fail after delivery
o Embedding absolute names in code almost always causes problems as naming conventions differ from place to place
o Different compiler versions may actually generate different code and the compiled component will exhibit different behaviour
Key points
o Configuration management is the management of system change to software products
o A formal document naming scheme should be established and documents should be managed in a database
o The configuration database should record information about changes and change requests
o A consistent scheme of version identification should be established using version numbers, attributes or change sets
o System releases include executable code, data, configuration files and documentation
o System building involves assembling components into a system
-------------------------------------------------
Configuration Management FAQ
0 comments:
Post a Comment