[.e] Requirements storage

{{parent: f.req}}

The component shall provide a file storage for the requirements. Requirements inside the storage shall be presented by plain text files. Files can be arranged using the folder structure.

The component storage shall provide the following items that both represent Requirement:

[.e] Requirement entity

The entity is the presentation of a requirement for processing inside the system.

Field | Type | M | Description
:——— | ———- | - | :——————————– Id | String | Y | The entity unique identifier Parent | String | | Reference to parent requirement
Items | Collection | | Array of child requirements
Title | String | |
Attributes | Hash | |
Body | Text | |

[.f] Requirement file

The system shall use the following requirements file format:

# [<id>] <title>
{{
<attribute1>: value1
<attribute2>: value2  
}}
<body>

## [<id>] <title>
<body>

[.hdr] Header

Each file must begin with a header line. The header line consists of the header sign #, an identifier, and a title. Identifier and title optional parameters.

[.met] Metadata

Each header can be followed (optional section) by metadata block {{}}. The block can contain one or more parameters, separated semicolons or a new string.

Each parameter represented as key: value, where the key is a sequence of [a-z,A-Z,._] characters finished by a colon : and followed by a space. The remainder of the is determined as attribute value.

[.sys] System attributes

The following metadata parameters considered as system attributes and influence to the system behavior. TBD reference to writer

Attribute | Value | Description :———- | :—- | ————————————————– parent | id | Reference to parent requirement order_index | text | Child requirements order skip_meta | true | Skip output of id and metadata table in publishing

[.bdy] Body

All the following text until the end of the file or next header is the requirement body.

[.hhy] Headers structure

The requirement file can contain more than one requirement. There are possible to hold several requirement at the same level or requirements hierarchies. The child requirement must begin with a header level that is one less than the parent. Requirements at the same level have the same header level (same number of #).