Skip to content

requirements

adh.msosa.requirements ¤

ADH Requirements (Reqs) Models.

Requirements models describe the capturing of system needs, ensuring traceability and validation in each framework.

The requirements child nodes in the ADH are aligned with ISO/IEC/IEEE 29148:2018 and INCOSE

Classes:

  • Priority

    Requirement priority levels per INCOSE guidance.

  • ReqsCategories

    Taxonomy for system requirements based on ISO/IEC/IEEE 29148 and

  • Requirement

    A single requirement including specification, tracking and validation.

  • RequirementStatus

    Lifecycle status of a requirement.

  • Requirements

    Container for a list of requirements.

  • VerificationMethod

    Verification methods per ISO/IEC/IEEE 15288:2023.

Priority ¤

Bases: str, Enum

Requirement priority levels per INCOSE guidance.

ReqsCategories ¤

Bases: str, Enum

Taxonomy for system requirements based on ISO/IEC/IEEE 29148 and INCOSE's Guide to Writing Requirements.

Attributes:

  • constraints

    Restricts the design space, including physical (SWaP), material, or architectural limits.

  • functional

    Defines the essential capabilities, behaviors, and tasks the system must perform.

  • interface

    Defines the logical and physical connection points with external systems, hardware, or users.

  • non_functional

    A broad category for quality attributes not captured in specific performance or security buckets.

  • performance

    Specifies measurable benchmarks such as speed, throughput, capacity, and timing.

  • quality_reliability

    Defines system 'ilities' including reliability, availability, maintainability, and usability.

  • regulatory_compliance

    Mandates adherence to laws, industry standards, safety codes, and legal policies.

  • security_cyber

    Specifies protection of the system, data, and users from unauthorized access or harm.

constraints class-attribute instance-attribute ¤

constraints = 'constraints'

Restricts the design space, including physical (SWaP), material, or architectural limits.

functional class-attribute instance-attribute ¤

functional = 'functional'

Defines the essential capabilities, behaviors, and tasks the system must perform.

interface class-attribute instance-attribute ¤

interface = 'interface'

Defines the logical and physical connection points with external systems, hardware, or users.

non_functional class-attribute instance-attribute ¤

non_functional = 'non-functional'

A broad category for quality attributes not captured in specific performance or security buckets.

performance class-attribute instance-attribute ¤

performance = 'performance'

Specifies measurable benchmarks such as speed, throughput, capacity, and timing.

quality_reliability class-attribute instance-attribute ¤

quality_reliability = 'quality and reliability'

Defines system 'ilities' including reliability, availability, maintainability, and usability.

regulatory_compliance class-attribute instance-attribute ¤

regulatory_compliance = 'regulatory and compliance'

Mandates adherence to laws, industry standards, safety codes, and legal policies.

security_cyber class-attribute instance-attribute ¤

security_cyber = 'security and cyber security'

Specifies protection of the system, data, and users from unauthorized access or harm.

Requirement pydantic-model ¤

Bases: BaseModel

A single requirement including specification, tracking and validation.

