Two types
Revision control: modules labeled as frozen (unchangeable) or floating (checked out by programmer for modification)
Source code control: extend revision control to all interrelated modules
Historical changes can be traced and previous versions can be reconstructed