bannera

Book A.
Introduction

Book B.
7150 Requirements Guidance

Book C.
Topics

Tools,
References, & Terms

SPAN
(NASA Only)

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

idtabs-1

1. Requirements

3.3.6 The project shall provide and maintain bidirectional traceability from software design to the software code.

1.1 Notes

NPR 7150.2, NASA Software Engineering Requirements, does not include any notes for this requirement.

1.2 Applicability Across Classes

Classes C through E and Safety Critical are labeled, "SO." This means that this requirement applies to the safety-critical aspects of the software.

Class F and Class G are labeled "X (not OTS)." This means that this requirement does not apply to off-the-shelf software for these classes.

applicable
f*
g*
h0
ansc1
asc1
bnsc1
csc*
bsc1
esc*
cnsc0
dnsc0
dsc*
ensc0
 

...

idtabs-2

2. Rationale

Code (software) is based on a software design which is based on a set of software requirements. Some measure of assurance is needed to show that the created code fulfills the design upon which it is based without leaving out any design elements or adding any new functionality not present in the design.

Tracing elements of the code such as functions, subsystems, modules, CSCI (Computer Software Configuration Item)s, etc. to design elements helps provide the basis of this assurance.

Traceability matrices help ensure that each design element, typically documented in a Software Design Document (SDD), is implemented in the resulting software, giving a reason for the code implementation through the design back to the software requirements. 

...

Tracing source code to design elements also provides the ability to demonstrate traceability of safety-critical software functions and safety-critical software controls to detailed design specifications.

...

Image Removed

...

idtabs-3

3. Guidance

Before starting the traceability activity, it is assumed that the documents being traced (e.g., requirements, design, code, test data, etc.) have been approved.

...

Image Removed

While traceability matrices are not the only method for capturing bidirectional traceability, they are the most common. Traceability matrices can be included in the documents, such as the Software Requirements Specification (SRS), to which they apply or they can be combined into a single matrix covering higher level requirements, software requirements, design, code, and verification. General guidance for creating a bidirectional traceability matrix includes the following suggested actions:

  • Create the matrix at the beginning of the project.
  • Uniquely identify the elements in the matrix (requirements identifiers, design document identifiers and paragraph numbers, code module identifiers, etc.).
  • Keep the matrix maintained throughout the life of the project.
  • Assign responsibility for creating and maintaining the matrix to a project team member, since managing the links/references can be a labor-intensive process that needs to be tracked and monitored.
  • Maintain the matrix as an electronic document to make maintenance and reporting easier.
  • Create the matrix such that it may be easily sorted to achieve/convey bi-directional traceability.
  • Ensure a review of the matrix at major phases / key reviews of the project.

Image Removed

If the software development team is not the same as the software design team, collaboration may be needed to ensure proper bidirectional traceability between source code and design. Early collaboration is valuable since a one-to-one subsystem to design package relationship (or as close as possible), makes the traceability activity between design and source code much simpler.

Key aspects of tracing source code include:

...

Additional guidance related to bidirectional traceability may be found in the following related requirements in this Handbook:

...

SWE-052

...

Bidirectional Traceability Between Higher Level Requirements and Software Requirements

...

SWE-059

...

Bidirectional Traceability Between Software Requirements and Software Design

...

SWE-072

...

Bidirectional Traceability Between Software Test Procedures and Software Requirements

...

idtabs-4

4. Small Projects

...

In some instances, value-based requirements tracing may be a prudent deviation/waiver request against SWE-064 which would provide partial relief from this requirement. However, no matter how small the budget is, traceability of safety-critical requirements all the way through design and code is always a priority. 

...

widthfull

...

Div
idtabs-5

5. Resources

refstable
 

toolstable

Div
idtabs-6

6. Lessons Learned

No Lessons Learned have currently been identified for this requirement.