This is an old revision of the document!
Annex C: Requirements
Annex C contains the canonical requirements register for the Distributed Immutable Data Object Test Environment (DIDO-TE).
The requirements are organized by requirement class. Each normative requirement receives a stable identifier and resides on a separate Wiki page. Architecture pages, implementation artifacts, tests, Evidence, verification records, and other records can reference each requirement through its stable identifier and URI.
The draft Requirements Register provides source requirements and supporting information for this annex. The identifiers REQ-0001 through REQ-0091 identify requirements in the source register. Annex C preserves those identifiers for traceability but assigns new canonical identifiers to the DIDO-TE requirements.
DIDO-TE requirements conform to the:
-
Common Specification Weakness Enumeration (CWE)
-
OMG Specification Discipline and Authoring (SDA)
-
DIDO Solutions shared Terms and Definitions
Annex C distinguishes among:
-
The canonical DIDO-TE requirement
-
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, and operational concepts that support the requirement
Requirement Categories
Requirement Categories
-
Requirement Identifiers
DIDO-TE uses the following requirement-class identifiers:
Requirement Class Prefix Mission Objective MOOperational Requirement ORFunctional Requirement FRSecurity Requirement SECLogging and Auditing Requirement LOGReliability Requirement RELPerformance Requirement PERMaintainability Requirement MNTData Management Requirement DATInteroperability Requirement INTFuture Capability Requirement FUTKey Value Proposition Requirement KVPEach requirement identifier consists of the requirement-class prefix followed by a three-digit number.
Examples include:
-
MO-001 -
OR-001 -
FR-001 -
SEC-001 -
PER-001
A requirement identifier remains stable when the requirement moves to another section or undergoes an editorial revision that does not substantively change the requirement.
A retired, withdrawn, deprecated, or superseded identifier is not reassigned to another requirement.
Requirement Decomposition
Each normative requirement expresses one independently interpretable and independently verifiable obligation.
When a source requirement contains multiple normative obligations, Annex C preserves the source requirement on a non-leaf parent page and assigns a lowercase suffix to each derived requirement.
For example:
-
FR-040identifies the source requirement represented by the parent page -
FR-040aidentifies the first derived requirement -
FR-040bidentifies the second derived requirement
The non-leaf parent page retains a trailing
:startin its namespace. Each derived leaf requirement omits the trailing:start.A derived requirement includes a Derived From section that identifies:
-
The parent requirement
-
The Original Requirement
-
The obligation preserved by the derived requirement
-
Other requirements derived from the same parent requirement
A requirement that does not require decomposition uses a Source section rather than a Derived From section.
Requirement Page Structure
Each leaf requirement page uses the following sections where applicable:
-
Statement
-
Source
-
Derived From
-
Rationale
-
Applies To
-
Verification
-
Referenced By
-
Delivery Phase
-
Implementation Status
-
Requirement Status
-
Issues
-
Notes for Editors
The Source and Derived From sections are mutually exclusive.
A requirement page uses Source when the requirement does not result from the decomposition of another requirement.
A requirement page uses Derived From only when the requirement results from the decomposition of a parent requirement.
Normative Language
Requirement Statements use the following normative terms:
-
SHALL identifies a mandatory requirement
-
SHALL NOT identifies a mandatory prohibition
-
MAY identifies a permitted capability or action
-
SHOULD identifies an advisory recommendation
The Statement section contains only the normative requirement.
Rationale, examples, implementation information, verification information, source information, and editorial guidance remain outside the Statement section.
Requirement Quality
Each DIDO-TE requirement conforms to the applicable CWE and SDA rules.
Each requirement:
-
Has a unique and stable identifier
-
Expresses a single, independently interpretable obligation
-
Identifies the responsible actor
-
Identifies the required behavior, outcome, permission, or prohibition
-
Uses defined terminology consistently
-
Uses explicit normative language
-
Avoids vague, weak, open-ended, and logically ambiguous expressions
-
Avoids implementation-specific mechanisms unless the mechanism constitutes an approved constraint
-
Supports objective verification
-
Preserves traceability to the source material
-
Preserves traceability to architecture, implementation, test, Evidence, and conformance artifacts
Requirement Status
Requirement Status identifies the governance state of the requirement.
Possible states include:
-
Draft
-
Proposed
-
Approved
-
Deprecated
-
Superseded
-
Withdrawn
Implementation Status
Implementation Status identifies the state of DIDO-TE relative to the requirement.
Possible states include:
-
Implemented
-
Partially Implemented
-
Demonstrated
-
Planned
-
Deferred
-
Strategic Unscheduled
-
Unsupported
-
Not Assessed
Requirement Status and Implementation Status remain separate.
An approved requirement can remain planned, partially implemented, deferred, unsupported, or not assessed.
Contents
Notes for Editors
Annex C is the authoritative source for DIDO-TE normative requirements.
The draft Requirements Register remains source material. Its
REQ-0001throughREQ-0091identifiers remain source-reference identifiers and do not become canonical DIDO-TE requirement identifiers.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
:startfrom their namespaces.Non-leaf requirement pages retain a trailing
:startin their namespaces.Do not rename a requirement page after an external citation unless a redirect or move plan is in place.
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.
-
- dido/03-dido-te/99-annexes/annex-c-requirements/start.1786108773.txt.gz
- Last modified: 2026/08/07 06:19
- by nick_dido