|
7. Configuration ManagementSoftware 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.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. The following requirements must be satisfied for a CM system to be of any value:
7.3. Quality and CMBecause 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.
|