Database Reference
In-Depth Information
Figure 5: Example HFSM model
The window in the lower right corner shows the attributes, preferences and properties
of the selected object or objects. The window on the top right is the model browser. It shows
the hierarchy of the whole project. Notice that in this case it shows parts GuardCondition,
Main or UniqueName, which are not shown in the main window. The reason is that those
parts are shown in different aspects of the Main model. GuardCondition is an attribute of
Transition captured in the Attributes aspect, Main is the single aspect in our HFSM modeling
language modeled in the Visualization aspect, while UniqueName is a constraint specifi ed
in the Constraint aspect. This constraint specifi es that no two substates of a state can have
the same name:
self.parts(State)->forAll(x, y | x.name = y.name implies x = y)
For this particular constraint the Close Model event seems to be the best candidate for
enforcement. Whenever the parent model is closed the constraint will be checked.
The meta-modeling environment has its own decorator. It is capable of visualizing the
UML class diagram notation. It displays the names, stereotypes and attributes of all classes.
It shrinks or expands the box to fi t the displayed text. This particular decorator is about 1500
lines of C++ code, most of which is the baseline code shared among all decorators.
The meta-modeling environment has a good example for an add-on. OCL syntax
checking is a very specifi c functionality that is not part of the baseline GME program.
Search WWH ::




Custom Search