Traceability Problem

Ali Omar

Sigma DeltaX

The Problem

1. State/Progress of the project is unknown

  • Which Requirements are implemented in unknown.
  • Burn rate and forecast is unknown.

2. Struggle with Traceability Artifacts generation

  • Excessive work on Polarion/Doors for the generation of Traceability artifact.
  • Traceability report only available for certain snapshots of project state.

Symptoms

1. Same bugs reported for more than one delivery

2. Reported Issue analysis not clear: Bug, works as intended or not implemented

3. Content of release (delivery) not clear

4. Definition of done and testing is not clear

Solution

1. Traceability as code

  • Traceability labels lives in the code base

2. Maestro Requirement Utilities

  • Compile source code for requirement tags

3. Traceability report as build artifact

  • Traceability report generated just like binary artifact (.hex, .elf)
  • Summary report of pie chart at SYS[1-3], SWE[1-3]
  • SYS1 coverage report send to customer with delivery

Demo

Demo Project

Advantages

Stateless traceability

  • The traceability is a function of the working directory.
  • Traceability can be invoked on intermediate working directory on developer machine.
  • No baseline or requirement freeze. Code and Traceability share the same timeline.

Real SOT (Source Of Truth)

  • The information is closest to Truth than any other approach.

Modular design

  • Allows for support of different file formats. Including:
    • .csv, .xls
    • plain-text (.c, .asm, .xml, .puml)

Comparison

Comparison

mcc Reqtify DOORS Polarion JIRA
Artifact Analysis Automatic Automatic No No No
Timeline Single Timeline Single Timeline Double Timeline (Baselining required) Double Timeline (Baselining required) Double Timeline (Baselining required)
Value of Test Report Flexible Template language Coverage Only Coverage Only Coverage Only No
Tool type Standalone Portable tool Standalone Portable tool Non portable Server tool Non portable Server tool Non portable Server tool
Integration into project Integrates into working directory. Simple. Compiler-like Integrates into working directory. Complex work flow. Own state. No alignment to project state. Baselining required Own state. No alignment to project state. Baselining required Own state. No alignment to project state. Baselining required
Level of Service Complete Solution. Integrate into own environment. Traceability as a service. Tool only. Implementation by user Tool only. Implementation by user Tool only. Implementation by user Tool only. Implementation by user
Licensing Project based unlimited instances Node limited Node limited Node limited Node limited
DevOps integration DevOps centric Supports DevOps cli not native cli not native cli not native
Configuration Configuration as Code Proprietary configuration format (GUI) Proprietary configuration format (Server) Proprietary configuration format (Server) Proprietary configuration format (Server)
Tool Architecture Modular (simply extensible interface with yaml/json) Monolithic (Plugins) Monolithic (Plugins) Monolithic (Plugins) Monolithic (Plugins)