Customizing the metamodel : Specifying properties for diagrams, symbols, and definitions : Specifying properties for definition types
  
Specifying properties for definition types
All definitions have a Name. In addition, every definition has the default property Description, which we provide more details on later in this section. There really is no typical Definition dialog, since definitions tend to be unique within methodology and type. Below is a dialog for a Class definition.
Syntax
A definition block starts with the keyword Definition followed by a string (the argument) that is the name of the definition type. The name must be one of those known to System Architect: either one found in SAPROPS.CFG, if you are modifying or adding to an existing definition, or one that you have created by using the RENAME "User 1" through RENAME "User 300" commands (to create a new definition type, you rename one of these 300 user-provided definition types). If the definition type name contains spaces, put it in double quotes (for example, "User 1").
The dictionary definition is bracketed by the BEGIN...END or open/close braces { } keywords. Within the brackets are a set of defining commands, each consisting of the command keyword, PROPERTY, followed by its arguments. When you invoke a Dictionary Object dialog, its pages are populated by the properties named in the definition block.
Each PROPERTY entry has its own sub-set definition, again bracketed by the {EDIT... } braces and keyword. Each definition consists of phrases made up of keywords such as Boolean, Date, Expression, ExpressionOf, ListOf, Minispec, Numeric, OneOf, Text, and Time. Details of property definitions are given later in this section.
In summary, to add more properties for a definition, use the following syntax:
DEFINITION definition_type
{
PROPERTY-1 <property_name> { <property_value> }
PROPERTY-2 <property_name> { <property_value> }
PROPERTY-3 <property_name> { <property_value> }
}
For example:
DEFINITION "Class"
{
CHAPTER "Definition"
GROUP "Class"
{
LAYOUT { COLS 2 ALIGN OVER TAB }
PROPERTY "Description" { ZOOMABLE EDIT Text LENGTH 500 }
PROPERTY "Class Header File" { EDIT Text LABEL "Class Generation File" LENGTH 80 }
PROPERTY "Stereotype" { EDIT Text LIST "Class Stereotypes" INIT_FROM_SYMBOL Default "" LENGTH 20 }
..}
In the example above, the default first tab of the definition, which unless otherwise specified is “Introduction”, has been changed to “Definition”; that is what the CHAPTER "Definition" command does.
Description
As mentioned at the start of this section, every definition has the default property Description. Unless otherwise specified in SAPROPS.CFG, Description is defined as a text field of 4074 characters. You may increase a Description's field size in USRPROPS.TXT by simply respecifying the Description property and increasing the number of characters. For example:
DEFINITION "Class" { PROPERTY "Description" { EDIT LENGTH 16000 LINES 5 }
}
The above example specifies that the Description property of a class can hold 16,000 characters but only the first 5 lines are displayed in the class definition's dialog.
Note There are a few definition types within System Architect that use the Description property for special purposes. For example, the definition of an Entity has been redefined as a LISTOF "Attribute" FROM "Data. The Description property for Process definitions have been redefined as Minispec, since the data contents of processes are generally minispecs, structured English, pseudo-code, and the like. In each of these cases, the Description property has been relabeled as well, to Attribute or Minispec, respectively.
For example, here is the specification for a Process definition in SAPROPS.CFG:
DEFINITION "Process" { PROPERTY "Description" { EDIT Minispec LENGTH 750 LABEL "Minispec" }
..}
It is important to note that when writing reports, the name of the property is Description, and must be referred to as such.