Chapter 25 – Configuration Management
Chapter 25 Configuration management
1
11/12/2014
Topics covered
Version management
System building
Change management
Release management
Chapter 25 Configuration management
2
11/12/2014
Configuration management
Software systems are constantly changing during development and use.
Configuration management (CM) is concerned with the policies, processes and tools for managing changing software systems.
You need CM because it is easy to lose track of what changes and component versions have been incorporated into each system version.
CM is essential for team projects to control changes made by different developers
Chapter 25 Configuration management
3
11/12/2014
CM activities
Version management
Keeping track of the multiple versions of system components and ensuring that changes made to components by different developers do not interfere with each other.
System building
The process of assembling program components, data and libraries, then compiling these to create an executable system.
Change management
Keeping track of requests for changes to the software from customers and developers, working out the costs and impact of changes, and deciding the changes should be implemented.
Release management
Preparing software for external release and keeping track of the system versions that have been released for customer use.
Chapter 25 Configuration management
4
11/12/2014
Configuration management activities
Chapter 25 Configuration management
5
11/12/2014
Agile development and CM
Agile development, where components and systems are changed several times per day, is impossible without using CM tools.
The definitive versions of components are held in a shared project repository and developers copy these into their own workspace.
They make changes to the code then use system building tools to create a new system on their own computer for testing. Once they are happy with the changes made, they return the modified components to the project repository.
11/12/2014
Chapter 25 Configuration management
6
Development phases
A development phase where the development team is responsible for managing the software configuration and new functionality is being added to the software.
A system testing phase where a version of the system is released internally for testing.
No new system functionality is added. Changes made are bug fixes, performance improvements and security vulnerability repairs.
A release phase where the software is released to customers for use.
New versions of the released system are developed to repair bugs and vulnerabilities and to include new features.
11/12/2014
Chapter 25 Configuration management
7
Multi-version systems
For large systems, there is never just one ‘working’ version of a system.
There are always several versions of the system at different stages of development.
There may be several teams involved in the development of different system versions.
11/12/2014
Chap ...