SEN: Software Configuration Management

  • Software specificities
    • The \V/ lifecycle

      Software Specification               Validation test
      ||                                                             ||
      Preliminary Design                     Integration tests

      ||                                                             ||
      Detailed Design                              Unit tests

      ||                                                             ||
      Coding

  • 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:
      • Specification
        (ข้อมูลจำเพาะ) 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:
      • Objectives:
        • 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.