a process for controlling changes in system requirements during software development
during the development process, you have to keep track of the many different versions of each software component in a configuration management system
hardware and software; must provide good documentation  common tasks  - add, modify, delete - update software on clients