A concept statement defines a concept in natural language. A concept is a name for similar things. For example: Peter
, John
, and Barack
are things you might want to call Person
, whereas 45-NP-88
and KD-686-D
could be instances of the concept LicensePlate
.
This statement may occur anywhere within a context, either inside or outside a pattern.
This statement means that there exists a concept called <Uppercase identifier>
in the current context.
<Uppercase identifier>
specifies the name of the concept.
String
contains a definition of the concept. This definition is used by the documentation generator, which expects it to be a grammatically correct and complete sentence.
String?
is an (optional) reference to the source of the definition. It is meant for traceability.
The name of a concept starts with an uppercase.
A concept should be used for immutable concepts. E.g. use a concept Person
to express that a person will always be a person and will not change in, let us say, a table. However, don't use Employee
, because termination of an employee's contract causes a person to be an employee no longer. So employees are not immutable. To be an employee is a dynamic property, so model it as a relation.
The description will be printed in the functional specification, so please check that your definition is a complete sentence.
Concepts need not be defined. If you use a concept without a definition, Ampersand defines it for you (regardless of whether you defined it or not).