This document addresses guidance for projects that desire to transition software from a lower to a higher classification. This guidance is provided for Technical Authorities to use in determining: Role Responsibility Technical Authority Reviews and approves transition strategy, waivers. Software Project Lead Reviews requirements gap, documents transition strategy, writes waiver requests, carries out transition strategy. Lead Software Author Provides documentation, code, other artifacts, and insights into software considered for transition. Project Manager Decides budget and schedule resources associated with transition. Software Assurance Ensures transition strategy is carried out. The greatest risk exists for software that crosses the flight boundary and for software making large transitions, so those projects should be analyzed with the greatest care. Before transition risk or a strategy can be determined, the Software Project Lead should work with the original author (if available) of the software to obtain the information, e.g., documentation, classification, upon which that determination will be based and make it available to the Technical Authority. Such information includes: This process diagram includes the roles with primary responsibility for carrying out each activity or decision. While the named roles have primary responsibility for the activity, the actual completion of the activity will involve other roles as needed or in compliance with Center standards. Before choosing a transition strategy, it is important for the Technical Authority to determine if the transition effort is within acceptable risk boundaries or if new development is a less risky solution. The following questions should be considered when evaluating transition versus new development solutions. Some of these topics are addressed in more detail in later analysis steps. Once the Technical Authority has deemed that the transition effort is within acceptable risk boundaries, the Software Project Lead has the following primary responsibilities: The requirements gap is input to the transition strategy activity described below. To determine the requirements gap, use the NPR 7150.2 compliance matrix to determine: Once the NPR 7150.2 requirements gap has been determined, a strategy for accomplishing the transition needs to be developed and documented. The Software Project Lead should develop this strategy with input from the Software Assurance organization that will be part of the group responsible for ensuring the transition strategy is carried out. Development of the transition strategy may involve a requirement by requirement review. Additionally, review and approval of the strategy and the associated risk are the responsibilities of the Technical Authority. During this process, new information may be identified that shows the transition risk is no longer acceptable. In that case, the Technical Authority can determine that transition is no longer within the acceptable risk boundaries and stop the transition attempt. The questions below should be considered when establishing the transition strategy. This table provides guidance on what documentation a project will need to develop for software that will be reused, in whole or in part, from a previous development effort. The documentation to be developed depends on the classification of the project that will be using the software and on decisions made by the project as to which documents are necessary, based on NASA Center procedures. Software Documentation Class A Class B Classes C through E and Safety Critical Class C and NOT Safety Critical Class D and NOT Safety Critical Class F Class G Software Management Plan 1 1 1 1 1 1 1 Software Configuration Management Plan 1 1 1 1 1 1 1 Software Test Plan 1 1 1 1 1 1 1 Software Maintenance Plan 1 1 1 1 1 Software Assurance Plan 1 1 1 1 1 1 Software Safety Plan 1 1 1 1 1 1 1 Software Requirements Specification 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 Software Data Dictionary 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 Software Design Description 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 Interface Design Description 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 Software Change Request/ Problem Report 1 1 1 1 1 1 1 Software Test Procedures 2 2 2 2 2 2 Software Users Manual 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 Software Version Description 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 2, 3, or 4 Software Metrics Report 1 1 1 1 1 1 Software Test Report 2 2 2 2 2 2 Software Inspection/Peer Review Report 1 1 1 1 1 1 Key: Note: A blank cell indicates that the document does not need to be developed. Classes E and H do not appear in the table since they are the lowest classifications. It is not possible to transition up to either of them. Documents with multiple keys allow for decisions to be made in the best interest of the project. A block with 2, 3 or 4 in it gives the project three options. For instance, a requirements document can be developed as a stand-alone document if it does not exist or the requirements can be included in another of the project's requirements documents or, if the requirements document exists, it can be directly incorporated into the project. Decision making for software transition involves detailed investigation of the subject code and of the resources available to apply to its modification or rebuilding. The following chart provides some guidance with respect to code size, noting that Modification Size should only reflect modification within the original code, not any code to which the original software will be linked. This table should be tailored even further, depending on the nature of the code's language, local experience with the programming languages involved, and availability of alternate language development resources. Size of Existing Code Size of Modifications Small Big Small Determine size of original code plus the modifications. Reuse original code. Perform mods if needed. Follow Center implementations of NPR 7150.2 and project plans. Continue with this process. Big Write new code from scratch following Center procedures and project plans. Exit this process. 1. Analyze and determine risk based on: Tools to aid in compliance with this Topic, 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.
See edit history of this section
Post feedback on this section
1. Purpose
1.1 Roles
1.2 Transition Categories
2. Preparation
3. Process Overview
4. Determine Preliminary Transition Risk
5. Determine Requirements Gap
6. Determine Transition Strategy
6.1 Evaluation of Additional Requirements
6.2 Documentation Needed
6.3 Software Modifications Needed
6.4 Resources Needed
7. Resources
7.1 Reference Documentation Table
OR
Class A Safety Critical
OR
Class B and Safety Critical
(In-house)
(In-house)
1. Project already responsible for developing this document; it needs to address integration of the transitioning software.
2. Develop the document if it does not exist.
3. Modify the project/document to accommodate the transitioning software.
4. Incorporate existing document into the project.7.2 Reference Code Size Decision Chart
If the determined size is big, then:
Write new code from scratch, following Center procedures and project plans. Exit this process.
If the size is small, then:
1. Analyze and determine risk based on:
• Relative size of original code to mod size.
• Comparison of specialized resources needed/available.
• Reuse: reduced effort, but older language skills/maintenance required.
• Re-code: increased effort, but newer language skills/capabilities available.
• State of the original code: less of these items requires more resources to validate original code and assure to higher control level.
• Documentation available.
• Known reliability/applicability/readability.
2.Evaluate the risk.
• If the risk is acceptable, reuse original code. Perform mods if needed. Follow Center procedures and project plans. Continue with this process.
• If the risk is not acceptable, write new code from scratch, following Center procedures and project plans. Exit this process.
• Relative size of original code to mod size.
• Comparison of specialized resources needed/available.
• Reuse: reduced effort, but older language skills/maintenance required.
• Re-code: increased effort, but newer language skills/capabilities are available.
• State of the original code.
(If few of these items exist, more resources are required to validate original code and assure to higher classification level.)
• Documentation available.
• Known reliability/applicability/readability.
2. Evaluate the risk.
• If the risk is acceptable, reuse original code. Perform mods if needed. Follow Center procedures and project plans. Continue with this process.
• If the risk is not acceptable, write new code from scratch. Exit this process.7.3 Resources
7.4 Tools
7.13 - Transitioning to a Higher Class
Web Resources
View this section on the websiteUnknown macro: {page-info}