Show JSON schema:
{
  "$defs": {
    "Author": {
      "description": "Author or contributor to an ADH node.",
      "properties": {
        "name": {
          "description": "Full name of the author.",
          "title": "Name",
          "type": "string"
        },
        "organisation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Organisation or affiliation.",
          "title": "Organisation"
        },
        "email": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Email address.",
          "title": "Email"
        }
      },
      "required": [
        "name"
      ],
      "title": "Author",
      "type": "object"
    },
    "ExternalReference": {
      "description": "Reference to an external file or document.",
      "properties": {
        "title": {
          "description": "Title or name of the referenced resource.",
          "title": "Title",
          "type": "string"
        },
        "path": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "File path or URI to the external resource.",
          "title": "Path"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of the reference and its relevance.",
          "title": "Description"
        },
        "classification": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Type classification of the reference (e.g. 'STEP file', 'CFD mesh', 'test report').",
          "title": "Classification"
        }
      },
      "required": [
        "title"
      ],
      "title": "ExternalReference",
      "type": "object"
    },
    "Priority": {
      "description": "Requirement priority levels per INCOSE guidance.",
      "enum": [
        "critical",
        "high",
        "medium",
        "low"
      ],
      "title": "Priority",
      "type": "string"
    },
    "ReqsCategories": {
      "description": "Taxonomy for system requirements based on ISO/IEC/IEEE 29148 and\nINCOSE's Guide to Writing Requirements.",
      "enum": [
        "functional",
        "performance",
        "quality and reliability",
        "security and cyber security",
        "interface",
        "constraints",
        "regulatory and compliance",
        "non-functional"
      ],
      "title": "ReqsCategories",
      "type": "string"
    },
    "RequirementStatus": {
      "description": "Lifecycle status of a requirement.",
      "enum": [
        "draft",
        "approved",
        "implemented",
        "verified",
        "obsolete"
      ],
      "title": "RequirementStatus",
      "type": "string"
    },
    "SourceInfo": {
      "description": "Source and authorship metadata for an ADH node.",
      "properties": {
        "authors": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Author"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Authors or contributors.",
          "title": "Authors"
        },
        "creation_date": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Date this node was created.",
          "title": "Creation Date"
        },
        "modification_date": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Date this node was last modified.",
          "title": "Modification Date"
        },
        "version": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Version string.",
          "title": "Version"
        },
        "references": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ExternalReference"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "References to external files or documents.",
          "title": "References"
        }
      },
      "title": "SourceInfo",
      "type": "object"
    },
    "VerificationMethod": {
      "description": "Verification methods per ISO/IEC/IEEE 15288:2023.",
      "enum": [
        "test",
        "analysis",
        "inspection",
        "demonstration"
      ],
      "title": "VerificationMethod",
      "type": "string"
    }
  },
  "description": "A single requirement including specification, tracking and validation.",
  "properties": {
    "name": {
      "description": "A unique name identifying the requirement.",
      "title": "Name",
      "type": "string"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A detailed description of the requirement.",
      "title": "Description"
    },
    "category": {
      "anyOf": [
        {
          "$ref": "#/$defs/ReqsCategories"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The category of the requirement."
    },
    "priority": {
      "anyOf": [
        {
          "$ref": "#/$defs/Priority"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The priority of the requirement."
    },
    "verification_method": {
      "anyOf": [
        {
          "$ref": "#/$defs/VerificationMethod"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "How the requirement will be verified."
    },
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/RequirementStatus"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The current lifecycle status of the requirement."
    },
    "source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The originating document or stakeholder.",
      "title": "Source"
    },
    "acceptance_criteria": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Conditions that must be met for the requirement to be satisfied.",
      "title": "Acceptance Criteria"
    },
    "target_component": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The component or subsystem this requirement applies to.",
      "title": "Target Component"
    },
    "risk": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Known risks associated with this requirement.",
      "title": "Risk"
    },
    "verification_evidence": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Evidence or artefacts confirming verification.",
      "title": "Verification Evidence"
    },
    "source_info": {
      "anyOf": [
        {
          "$ref": "#/$defs/SourceInfo"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Source and authorship metadata."
    }
  },
  "required": [
    "name"
  ],
  "title": "Requirement",
  "type": "object"
}

Fields:

acceptance_criteria pydantic-field ¤

acceptance_criteria: Optional[str] = None

Conditions that must be met for the requirement to be satisfied.

category pydantic-field ¤

category: Optional[ReqsCategories] = None

The category of the requirement.

description pydantic-field ¤

description: Optional[str] = None

A detailed description of the requirement.

name pydantic-field ¤

name: str

A unique name identifying the requirement.

priority pydantic-field ¤

priority: Optional[Priority] = None

The priority of the requirement.

risk pydantic-field ¤

risk: Optional[str] = None

Known risks associated with this requirement.

source pydantic-field ¤

source: Optional[str] = None

The originating document or stakeholder.

source_info pydantic-field ¤

source_info: Optional[SourceInfo] = None

Source and authorship metadata.

status pydantic-field ¤

status: Optional[RequirementStatus] = None

The current lifecycle status of the requirement.

target_component pydantic-field ¤

target_component: Optional[str] = None

The component or subsystem this requirement applies to.

verification_evidence pydantic-field ¤

verification_evidence: Optional[str] = None

Evidence or artefacts confirming verification.

verification_method pydantic-field ¤

verification_method: Optional[VerificationMethod] = None

How the requirement will be verified.

RequirementStatus ¤

Bases: str, Enum

Lifecycle status of a requirement.

Requirements pydantic-model ¤

Bases: BaseModel

Container for a list of requirements.

Show JSON schema:
{
  "$defs": {
    "Author": {
      "description": "Author or contributor to an ADH node.",
      "properties": {
        "name": {
          "description": "Full name of the author.",
          "title": "Name",
          "type": "string"
        },
        "organisation": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Organisation or affiliation.",
          "title": "Organisation"
        },
        "email": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Email address.",
          "title": "Email"
        }
      },
      "required": [
        "name"
      ],
      "title": "Author",
      "type": "object"
    },
    "ExternalReference": {
      "description": "Reference to an external file or document.",
      "properties": {
        "title": {
          "description": "Title or name of the referenced resource.",
          "title": "Title",
          "type": "string"
        },
        "path": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "File path or URI to the external resource.",
          "title": "Path"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Description of the reference and its relevance.",
          "title": "Description"
        },
        "classification": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Type classification of the reference (e.g. 'STEP file', 'CFD mesh', 'test report').",
          "title": "Classification"
        }
      },
      "required": [
        "title"
      ],
      "title": "ExternalReference",
      "type": "object"
    },
    "Priority": {
      "description": "Requirement priority levels per INCOSE guidance.",
      "enum": [
        "critical",
        "high",
        "medium",
        "low"
      ],
      "title": "Priority",
      "type": "string"
    },
    "ReqsCategories": {
      "description": "Taxonomy for system requirements based on ISO/IEC/IEEE 29148 and\nINCOSE's Guide to Writing Requirements.",
      "enum": [
        "functional",
        "performance",
        "quality and reliability",
        "security and cyber security",
        "interface",
        "constraints",
        "regulatory and compliance",
        "non-functional"
      ],
      "title": "ReqsCategories",
      "type": "string"
    },
    "Requirement": {
      "description": "A single requirement including specification, tracking and validation.",
      "properties": {
        "name": {
          "description": "A unique name identifying the requirement.",
          "title": "Name",
          "type": "string"
        },
        "description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A detailed description of the requirement.",
          "title": "Description"
        },
        "category": {
          "anyOf": [
            {
              "$ref": "#/$defs/ReqsCategories"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The category of the requirement."
        },
        "priority": {
          "anyOf": [
            {
              "$ref": "#/$defs/Priority"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The priority of the requirement."
        },
        "verification_method": {
          "anyOf": [
            {
              "$ref": "#/$defs/VerificationMethod"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "How the requirement will be verified."
        },
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/RequirementStatus"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The current lifecycle status of the requirement."
        },
        "source": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The originating document or stakeholder.",
          "title": "Source"
        },
        "acceptance_criteria": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Conditions that must be met for the requirement to be satisfied.",
          "title": "Acceptance Criteria"
        },
        "target_component": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The component or subsystem this requirement applies to.",
          "title": "Target Component"
        },
        "risk": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Known risks associated with this requirement.",
          "title": "Risk"
        },
        "verification_evidence": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Evidence or artefacts confirming verification.",
          "title": "Verification Evidence"
        },
        "source_info": {
          "anyOf": [
            {
              "$ref": "#/$defs/SourceInfo"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Source and authorship metadata."
        }
      },
      "required": [
        "name"
      ],
      "title": "Requirement",
      "type": "object"
    },
    "RequirementStatus": {
      "description": "Lifecycle status of a requirement.",
      "enum": [
        "draft",
        "approved",
        "implemented",
        "verified",
        "obsolete"
      ],
      "title": "RequirementStatus",
      "type": "string"
    },
    "SourceInfo": {
      "description": "Source and authorship metadata for an ADH node.",
      "properties": {
        "authors": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/Author"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Authors or contributors.",
          "title": "Authors"
        },
        "creation_date": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Date this node was created.",
          "title": "Creation Date"
        },
        "modification_date": {
          "anyOf": [
            {
              "format": "date",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Date this node was last modified.",
          "title": "Modification Date"
        },
        "version": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Version string.",
          "title": "Version"
        },
        "references": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ExternalReference"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "References to external files or documents.",
          "title": "References"
        }
      },
      "title": "SourceInfo",
      "type": "object"
    },
    "VerificationMethod": {
      "description": "Verification methods per ISO/IEC/IEEE 15288:2023.",
      "enum": [
        "test",
        "analysis",
        "inspection",
        "demonstration"
      ],
      "title": "VerificationMethod",
      "type": "string"
    }
  },
  "description": "Container for a list of requirements.",
  "properties": {
    "requirements": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/Requirement"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Requirements"
    }
  },
  "title": "Requirements",
  "type": "object"
}

Fields:

VerificationMethod ¤

Bases: str, Enum

Verification methods per ISO/IEC/IEEE 15288:2023.

Attributes:

  • analysis

    Verification by mathematical or logical examination of models or data.

  • demonstration

    Verification by operating the system and observing its behaviour.

  • inspection

    Verification by visual or physical examination of the system.

  • test

    Verification by executing the system under controlled conditions.

analysis class-attribute instance-attribute ¤

analysis = 'analysis'

Verification by mathematical or logical examination of models or data.

demonstration class-attribute instance-attribute ¤

demonstration = 'demonstration'

Verification by operating the system and observing its behaviour.

inspection class-attribute instance-attribute ¤

inspection = 'inspection'

Verification by visual or physical examination of the system.

test class-attribute instance-attribute ¤

test = 'test'

Verification by executing the system under controlled conditions.