Software and Systems Traceability

Software traceability is the ability to interrelate any uniquely identifiable software engineering artifact to any other,  maintain required links over time, and use the resulting network to answer questions of both the software product and its development process. 

Traceability is prescribed in many high-dependency domains.  For example, the Federal Aviation Administration’s (FAA) DO-178C standard specifies that at each and every stage of development “software developers must be able to demonstrate traceability of designs against requirements. The U.S. Food and Drug Administration (FDA) states that traceability analysis must be used to verify that the software design implements all of the specified software requirements, that all aspects of the design are traceable to software requirements, and that all code is linked to established specifications and test procedures. Process improvement initiatives such as CMMI also require traceability.

Traceability in Dronology

Dronology’s traceability strategy is shown in the Traceability Information Model (TIM) on the right.  The TIM depicts artifacts (as nodes) and trace links (as arcs between nodes).  Nodes shaded blue represent artifacts that are currently created and stored in Jira.  Nodes shaded green are stored in Git, while orange nodes are stored in other tools (Use cases in Word and Architecture in Visio).

Trace links between the nodes are created during the development process.  Links between pairs of blue nodes and between blue and orange nodes are created internally in Jira by selecting predefined tags.  Links from source code to bugs and tasks are created within the source code commit messages in Git.  We use a Git/Jira bridge so that the links are stored in Jira.