bannerd


UNDER CONSTRUCTION

08. Software Configuration Management

08. Software Configuration Management Activity Overview

Software Configuration Management planning encompasses the practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations for all of the software products, tools, data, and components produced by the project.  For Software Configuration Management to be implemented on a project, the project has to identify what software configuration items are to be controlled for the project. Software Configuration Management encompasses the practices and procedures for administering source code, producing software development builds, controlling change, and managing software configurations for all of the software products, tools, data, and components produced by the project. 

As software teams design, develop, and deploy software, it is common for multiple versions of the same software to be used on different sites and for the software developers to be working simultaneously on updates. Bugs or defects in the software are often only present in certain versions (because of the fixing of some problems and the introduction of others as the program develops). Therefore, to locate and fix bugs, it is important to be able to retrieve and run different versions of the software to determine in which version(s) the problem occurs. It may also be necessary to develop two versions of the software concurrently (for instance, where one version has bugs fixed, but no new features, while the other version is where new features are developed.  Change requests address not only new or changed requirements but also failures and defects in software products. Change requests are analyzed to determine the impact that the change will have on the software product, related software products, the budget, and the schedule. Tracking and evaluating changes are useful for a variety of reasons, not the least of which is to maintain documented descriptions of problems, issues, faults, etc., their impact on the software and system, and their related resolutions. Evaluating changes allows key stakeholders to determine the cost-benefit of implementing changes and to make decisions based on that information.

Configuration status accounting (CSA) provides a way for a project to determine the content of configuration items (CIs) throughout the life cycle by capturing the status of submitted products such as data, models, scripts, code, and their associated change requests. It also allows project managers to monitor the developing software and know, based on status accounting reports, the contents of versions and releases of software. Configuration audits provide checks to ensure that the planned product is the developed product.

Given that software is considered a significant Agency investment, it is important to ensure that the delivered software is created and maintained from a controlled repository. Configuration management (CM) processes and controls provide the rigor and organization necessary for developers and their customers to have confidence that all changes to the code and documents are included in the released products. It is also important that the released product is stored, maintained, and delivered following a repeatable, controlled process.


Frequency Of This Activity

Configuration control helps ensure that changes are managed in a structured way, that the impact of changes is assessed before those changes are implemented, and that changes are authorized before being implemented. Using various levels of control can reduce the time and effort it takes to disposition a change request based on the criticality and range of the effect of the change. Less critical or risky changes can use a lower level of authority to make decisions about those changes while more critical or far-reaching changes can require authorization from a more formal body with a broader view of the system. 

Configuration Control is a continuous activity for all work products on the project. 

08.1 Related SWEs

  • SWE-079 - Develop CM Plan - 5.1.2 The project manager shall develop a software configuration management plan that describes the functions, responsibilities, and authority for the implementation of software configuration management for the project.
  • SWE-080 - Track and Evaluate Changes - 5.1.3 The project manager shall track and evaluate changes to software products.
  • SWE-081 - Identify Software CM Items - 5.1.4 The project manager shall identify the software configuration items (e.g., software records, code, data, tools, models, scripts) and their versions to be controlled for the project.
  • SWE-082 - Authorizing Changes - 5.1.5 The project manager shall establish and implement procedures to:

    a. Designate the levels of control through which each identified software configuration item is required to pass.
    b. Identify the persons or groups with authority to authorize changes.
    c. Identify the persons or groups to make changes at each level.

  • SWE-083 - Status Accounting - 5.1.6 The project manager shall prepare and maintain records of the configuration status of software configuration items. 
  • SWE-084 - Configuration Audits - 5.1.7 The project manager shall perform software configuration audits to determine the correct version of the software configuration items and verify that they conform to the records that define them.
  • SWE-085 - Release Management - 5.1.8 The project manager shall establish and implement procedures for the storage, handling, delivery, release, and maintenance of deliverable software products.  
  • SWE-045 - Project Participation in Audits - 5.1.9 The project manager shall participate in any joint NASA/developer audits. 

08.2 Related Work Products

08.2.1 Related Process Asset Templates

08.3 Related Topics

  • 8.12 - Basics of Software AuditingSoftware audits provide an independent evaluation of the conformance of software products and processes to applicable requirements, standards, guidelines, plans, and procedures.
  • 8.51 - Software Assurance PlanThe Software Assurance (SA) Plan product documents the expected work for the Software Assurance and Software Safety (if applicable) personnel for the project.


Editors only

A.08.01 Software Configuration Management

Analysis of SWEs and SM

A.08.01 Software Configuration Management

  • SWE-081 - call out docs under CM rather than just pointing to Topic 7.18
  • Some topics need to specify appropriate SM
SWE or Topic

Related SWEs 

Related SM

Related Activity

5.01 - CR-PR - Software Change Request - Problem Report
5.06 - SCMP - Software Configuration Management Plan
5.16 - VDD - Version Description Document

7.08 - Maturity of Life Cycle Products at Milestone Reviews
7.09 - Entrance and Exit Criteria

PAT-001 - FCA Checklist

PAT-002 - PCA Checklist

8.12 - Basics of Software Auditing

8.51 - Software Assurance Plan

  • No labels