An example project for modeling stakeholder needs, user stories, data structures, using the Mach 30 Modeling Language (m30ml).
The output of this project is a documentation page that can be accessed at https://capsulecorplab.github.io/m30ml-example-project/
This project currently uses docker for abstracting build tools, s.a., LiquiDoc - a build tool for the Liquid template language, and Asciidoctor - a conversion engine for the Asciidoc markup language.
Contents of the architecture/
directory are specified in the following YAML-based data structures, as per the m30ml language specification, to serve as the "single source of truth" for a project.
Purpose: Provide data required to cite sources
title: {{title}} url: {{url}}
Field | Type | Item Type | Description | Source |
---|---|---|---|---|
title |
string |
title of the reference |
||
url |
string |
For web based references, URL needed to access the reference |
Purpose: Capture statements of need from the perspective of system stakeholders identifying the system to be developed. Stakeholder needs do not need to be strictly testable. Later analysis will develop verifiable requirements from the stakeholder needs.
id: {{id}} name: {{name}} statement: {{statement}} derivedFrom: {{derivedFrom}}
Field | Type | Item Type | Description | Source |
---|---|---|---|---|
id |
integer |
Auto-increment identification number for the Stakeholder Need |
||
name |
string |
Human readable (descriptive) name for the Stakeholder Need |
||
statement |
string |
The actual statement of the Stakeholder Need |
||
derivedFrom |
list |
string |
List of paths to model files that this Stakeholder Need is related to by analysis results and design decisions |
Purpose: Define unit of capability serving a specific user persona’s need.
id: {{id}} name: {{name}} actor: {{actor}} behavior: {{behavior}} rationale: {{rationale}} derivedFrom: {{derivedFrom}} example: {{example}}
Field | Type | Item Type | Description | Source |
---|---|---|---|---|
id |
integer |
Auto-increment identification number for the User Story |
||
name |
string |
Human readable (descriptive) name for the User Story |
||
actor |
string |
Identifies the subject of the user story (the end user), e.g. "As a <actor>, I …" |
||
behavior |
string |
Defines the objective of the user story in an implementation free manner (the intent), e.g. "want to <behavior> …" |
||
rationale |
string |
Identifies why the actor desires the behavior (the benefit/value for the user), e.g. "so that I can <rationale>." |
||
example |
string |
One to two sentences describing an application of this user story |
Purpose: Define storage format for data used in an architecture
name: {{name}} purpose: {{purpose}} template: | {{template}} elements: - {{element}} derivedFrom: {{derivedFrom}}
Field | Type | Item Type | Description | Source |
---|---|---|---|---|
name |
string |
Human readable name of the Data Structure |
||
purpose |
string |
Provides specification for an individual Data Structure |
||
template |
string |
Liquid template of YAML representation of the data structure, suitable for use in manual or automated generation of the data structure |
||
elements |
list |
Element |
Definition of the data in the Data Structure |
|
derivedFrom |
list |
string |
List of paths to model files that this Data Structure is related to by analysis results and design decisions |