he art of coordinating software development to minimize… confusion is called configuration management. Management is the art of identifying, organizing and controlling the modifications that the software undergoes… the goal is to maximize productivity by minimizing errors. Babich.
The Configuration Management of the software is one of the key processes for any organization dedicated to software engineering as it enables better organization of development and maintenance, product facilitating other production processes.
During the process of building a software, changes are inevitable. Changes cause confusion and uncertainty, especially when they have not been analyzed or predicted correctly. It is important to consider certain modifications that may occur to the software within the entire engineering process.
Summary
[ hide ]
- 1 Definition
- 2 Purpose
- 3 Functional Aspects
- 4 Objectives
- 5 Terminology
- 6 Software configuration items
- 7 See also
- 8 Source
Definition
Configuration Management is called the set of processes designed to ensure the validity of any product obtained during any of the stages of development of an Information System(YES), through the strict control of the changes made to them and the constant availability of a stable version of each element for everyone involved in the aforementioned development. These two elements (change control and version control of all elements of the IS) also facilitate the maintenance of the systems by providing a detailed picture of the system at each stage of development. Configuration management is carried out during all phases of the development of an information system, including maintenance and change control, once it is put into production.
Purpose
The purpose of Software Configuration Management is to establish and maintain the integrity of software products throughout the life cycle of the software process. Software Configuration Management involves identifying the Software Configuration at given points in time, systematically monitoring changes to the Configuration, and maintaining the integrity and traceability of the Configuration throughout the software life cycle. The products included are:
- Software distributed to the client.
- Software requirements documents.
- Elements required to create them (example: the compiler)
Functional Aspects
- Identification: An identification scheme needs to be defined to reflect the structure of the product, this involves identifying the structure and classes of components, giving each one a name, a version identification and a Configuration identification.
- Control: Changes made throughout the life cycle must be controlled, ensuring that the software is consistent through the creation of a product baseline.
- Status: The status of components and change requests must be recorded and reported.
- Audit and review: It must be validated that the product is complete and thus maintain consistency between the components, ensuring that they are in an appropriate state throughout the entire life cycle of the product and that it is a well-defined collection of components.
goals
- Evaluate and maintain the integrity of the products.
- Evaluate and control changes.
- Facilitate visibility about the product.
Integrity in this context is:
- Satisfy the implicit and explicit requirements.
- Meet performance requirements.
- Its evolution can be traced.
The activities to be carried out to achieve the objectives are:
- Configuration identification.
- Control of configuration changes.
- Generation of status reports.
- Configuration audit.
Terminology
- Software configuration: is the set of controlled software configuration items (ECS). Each one can have several versions that follow one another over time.
- Baseline: is a set of benchmarks or milestones that are marked by the approval of one or more software configuration items through a formal technical review.
- Version: is a configuration item at a given time.
- Reviews: these are the different versions that appear. If a version and its revisions are represented by a graph, they form a revision chain.
- Variant: it is a version that coexists with another and that differs from it in some aspects. Types of variants:
- Temporary: Its final destination is to merge with the main branch. The reason for its existence is to have people working in parallel without conflict. The merger must be done soon to avoid divergences.
- Experimental: They are prototypes to explore ways. They keep the best and throw the others away.
- Testing: They are built for testing.
- Permanent: They do not mix, they serve different types of requirements. There are two kinds.
- User requirementvariants: Each variant serves one type of user requirement.
- Platform variants: For example for different operating systems.
- Alternate configuration: it is the one that consists of a different set of configuration items.
- Release: is a system configuration to be delivered to the client.
Software configuration items
It defines as a Configuration Element a physical and / or logical unit that is part of a larger set of elements, produced or acquired, which due to its characteristics is distinguishable from the others and whose evolution is interesting to manage.
- Source code.
- Data models.
- Process models.
- Requirements specifications.
And for each of these elements, at least:
