Chapter 6 - Configuration Management Flashcards
Define Configuration.
The sum total of all the artifacts, their current state and the dependencies between them is called the configuration.
What is the risk of making a change to an artefact?
- impact all the artefact’s dependencies if you make a change
- if not careful may leave the configuration in an inconsistent state
- risk changing one module without changing it’s dependant modules so that the configuration is is inconsistent
- e.g a change to the requirement impacts will have an impact on the system design and all of the code modules that depend on the design. Also, the testing plan, test cases and testing scripts for the code will also be impacted.
What is the point of configuration management?
to establish processes and set up repositories to manage change properly without losing overall consistency.
What are the 4 aims of configuration management?
- to identify all items that collectively will make up the configuration
- to manage changes to one or more of these items so that the collection remains consistent
- to manage different versions of the product
- to assure software quality as the configuration evolves over time
What are the 5 key configuration tasks that meet the configuration aims?
- identification — where the configuration items necessary for the project are identified
- version control — where processes and tools are chosen to manage the different versions of configuration items as they are developed
- change control — where changes to that affect more than just one configuration item are managed
- configuration auditing — where the consistency of the configuration is checked
- configuration reporting — where the status of configuration items is reported.
Define configuration items
The entire set of artefacts produced in the project
What are the 3 types of configuration items?
- basic objects
- aggregate
- derived
For example, we may choose classes to be basic objects stored in files in a repository. The program is the aggregate object also stored in a file but dependent on the objects of which it is composed. When we compile the program we generate a derived object — the executable — which is also stored in a file but is derived from the program and object files.
What are aggregate objects?
Aggregate objects are composed of atomic objects or other aggregate objects.
What are derived objects?
Derived objects are generated from atomic and aggregate objects by tools.
What is the aim of identifying configuration items?
to determine what configuration items will be produced in the project and how they will be managed.
What is version control?
Version control refers to managing the different versions of all the configuration objects in the project.
What does version control usually consist of?
- a repository for storing configuration items;
- version management functions that allow software engineers to create and track versions, and roll the system back to previous versions if necessary; and
- ideally a make facility that allows engineers to collect all of the configuration objects for a particular target together and to build that target.
What tools should be used to maintain SCM information?
- in a repository or configuration database.
- Be wary of tools such as CVS as they may only store information on versions and not the dependencies between different configurations items.
Define version.
An instance of a model, document, code, or other configuration item which is functionally distinct in some way from other system instances.
Define variant.
An instance of a system which is functionally identical but non-functionally distinct from other instances of a system.