@startuml Requirements /' Diagram: Requirements DateCreate: 2019-03-06 Description: This diagram presents the model used to capture requirements, for use both in standards document markup, and as standalone machine-readable artefacts. History of changes: > 2019-03-19: Added RequirementType/filename > 2019-0-19: Added subsequence > 2020-06-16: Added number > 2020-06-16: Added keep-with-next '/ '******* CLASS DEFINITION ********************************************* together { class Requirement { + obligation: "requirement" } class Recommendation { + obligation: "recommendation" } class Permission { + obligation: "permission" } } class RequirementType { + obligation: ObligationType[1..*], + id: String, + unnumbered: Boolean[0..1], + number: String[0..1], + subsequence: String[0..1], + keep-with-next: Boolean[0..1], + keep-lines-together: Boolean[0..1], + filename: String[0..1], + title: FormattedString[0..1], + label: String[0..1], + subject: String[0..1], + inherit: String[0..*], + model: String[0..1], + type: String[0..1], + classification: ClassificationType[0..*], + measurement-target: RequirementSubpart[0..*], + specification: RequirementSubpart[0..*], + verification: RequirementSubpart[0..*], + import: RequirementSubpart[0..*], + description: RequirementSubpart[0..*], + references: BibliographicItem[0..1], + subrequirement: RequirementType[0..*] } class RequirementSubpart { + type: String[0..1], + exclude: Boolean[0..1], + content: Block[1..*] + keep-with-next: Boolean[0..1], + keep-lines-together: Boolean[0..1], } class ClassificationType { + tag: String, + value: String } enum ObligationType <> { requirement recommendation permission } class BibliographicItem <> { } class Block <> { } '******* NOTES ******************************************************** note left of RequirementType: RequirementType is a generic category,\nwhich is agnostic as to obligation.\nRequirement, Recommendation, Permission\nset a specific obligation, although this\ncan be overridden note right of RequirementType: description, import, verification,\nmeasurement-target, references\ncan appear in any order. '******* CLASS RELATIONS ********************************************** Requirement --down-|> RequirementType Recommendation --down-|> RequirementType Permission --down-|> RequirementType RequirementType <-- ObligationType RequirementType <-- ClassificationType RequirementType <-- BibliographicItem RequirementType <-- Block RequirementType <-- RequirementSubpart @enduml