Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| dido:03-dido-te:99-annexes:annex-c-requirements:start [2026/08/04 02:30] – created nick_dido | dido:03-dido-te:99-annexes:annex-c-requirements:start [2026/08/19 18:16] (current) – nick_dido | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| [[dido: | [[dido: | ||
| - | Annex C contains the canonical requirements register for the Distributed Immutable Data Object Test Environment (DIDO-TE). | + | Annex C contains the canonical requirements register for this specification. |
| - | The requirements are organized | + | The requirements are organized |
| - | The draft Requirements Register provides source requirements and supporting information for this annex. The identifiers '' | + | A requirement page may be a leaf page containing an independently verifiable normative obligation or a non-leaf page organizing subordinate |
| - | DIDO-TE | + | The requirements |
| - | * Common Specification Weakness Enumeration (CWE) | + | * The governance status of a requirement |
| - | * OMG Specification Discipline | + | * The delivery phase associated with a requirement |
| - | * DIDO Solutions shared [[dido: | + | * The source |
| + | * The architecture | ||
| + | * The ConOps activities associated with a requirement | ||
| + | * The verification activities used to determine whether a realization satisfies a requirement | ||
| - | Annex C distinguishes among: | + | Requirements in this register define required capabilities and constraints without prescribing a particular product, implementation, |
| - | * The canonical DIDO-TE requirement | + | Traceability maintains relationships between requirements and specific Reference Architectures, |
| - | * The source requirement | + | |
| - | * The requirement class | + | |
| - | * The governance status of the requirement | + | |
| - | * The delivery phase associated with the requirement | + | |
| - | * The implementation status of DIDO-TE relative to the requirement | + | |
| - | * The verification activities used to determine whether DIDO-TE satisfies the requirement | + | |
| - | * The Evidence required to support the verification result | + | |
| - | * The architecture, ConOps, | + | |
| ===== Requirement Categories ===== | ===== Requirement Categories ===== | ||
| + | |||
| + | The requirements register uses the following requirement categories: | ||
| * [[dido: | * [[dido: | ||
| * [[dido: | * [[dido: | ||
| * [[dido: | * [[dido: | ||
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| * [[dido: | * [[dido: | ||
| * [[dido: | * [[dido: | ||
| Line 53: | Line 48: | ||
| * [[dido: | * [[dido: | ||
| * [[dido: | * [[dido: | ||
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | |
| ===== Requirement Identifiers ===== | ===== Requirement Identifiers ===== | ||
| - | DIDO-TE uses the following | + | Each requirement |
| - | ^ Requirement Class ^ Prefix ^ | + | The requirement identifier identifies the requirement independently of its location within the requirements hierarchy. Moving a requirement to another category or namespace does not, by itself, change the requirement identifier. |
| - | | Mission Objective | '' | + | |
| - | | Operational Requirement | '' | + | |
| - | | Functional Requirement | '' | + | |
| - | | Security Requirement | '' | + | |
| - | | Logging and Auditing Requirement | '' | + | |
| - | | Reliability Requirement | '' | + | |
| - | | Performance Requirement | '' | + | |
| - | | Maintainability Requirement | '' | + | |
| - | | Data Management Requirement | '' | + | |
| - | | Interoperability Requirement | '' | + | |
| - | | Future Capability Requirement | '' | + | |
| - | | Key Value Proposition Requirement | '' | + | |
| - | Each requirement identifier consists of the requirement-class prefix followed by a three-digit number. | + | For example, a Node requirement |
| - | Examples include: | + | Requirement identifiers SHALL NOT be reused for a different requirement after assignment. |
| - | * '' | + | A requirement that is withdrawn, deprecated, or superseded retains its identifier and governance history. |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | A requirement identifier remains stable when the requirement moves to another section or undergoes an editorial revision that does not substantively change the requirement. | + | ===== Requirement Prefixes ===== |
| - | A retired, withdrawn, deprecated, or superseded identifier is not reassigned to another | + | Requirement identifiers use a controlled prefix that identifies the requirement |
| - | ===== Requirement | + | The prefix identifies the subject area of the requirement and remains stable even if the requirement is moved within the Annex C hierarchy. |
| + | |||
| + | ^ Prefix ^ Requirement | ||
| + | | MO | Mission Objective | | ||
| + | | OPR | Operational Requirement | | ||
| + | | ENV | Test Environment Requirement | | ||
| + | | NOD | Node Requirement | | ||
| + | | TWIN | Twin Node Requirement | | ||
| + | | NET | Virtual Network and Communication Requirement | | ||
| + | | STC | State and Time Control Requirement | | ||
| + | | TDF | Test Definition Requirement | | ||
| + | | TEX | Test Execution Requirement | | ||
| + | | RPB | Record and Playback Requirement | | ||
| + | | BLC | Baseline and Comparison Requirement | | ||
| + | | VAL | Validation Requirement | | ||
| + | | EVD | Monitoring and Evidence Requirement | | ||
| + | | CAT | Catalog and Reuse Requirement | | ||
| + | | SEC | Security Requirement | | ||
| + | | AUD | Logging and Auditing Requirement | | ||
| + | | REL | Reliability Requirement | | ||
| + | | PER | Performance Requirement | | ||
| + | | MNT | Maintainability Requirement | | ||
| + | | DAT | Data Management Requirement | | ||
| + | | INT | Interoperability Requirement | | ||
| + | | CON | Conformance Requirement | | ||
| + | |||
| + | Requirement identifiers use the form: | ||
| + | |||
| + | < | ||
| + | PREFIX-NNN | ||
| + | </ | ||
| - | Each normative requirement expresses one independently interpretable and independently verifiable obligation. | + | where: |
| - | When a source requirement contains multiple normative obligations, | + | * '' |
| + | * '' | ||
| For example: | For example: | ||
| - | * '' | + | < |
| - | * '' | + | ENV-001 |
| - | * '' | + | NOD-013 |
| + | TEX-004 | ||
| + | SEC-002 | ||
| + | </ | ||
| - | The non-leaf parent page retains a trailing '': | + | A requirement |
| - | A derived | + | A retired or superseded |
| - | | + | ===== Requirement Decomposition ===== |
| - | * The Original Requirement | + | |
| - | * The obligation preserved by the derived | + | A source requirement may contain multiple independently verifiable obligations. |
| - | * Other requirements derived from the same parent | + | |
| + | A source requirement containing multiple independently verifiable obligations may be decomposed into multiple requirements when decomposition improves atomicity, clarity, traceability, | ||
| + | |||
| + | Derived requirements preserve traceability to the source requirement, | ||
| + | |||
| + | Decomposition SHALL NOT change the approved intent of the source obligation. | ||
| + | |||
| + | A derived requirement does not acquire independent authority merely because it has been decomposed from another statement. Its authority remains traceable to its source and applicable governance process. | ||
| + | |||
| + | ===== Source and Derivation Traceability ===== | ||
| + | |||
| + | Each requirement identifies its authoritative source or derivation basis where applicable. | ||
| + | |||
| + | A requirement may originate from: | ||
| + | |||
| + | | ||
| + | * A normative specification or other controlled document | ||
| + | * A policy or governed constraint | ||
| + | * A conceptual or logical model | ||
| + | * An architectural decomposition | ||
| + | * An approved governance determination | ||
| + | * Another | ||
| + | |||
| + | Source material may be normalized when necessary to produce an atomic, clear, verifiable requirement. | ||
| + | |||
| + | Normalization may correct: | ||
| + | |||
| + | * Terminology | ||
| + | * Grammar | ||
| + | * Active or passive voice | ||
| + | * Normative modality | ||
| + | * Ambiguous subjects | ||
| + | * Compound obligations | ||
| + | * Undefined references | ||
| + | * Implementation-specific wording that is inappropriate at the architectural level | ||
| + | |||
| + | Normalization SHALL preserve the source' | ||
| + | |||
| + | The applicable governance process SHALL approve a material change in requirement | ||
| - | A requirement that does not require decomposition uses a **Source** section rather than a **Derived From** section. | + | Editorial normalization SHALL NOT introduce |
| ===== Requirement Page Structure ===== | ===== Requirement Page Structure ===== | ||
| - | Each leaf requirement page uses the following sections where applicable: | + | Each requirement page uses the following sections where applicable: |
| * Statement | * Statement | ||
| * Source | * Source | ||
| - | * Derived From | ||
| * Rationale | * Rationale | ||
| * Applies To | * Applies To | ||
| * Verification | * Verification | ||
| - | * Referenced By | + | * Traceability |
| + | * ConOps Relationship | ||
| * Delivery Phase | * Delivery Phase | ||
| - | * Implementation Status | ||
| * Requirement Status | * Requirement Status | ||
| - | * Issues | ||
| - | * Notes for Editors | ||
| - | The **Source** | + | A leaf requirement page contains an independently verifiable normative obligation |
| - | A requirement page uses **Source** when the requirement | + | A non-leaf |
| - | A requirement page uses **Derived From** only when the requirement results from the decomposition of a parent | + | Additional sections SHALL NOT be added to individual |
| ===== Normative Language ===== | ===== Normative Language ===== | ||
| - | Requirement | + | Requirement |
| * **SHALL** identifies a mandatory requirement | * **SHALL** identifies a mandatory requirement | ||
| * **SHALL NOT** identifies a mandatory prohibition | * **SHALL NOT** identifies a mandatory prohibition | ||
| * **MAY** identifies a permitted capability or action | * **MAY** identifies a permitted capability or action | ||
| - | * **SHOULD** identifies | + | * **SHOULD** identifies |
| - | The Statement section contains only the normative requirement. | + | Normative modal verbs are written in uppercase. |
| - | Rationale, examples, implementation information, verification information, source information, and editorial guidance remain outside | + | A requirement page may editorially correct source wording for terminology, atomicity, clarity, active voice, normative style, or verification without changing the approved intent of the requirement. |
| ===== Requirement Quality ===== | ===== Requirement Quality ===== | ||
| - | Each DIDO-TE requirement conforms to the applicable CWE and SDA rules. | + | Requirements are reviewed for specification quality before approval. |
| - | Each requirement: | + | Requirement review examines characteristics including: |
| - | * Has a unique and stable identifier | + | * Atomicity |
| - | * Expresses a single, independently interpretable obligation | + | * Clear identification of the responsible subject |
| - | * Identifies the responsible actor | + | * Defined terminology |
| - | * Identifies the required behavior, outcome, permission, or prohibition | + | * Appropriate normative modality |
| - | * Uses defined terminology consistently | + | * Active voice |
| - | * Uses explicit normative language | + | * Unambiguous scope |
| - | * Avoids vague, weak, open-ended, and logically ambiguous expressions | + | * Verifiability |
| - | * Avoids implementation-specific mechanisms unless the mechanism constitutes an approved constraint | + | * Traceability |
| - | * Supports objective verification | + | * Consistency with related requirements |
| - | * Preserves traceability to the source material | + | * Absence of unnecessary implementation constraints |
| - | * Preserves | + | * Absence of unresolved conflicts or ambiguous precedence |
| + | |||
| + | Specification Discipline and Authoring (SDA) identifies candidate weaknesses in requirement wording, structure, terminology, | ||
| + | |||
| + | The Common Specification Weakness Enumeration (CWE) evaluates candidate findings, confirms applicable defects, and records their classification, | ||
| + | |||
| + | Automated or AI-assisted analysis may identify, compare, trace, or propose corrections to candidate issues. | ||
| + | |||
| + | Automated or AI-assisted analysis SHALL NOT resolve conflicts, ambiguities, | ||
| + | |||
| + | A conflict, ambiguity, or unresolved precedence among governed requirements, | ||
| ===== Requirement Status ===== | ===== Requirement Status ===== | ||
| - | Requirement Status identifies the governance state of the requirement. | + | Requirement Status identifies the requirement' |
| Possible states include: | Possible states include: | ||
| Line 178: | Line 235: | ||
| * Withdrawn | * Withdrawn | ||
| - | ===== Implementation | + | Requirement |
| - | Implementation Status | + | ===== Realization and Implementation Status |
| - | Possible | + | Requirements in this annex are product-neutral and may be realized by one or more architectural capabilities, |
| + | |||
| + | The canonical requirement does not prescribe a specific realization unless such a constraint forms part of the approved requirement. | ||
| + | |||
| + | Traceability records maintain relationships between canonical requirements and their realizations. | ||
| + | |||
| + | The applicable realization maintains Implementation Status. Implementation Status is not a property of the canonical requirement. | ||
| + | |||
| + | A realization may identify its relationship to a requirement using implementation | ||
| * Implemented | * Implemented | ||
| Line 188: | Line 253: | ||
| * Demonstrated | * Demonstrated | ||
| * Planned | * Planned | ||
| - | * Deferred | ||
| - | * Strategic Unscheduled | ||
| * Unsupported | * Unsupported | ||
| * Not Assessed | * Not Assessed | ||
| - | Requirement Status and Implementation Status remain separate. | + | Requirement Status and realization-specific |
| - | + | ||
| - | An approved requirement can remain planned, partially implemented, | + | |
| ===== Contents ===== | ===== Contents ===== | ||
| - | {{indexmenu> | + | * [[dido: |
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | |||
| + | {{indexmenu> | ||
| ---- | ---- | ||
| - | ===== Notes for Editors ===== | ||
| - | Annex C is the authoritative source | + | ===== Notes for Editors ===== |
| - | + | ||
| - | The draft Requirements Register remains source material. Its '' | + | |
| - | + | ||
| - | Do not change an assigned requirement identifier because the requirement moves to another section. | + | |
| - | + | ||
| - | Do not reuse an identifier assigned to a retired, withdrawn, deprecated, or superseded requirement. | + | |
| - | + | ||
| - | Apply SDA pattern detection before performing CWE evaluation. | + | |
| - | + | ||
| - | Preserve traceability from each DIDO-TE requirement to: | + | |
| - | + | ||
| - | * The source requirement | + | |
| - | * Supporting source material | + | |
| - | * Applicable ConOps scenarios | + | |
| - | * Applicable architecture sections | + | |
| - | * Implementation artifacts | + | |
| - | * Verification activities | + | |
| - | * Verification results | + | |
| - | * Evidence | + | |
| - | * Identified issues | + | |
| - | + | ||
| - | Use a non-leaf parent page only when requirement decomposition requires one. | + | |
| - | Leaf requirement pages omit a trailing '': | + | < |
| - | Non-leaf | + | Preserve stable requirement identifiers when moving or reorganizing |
| - | Do not rename a requirement page after an external citation unless a redirect | + | Do not allocate canonical requirements directly to Crucible, DevSecOps, |
| ---- | ---- | ||