To frame our discussion, consider:
What is a software configuration?
Why does a configuration require management?
How do we control and coordinate changes in the software configuration?
Configuration management is the art of identifying, organizing, and controlling modifications to the software being built by a programming team. The goal is to maximize productivity by minimizing mistakes.
Software configuration management is a set of tracking and control activities that begin when a software development project begins and terminates when the software is taken out of operation.
Estimates indicate that less than 10% of programmers use modern configuration management tools. (Noted in Favre (1997) Understanding-In-The-Large.Proceedings of the 5th International Workshop on Program Comprehension, May 28-30, 1997, Dearborn, MI, pp. 29-38.)
Artifacts produced during the process are called software configuration items (SCI).
The baseline is the shared project data base. It is an SCM task to maintain the integrity of the set of artifacts. An approach to the integrity issue is to require approval for adding items to the baseline. A second part to maintaining integrity is dealing with modifications to items in the database.
Access control governs who has authority to access and modify a configuration item.
Synchronization control helps ensure that parallel activity does not overwrite changes made by one another.
Version control works to help manage different versions of configuration items during the development process.
Go To Lecture [Outline] [Overview]
Go To [Course Outline]
van Vliet, H. (1993) Software Engineering: Principles and Practice. New York: John Wiley.