4.1.3 The project shall identify the software configuration items (e.g., software documents, code, data, tools, models, scripts) and their versions to be controlled for the project. The project is responsible for assuring that software safety elements are properly identified and controlled. Classes G and H are labeled with "P (Center)." This means that an approved Center-defined process which meets a non-empty subset of the full requirement can be used to achieve this requirement. Class A_SC A_NSC B_SC B_NSC C_SC C_NSC D_SC D_NSC E_SC E_NSC F G H Applicable? P(C) P(C) Key: A_SC = Class A Software, Safety-Critical | A_NSC = Class A Software, Not Safety-Critical | ... | - Applicable | - Not Applicable One of the main functions of configuration management (CM) is version control, which facilitates identification of all releases. Version control manages the changes to the items under configuration control and allows access to previous versions of those items if a problem is found. "The purpose of configuration identification is to incrementally establish and maintain a definitive basis for control, status accounting, and verification for a [configuration item (CI)] throughout its life cycle." 275 Per the Department of Defense Configuration Management Guidance Handbook 275, MIL-HDBK-61, "Effective configuration identification is a pre-requisite for the other configuration management activities (configuration control, status accounting, audit), which all use the products of configuration identification. If CIs and their associated configuration documentation are not properly identified, it is impossible to control the changes to the items' configuration, to establish accurate records and reports, or to validate the configuration through audit. Inaccurate or incomplete configuration documentation may result in defective products, schedule delays, and higher maintenance costs after delivery." Configuration identification can be thought of as consisting of four elements as noted in the STEP (SMA (Safety and Mission Assurance) Technical Excellence Program) Level 2 Software Configuration Management and Data Management course taught by the Westfall Team 343: When considering items to be controlled, include the following: When determining the items to be controlled, a second consideration is the granularity of the items, e.g., is it appropriate to simply control the entire document or should each chapter be controlled separately. However, tradeoffs may need to occur since controlling each page of a document likely doesn't provide a lot of benefit vs. the overhead required to manage the pages as separate items. Granularity considerations include: When establishing the process for generating identifiers, keep in mind that some tools include versioning features and just adding the item to the tool will generate an identifier. However, it is possible that not all configuration items (CIs) are entered into the tool, e.g. physical items, such as hardware or software CDs or DVDs. Also, if a project already has a system for identifying CIs, software can simply be added to that system and the existing identification scheme used. When creating a new identification scheme, consider the following: When capturing key characteristics for each item (including related elements used to describe, define, create, etc. the item), consider the following as appropriate for a particular project: When defining the acquisition point for each item or class of items, it is important to also define acceptance criteria for the item or class of items. Acceptance criteria may be based on risk or other project factors and includes "all issues fixed," "all action items closed," or "signoff." The CI is acquired for control at the acquisition point and if the acceptance criteria are met, e.g., acquire the requirements document after the Software Requirements Review (SwRR) and the document has been signed off. When defining CI acquisition points, consider the following choices for setting the acquisition point for software: Other acquisition points to consider include: The following diagram from IEEE STD 828-2005, IEEE Standard for Software Configuration Management Plans 216, shows a sample process overview for identifying CIs: Consult Center PALs for Center-specific guidance and resources related to identifying software CM items. Additional guidance related to identifying software CM items may be found in the following related requirements in this Handbook: No additional guidance is available for small projects. The community of practice is encouraged to submit guidance candidates for this paragraph. Tools to aid in compliance with this SWE, if any, may be found in the Tools Library in the NASA Engineering Network (NEN). NASA users find this in the Tools Library in the Software Processes Across NASA (SPAN) site of the Software Engineering Community in NEN. The list is informational only and does not represent an “approved tool list”, nor does it represent an endorsement of any particular tool. The purpose is to provide examples of tools being used across the Agency and to help projects and centers decide what tools to consider. A documented lesson from the NASA Lessons Learned database notes the following:
See edit history of this section
Post feedback on this section
1. Requirements
1.1 Notes
1.2 Applicability Across Classes
X - Applicable with details, read above for more | P(C) - P(Center), follow center requirements or procedures2. Rationale
3. Guidance
4. Small Projects
5. Resources
5.1 Tools
6. Lessons Learned
SWE-081 - Identify Software CM Items
Web Resources
View this section on the websiteUnknown macro: {page-info}