Syntropy Type view Object diagrams/mechanisms Statecharts Logic Value types Glossary

Syntropy - Type View

Basic Notation

Summary of type view notation


Associations

Association multiplicity adornments
Symbol Name Placement Restrictions Comment
(none)SingleDestinationExclusive with Multiple and Optional Constrains multiplicity of the dest. to be exactly one. Navigating the association yields an object of the destination type
MultipleDestinationExclusive with Single and Optional Constrains multiplicity of the destination to be zero or more. Navigating the association yields a collection of objects of the destination type
OptionalDestinationExclusive with Single and Multiple Constrains multiplicity of the destination to be zero or one. Navigating the association yields an object of the destination type or nil
[m..n]RangeDestinationUsed only with Multiple Constrains multiplicity of the destination to be in range m to n
[m]RangeDestinationUsed only with Multiple Constrains multiplicity of the destination to equal m
[m+]RangeDestinationUsed only with Multiple Constrains multiplicity of the destination to be in range m to infinity

Ordering adornments on multiple associations
Symbol Name Placement Comment
(none)SetDestination Destination collection is unordered, with no duplicates
[bag]BagDestination Destination collection is unordered, but with duplicates allowed
[seq]SequenceDestination Destination collection is ordered
[...]SortedDestination Destination collection is sorted according to some predicate. A rigorous predicate has the form:
[a, b: Type; expression]
where a comes before b if the expression is true

Other adornments
Symbol Name Placement Restrictions Comment
QualifierSourceNormally replaces a multiple Defines a function, q, that selects from a multiple association using a parameter of type T. The destination can still be multiple, indicating that the parameter selects more than one object. If the function is not total over T, the destination should be optional
AggregationSource(none) Fixes source membership of an association for the life-time of the destination. The life-time of the destination is contained within the life-time of the source. If the source is destroyed, the destination is destroyed
/DerivedAnywhere on line, going across it(none) This association is logically derivable from others. Normally accompanied by a derivation expression
VisibleDestinationImplementation model only The association is definitely navigable from the source to the destination
?UndefinedDestinationNo other adornments allowed The association from source to destination is not fully defined
XBlockedDestinationNo other adornments allowed The association is not navigable from source to destination

Constraints between associations
Constraints between associations are shown by drawing a dashed or faint arrow
ConstraintMeaning
The membership of the destination association at the tail of the arrow is a subset of the membership of the destination association at the head of the arrow. The linked associations must have a common source
Equivalent to subset of but used when the association at the tail of the arrow identifies a single object
The association at the tail of the arrow is redefining the inherited association at the head

Special invariants
These special invariants appear in type boxes to constrain the values of properties
InvariantMeaning
abstract There can be no objects that conform to this type without also conforming to a sub-type of this type
const property The value of this property is fixed throughout the life-time of each object conforming to this type
optional property This property can take the value nil
sync This type provides the non-exclusive contract with clients, and so guarantees not to raise wrongState exceptions, but may block callers (Implementation model only)
unique property The value of this property will be different for every object in the model conforming to this type
value This type is a value type, and so can have no navigable associations coming from it


Specification models

In specification models, the type names shown in type boxes in type views have a -S suffix.

Implementation models

In implementation models, the type names shown in type boxes in type views have a -I suffix. Implementation model type views do not show properties in type boxes. Instead, type boxes may have two headings, Observers: and Updaters:, under which operations provided by the type are listed.

Synchronising types have another heading, Sync:, where expressions controlling the availability of operations are listed. A synchronising expression has the general form:


Comments, corrections to jdaniels@cix.co.uk