Meta Model

Meta Model#

This page describes the traceability structure used in this documentation. The diagram below illustrates the relationships between key artifact types—Features, Use Cases, Requirements, Specifications, and Test Cases—using Sphinx-Needs and custom link types. This model helps ensure coverage, validation, and verification across all stages of development.

Traceability Relationship Diagram

@startuml
digraph G {
    ' https://graphviz.org/docs/edges/
    rankdir = RL;
    splines=true;
    'label = "Traceability Transition Model";
    labelloc = "t";
    fontsize = "28pt";
    'size="10,6";
    size="8,6";
    nodesep=1.0;
    bgcolor="transparent"
    'ranksep=1.0
    node [
        fontsize = "22"
        fixedsize=true 
        width=2.6 
        height=1.3 
        shape="box"
        shape="oval"
        style="filled"
        target="_top"
    ];
    'edge [ fontname=Helvetica, fontcolor=red, fontsize=15, minlen=2, decorate=true ];
    edge [ fontname=Helvetica, fontcolor=red, fontsize=25, minlen=2 ];

        "ftr" [ label=<<B>ftr</B><BR/><FONT POINT-SIZE="12.0">(feature)</FONT>> tooltip="feature" fillcolor="LightGreen" URL=":ref:`ftr`"]
        "usc" [ label=<<B>usc</B><BR/><FONT POINT-SIZE="12.0">(usecase)</FONT>> tooltip="usecase" fillcolor="#BFD8D2" URL=":ref:`usc`"]
        "req" [ label=<<B>req</B><BR/><FONT POINT-SIZE="12.0">(requirement)</FONT>> tooltip="requirement" fillcolor="Coral" URL=":ref:`req`" ]
        "spc" [ label=<<B>spc</B><BR/><FONT POINT-SIZE="12.0">(specification)</FONT>> tooltip="specification" fillcolor="#FFFF99" URL=":ref:`spc`" ]
        "tsc" [ label=<<B>tsc</B><BR/><FONT POINT-SIZE="12.0">(test case and suite)</FONT>> tooltip="test case and suite" fillcolor="#87CEFA" URL=":ref:`tsc`"]

        "ftr" -> "ftr" [ label="refines" ]
        "usc" -> "usc" [ label="refines" ]
        "req" -> "req" [ label="refines" ]
        "spc" -> "spc" [ label="refines" ]
        "tsc" -> "tsc" [ label="refines" ]

        "usc" -> "ftr" [ label="realizes" ]
        "usc" -> "req" [ label="elaborates" ]
        "req" -> "ftr" [ label="satisfies" ]

        "req" -> "spc" [ label="derived from" ]
        "spc" -> "req" [ label="satisfies" ]
        
        "tsc" -> "usc" [ label="validates" ]
        "tsc" -> "req" [ label="verifies req" ]
        "tsc" -> "spc" [ label="verifies spc" ]
}

@enduml

Link Type Legend

The following link types define the relationships between traceability elements:

  • refinement: Indicates that a need is a more detailed version of another (e.g., a sub-feature or refined requirement).

  • satisfy: Shows how a lower-level need (e.g., a Feature or Specification) fulfills a Requirement.

  • verify / verify_req / verify_spc: Connects a Test Case to the item it verifies—either a Requirement or a Specification.

  • validation: Connects a Test Case to a Use Case it validates.

  • realization: Maps a Use Case to the Feature that realizes it.

  • elaboration: Shows that a Use Case was derived from a Requirement.

  • specify: Indicates Specification elaboration from a Requirement.