- Software specificities
- The \V/ lifecycle
Software Specification Validation test
Preliminary Design Integration tests
Detailed Design Unit tests
- Configuration management goal => to have the necessary data for building again the same product.
- That means that for the software we need:
- To have all the file used for the software builds: source files, data files, parameterization files.
- The production tools: compiler, makefile (options and order of compilation, libraries)
- The operation environment: operating system, firmware, hardware, COTS(Components Of The Shelf)
- All the manufacturing data are configuration data of the software product.
- The hardware configuration data are mainly documents: URD, TRD, drawing, user manual.
- The software configuration data may be only in an electronic form: source code, test source code, test data.
- Software Configuration Management process
- Identification of the items:
- A software component is an item whose definition and its related changes shall be controlled during the product lifecycle.
- Any software components are individually identified.
- An intermediate file is not always a software component (i.e. OBJ file)
- A software product is a software component tree, equivalent to product tree.
- Configuration management of the software:
(ข้อมูลจำเพาะ) of dependences between the components.
- Data persistence (การคงอยู่)
- The dependence(ไม่มีอิสระ)
rules between these data allow to:
- Manage the consistency between the software components.
- Optimize the performances for introducing modifications (duration of recompilation)
- Configuration status accounting: To keep the track of the software releases for helping to analyze the problems (deliveries, changes).
- Configuration verification: To ensure the consistence between the software components.
- The working spaces
- On a development station, identifying working spaces allows to:
- Freeze the content of each object at the end of phases.
- Formalize the transfer of each object to the next phase.
- Give the right visibility according to the profile of the other software developers.
- Control the use of the software in the manufacturing process.
- Archive the validated status.
- Minimize the amount of the stored data by avoiding uncontrolled copies of data.
- Rules of managing the data shall be defined:
- People or organisms access rights to the different workspaces according to their function and responsibility.
- Type of access (read, write) and mode of access (authentication with a password required).
- Each workspace shall be lead by a unique responsible.
- Version control
- Version number: similar to the major index.
- Revision number: similar to the minor index.
- Variant (แปรปรวน, แตกต่าง): operating system, hardware, option.
- Provisional version: not integrated to the reference space.
- Signature: value of a control sum performed on the content of the item.
- SCM tools functionalities
- Release control
- Working spaces
- “View” mechanism: allows the tools and commands to have an access to the data according to the context.
- Parameterization of views
- Access right management
- Build management:
- Detection of dependences between the source files
- The build audit allows to:
- Have an operation traceability (who, when, on which computer)
- To know:
- The used files.
- The environment.
- The production scripts.
- Process control:
- To put on place the procedures of the organization.
- Interoperability with the other tools of the software factory (compiler, design tool, debugger).
- Software configuration management plan
- In addition to the general configuration management plan content, some additional features are added in the case of the software:
- Definition of the working spaces and access rights.
- Data save guard procedures.
- Internal and external identification of the software.
- Use of the development tools.
- Changes tracking in the configuration management tools.
- Identification and marking of the files (source, test)
- Reference documents: The following documents include a section on the configuration management:
- ISO 12207: Information processing – Software engineer
- ECSS-E-40-Part 1_B: Software – Principles and requirements.
- ECSS-E-40-Part 2_B: Software – Document Requirements Definition (templates)
- ECSS-Q-80_B: Software product assurance.