Appendix A - System Descriptor Keywords
Structural Keywords
Below is a list of structural keywords. Structural keywords are used to indicate the organization and structure of a model, as opposed to its behavior.
| Keyword | Description |
|---|---|
| package | Declares the package that the model resides within. The package should align to the decomposition of the system being modeled. Packages may be nested by using the . character. |
| import | Imports a data, model, or enum object so it be referenced. Imports are needed to reference objects declared in other files. |
| model | Declares an object of model type. A model is a type of object that contains various attributes and metadata. |
| data | Declares an object of a data type. |
| enum | Declares an enumeration type; an enumeration contain simple string constant values and can be referenced in order data objects. |
| extends | Declares a data type extends another data type. |
| input | Field of a model, declares the data the component receives. |
| output | Field of a model, declares the data the component may produce. |
| requires | Field of a model, indicates the current model requires access to the referenced model. |
| parts | Field of a model, defines sub-components of a model. |
| many | Used within data fields to indicate a field can have multiple values. |
| metadata | Defines metadata for an object, field, or scenario. The contents of metadata should use JSON syntax. Metadata can be attached to models, data, enums, fields, enum values, and scenarios. |
| links | Defines how components are connected together. |
link … -> … |
Defines how a particular input or output of a component is connected to another component. |
Behavioral Keywords
Behavioral Keywords are used indicate how a model should behavior or perform a task.
| Keyword | Description |
|---|---|
| when | Introduces a condition step or trigger to be tested that determines the scenario should execute. |
| then | Introduces an invariant step or post condition which may be asserted once the scenario has executed. |
| scenario | Declares a discreet, atomic behavior a component should exhibit. |
| given | Introduces a pre-condition step that must be satisfied prior to the scenario being executable. |
| and | Logical operator AND. This is used to chain given, whenn and then statements together. |
Primitive Data Types
The following primitive data types are available for use when modeling data.
| Type | Description |
|---|---|
| int | A generic integer. Metadata may be used to describe the physical type and its representation when implementing the model. |
| float | A generic real number. Metadata may be used to describe the physical type and its representation when implementing the model. |
| boolean | A boolean (true/false) value. |
| string | A text value. Metadata may be used to describe the physical type, local, and its representation when implementing the model. |