Prevention

Detection

Reliability

Embedded Systems Quality

Requirements Elicitation

Configuration Management

Capability Maturity Model

Conclusions

References

 

7. Configuration Management

Software projects are a dynamic entity. From the start, designs, requirements, documentation and code are changed. This change needs to be controlled. Configuration management (CM) does this by ensuring that changes do not negatively impact on the overall project, therefore improving the quality of the end software. It also keeps track of everything, and makes it easily accessible to those who need it.  

7.1. CM principles

Futrell et al. (2002) identifies six major aspects of CM. This section examines these.

7.1.1. Understanding of CM

All those involved in the project must understand the benefits of using CM. Management must fully support it and the developers must have knowledge in the use of tools to implement CM. Training of staff is an important aspect to enable CM to work.

7.1.2. CM plans

To implement CM, a plan must be designed and followed. Specific targets need to be given, and some method of measuring the performance of the CM system has to be in place. The plan will outline the benefits of the proposed CM system.

7.1.3. CM processes

Everyone that is to use the CM system must have access to how the CM processes operate. This is in the form of documentation.

7.1.4. Metrics

These are used to determine the level of conformance to the CM plan. If things are not proceeding as intended, then the information from the metrics will highlight this and corrective action can be taken.

7.1.5. Tools

These are the software packages that enable the lowest level of CM to take place. All configuration items can be properly stored in databases controlled by the CM package. Proper investigation needs to undertaken to determine the CM needs of the organisation. Selection of a CM package without forethought to planning can end in a reduction of quality in the final product.

7.1.6. Configuration items

Configuration items (CIs) are internal and external project deliverables. Code will the main item (source and executable), but documentation is also an important item that needs controlling. Anything that is able to be changed over the lifetime of the project is targeted as a CI. Baselines are a collection of CIs that are deemed to be at a significant level of development. Once a set of CIs are brought together under a baseline, it cannot be altered unless the proper processes are followed.  

7.2. Four basic requirements

The following requirements must be satisfied for a CM system to be of any value: 

  • Identification – Each part of a CI needs to be fully identifiable (e.g. name, version number)

  • Control – Every proposed change to a CI needs to be reviewed and analysed for negative impacts to other parts of the intended software system

  • Auditing – Any implemented changes need to be checked to evaluate their conformance to requirements

  • Status accounting – All parts of the software project are accounted for at each stage, and a historical account of the project is kept for later use.

7.3. Quality and CM

Because the complexity of a system (in terms of number of components, rather than code complexity) can become very large, even on small projects, a method to manage these components is essential. Without this, code and documentation are likely to be lost, or overwritten, and changes will be made without thought. The use of CM will lower the number of faults in systems that are caused by incompatibilities between components.  

Another advantage of CM is its ability to maintain a history of the project. This is beneficial to the quality of the software development process. It allows managers and developers to look back on past projects and analyse how things were done and investigate ways that things can be done better.  

Overall, CM can be seen as an integral part of any plan to improve the quality of software. However, the usefulness of CM can vanish if its implementation is not planned properly.  Simply buying a random off the shelf solution may not capture the correct items to be managed. With the correct planning, selection of tools and proper training, CM can tremendously aid the software development process.

Previous | Home | Next