Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| dido:03-dido-te:99-annexes:annex-c-requirements:start [2026/08/07 11:21] – 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. |
| - | Annex C organises | + | The requirements |
| - | The draft Requirements Register provides one source of 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 |
| - | Additional | + | The requirements |
| - | * [[dido: | + | * The governance status of a requirement |
| - | * [[dido: | + | * The delivery phase associated with a requirement |
| - | * [[dido: | + | * The source and derivation of a requirement |
| - | * [[dido: | + | * The architecture and operational concepts associated with a requirement |
| + | * The ConOps activities associated with a requirement | ||
| + | * The verification activities used to determine whether a realization satisfies a requirement | ||
| - | DIDO-TE requirements conform to the: | + | Requirements in this register define required capabilities and constraints without prescribing a particular product, implementation, |
| - | * Common Specification Weakness Enumeration (CWE) | + | Traceability maintains relationships between requirements |
| - | * OMG Specification Discipline | + | |
| - | * DIDO Solutions shared [[dido: | + | |
| - | SDA provides the detection layer for candidate specification weaknesses. CWE provides the authoritative evaluation layer for confirming defects, identifying governing rules, assigning classifications and severity, selecting applicable defect patterns, and recording traceable findings. | + | ===== Requirement Categories ===== |
| - | Annex C distinguishes among: | + | The requirements register uses the following |
| - | + | ||
| - | * The canonical DIDO-TE requirement | + | |
| - | * The source material | + | |
| - | * The requirement lineage | + | |
| - | * 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, | + | |
| - | + | ||
| - | ===== Old 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: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | * [[dido: | + | * [[dido: |
| - | + | ||
| - | ===== New Requirements ===== | + | |
| - | + | ||
| - | ====== Annex C: Requirements ====== | + | |
| - | + | ||
| - | [[dido: | + | |
| - | + | ||
| - | This annex identifies the canonical requirement records for the DIDO Test Environment (DIDO-TE). | + | |
| - | + | ||
| - | Requirements are organised by architectural concern rather than by document chapter. Each requirement is maintained as an individual wiki page with a stable identifier and URI. Annex D provides traceability from these requirements to the body of this specification and to their authoritative source documents. | + | |
| - | + | ||
| - | ===== Requirement Categories ===== | + | |
| - | + | ||
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| - | * [[dido: | + | |
| - | + | ||
| - | {{indexmenu> | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | <WRAP centeralign> | + | |
| - | © 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc. | + | |
| - | </ | + | |
| - | + | ||
| - | {{indexmenu> | + | |
| ===== 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 ===== |
| - | Annex C does not reassign | + | Requirement identifiers use a controlled prefix that identifies the requirement |
| - | ===== Requirement Decomposition ===== | + | The prefix identifies the subject area of the requirement and remains stable even if the requirement is moved within the Annex C hierarchy. |
| - | Each normative requirement expresses one independently interpretable | + | ^ Prefix ^ Requirement Category ^ |
| + | | MO | Mission Objective | | ||
| + | | OPR | Operational Requirement | | ||
| + | | ENV | Test Environment Requirement | | ||
| + | | NOD | Node Requirement | | ||
| + | | TWIN | Twin Node Requirement | | ||
| + | | NET | Virtual Network | ||
| + | | 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 | | ||
| - | When a source requirement contains multiple normative obligations, | + | Requirement identifiers use the form: |
| - | For example: | + | < |
| + | PREFIX-NNN | ||
| + | </ | ||
| - | * '' | + | where: |
| - | * '' | + | |
| - | * '' | + | |
| - | The non-leaf parent page retains a trailing | + | * '' |
| - | + | * '' | |
| - | The parent page preserves the composite source statement and links to each derived leaf requirement. Each derived requirement | + | |
| - | + | ||
| - | Decomposition does not change the source provenance. A derived leaf requirement retains traceability to both its parent requirement and the external source material from which the requirement originated. | + | |
| - | + | ||
| - | ===== Source and Derivation Traceability ===== | + | |
| - | + | ||
| - | The **Source** section identifies the external source material supporting a requirement. | + | |
| - | + | ||
| - | Sources include: | + | |
| - | + | ||
| - | * The draft Requirements Register | + | |
| - | * Annex B references | + | |
| - | * Approved architecture content | + | |
| - | * Approved ConOps content | + | |
| - | * Approved governance decisions | + | |
| - | * Other authoritative source artifacts | + | |
| - | + | ||
| - | A citation identifies the most precise available source location, such as a requirement | + | |
| For example: | For example: | ||
| - | < | + | < |
| - | [[dido:03-dido-te:99-annexes: | + | ENV-001 |
| + | NOD-013 | ||
| + | TEX-004 | ||
| + | SEC-002 | ||
| </ | </ | ||
| - | The **Derived From** section identifies | + | A requirement |
| - | For example: | + | A retired or superseded requirement identifier SHALL NOT be reassigned to a different requirement. |
| - | <code dokuwiki> | + | ===== Requirement Decomposition ===== |
| - | [[dido: | + | |
| - | </ | + | |
| - | The **Source** and **Derived From** sections serve different purposes and are not mutually exclusive. | + | A source |
| - | * **Source** records external provenance. | + | A source |
| - | * **Derived From** records | + | |
| - | A requirement | + | Derived requirements preserve traceability to the source |
| - | ===== Conceptual-Model Derivation ===== | + | Decomposition SHALL NOT change the approved intent of the source obligation. |
| - | [[dido: | + | A derived requirement |
| - | For example: | + | ===== Source and Derivation Traceability ===== |
| - | <code dokuwiki> | + | Each requirement identifies its authoritative source or derivation basis where applicable. |
| - | [[dido: | + | |
| - | </ | + | |
| - | DIDO-TE preserves the following model progression: | + | A requirement may originate from: |
| - | | + | |
| - | | + | |
| - | | + | |
| + | * A conceptual or logical | ||
| + | * An architectural decomposition | ||
| + | * An approved governance determination | ||
| + | * Another requirement | ||
| - | A requirement derived from a conceptual-model element preserves the implementation-independent meaning of the source element. It does not prescribe a logical or physical representation unless | + | Source material may be normalized when necessary to produce |
| - | Conceptual-to-logical and logical-to-physical mappings remain explicit and traceable. Each mapping identifies: | + | Normalization may correct: |
| - | * The source element | + | * Terminology |
| - | * The target element | + | * Grammar |
| - | * The value correspondence | + | * Active or passive voice |
| - | * Applicable constraints | + | * Normative modality |
| - | * Null semantics, when applicable | + | * Ambiguous subjects |
| - | * Any information loss or semantic change | + | * Compound obligations |
| - | * The rationale for the selected mapping | + | * Undefined references |
| + | * Implementation-specific wording that is inappropriate at the architectural level | ||
| - | ===== Source Normalisation ===== | + | Normalization SHALL preserve the source' |
| - | Annex C corrects spelling, spacing, capitalisation, | + | The applicable governance process SHALL approve a material |
| - | A derivation record preserves the original source expression and identifies the normalised expression when the correction affects traceability. | + | Editorial normalization SHALL NOT introduce |
| - | + | ||
| - | For example: | + | |
| - | + | ||
| - | ^ Source name in [DTE4] ^ Normalised name ^ | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | + | ||
| - | An editorial normalisation preserves the original meaning. | + | |
| - | + | ||
| - | A change to values, constraints, | + | |
| ===== 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 | ||
| - | Every leaf requirement contains a **Source** | + | A leaf requirement |
| - | A leaf requirement | + | A non-leaf requirement |
| - | The **Statement** section contains only the normative | + | Additional sections SHALL NOT be added to individual |
| - | + | ||
| - | The **Verification** section identifies objective activities and results that determine whether DIDO-TE satisfies the requirement. | + | |
| - | + | ||
| - | The **Referenced By** section uses backlinks | + | |
| ===== 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 permission | + | * **MAY** identifies a permitted capability or action |
| - | * **SHOULD** identifies | + | * **SHOULD** identifies |
| - | * **SHOULD NOT** identifies an advisory | + | |
| - | + | ||
| - | Only **SHALL** and **SHALL NOT** establish mandatory conformance obligations. | + | |
| - | The Statement section contains only the normative statement. | + | Normative modal verbs are written in uppercase. |
| - | Rationale, examples, implementation information, verification information, source information, derivation information, | + | 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 behaviour, 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 an approved constraint requires the mechanism | + | * Traceability |
| - | * Supports objective verification | + | * Consistency with related requirements |
| - | * Preserves traceability to source material | + | * Absence of unnecessary implementation constraints |
| - | * Preserves traceability to architecture, | + | * Absence of unresolved conflicts or ambiguous precedence |
| - | SDA analysis | + | Specification Discipline and Authoring (SDA) identifies candidate weaknesses |
| - | * The governing rule | + | The Common Specification Weakness Enumeration (CWE) evaluates candidate findings, confirms applicable defects, and records their classification, |
| - | * The defect classification | + | |
| - | * The assigned severity | + | Automated or AI-assisted analysis may identify, compare, trace, or propose corrections to candidate issues. |
| - | * The applicable defect pattern | + | |
| - | * The affected requirement | + | Automated or AI-assisted analysis SHALL NOT resolve conflicts, ambiguities, |
| - | * The supporting rationale | + | |
| - | * The required disposition | + | 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 311: | 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 321: | 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 may 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> | ||
| ---- | ---- | ||
| Line 338: | Line 290: | ||
| ===== Notes for Editors ===== | ===== Notes for Editors ===== | ||
| - | Annex C is the authoritative source for DIDO-TE normative requirements. | + | < |
| - | + | ||
| - | The draft Requirements Register remains source material. Its '' | + | |
| - | + | ||
| - | Treat [[dido:03-dido-te: | + | |
| - | + | ||
| - | Identify | + | |
| - | + | ||
| - | Use **Source** to record external provenance. Use **Derived From** to record requirement decomposition and lineage. Do not use one section as a substitute for the other. | + | |
| - | + | ||
| - | Preserve original source identifiers, | + | |
| - | + | ||
| - | Correct spelling and naming defects in current DIDO-TE requirements. Record the original and normalised expressions when a correction affects traceability. | + | |
| - | + | ||
| - | Do not classify changes to values, constraints, | + | |
| - | + | ||
| - | Preserve the distinction among Conceptual Models, Logical Models, and Physical Models. | + | |
| - | + | ||
| - | Do not place implementation-specific datatypes, encodings, products, or technologies in a conceptual-model requirement unless an approved constraint expressly requires | + | |
| - | + | ||
| - | Record conceptual-to-logical and logical-to-physical mappings explicitly and preserve required semantic distinctions through each mapping. | + | |
| - | + | ||
| - | Apply SDA pattern detection before performing CWE evaluation. | + | |
| - | + | ||
| - | Preserve traceability from each DIDO-TE requirement to: | + | |
| - | + | ||
| - | * External source material | + | |
| - | * Its parent requirement, | + | |
| - | * 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 requirement pages retain a trailing '': | + | |
| - | + | ||
| - | 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, | + | Preserve stable requirement identifiers when moving |
| - | Do not rename a requirement page after an external citation unless a redirect | + | Do not allocate canonical requirements directly to Crucible, DevSecOps, |
| ---- | ---- | ||