Tags and keywords
The slide shows a more realistic example of using an ElementGroup:
The quick brown fox jumps over the lazy dog.Just nine little words. Let's see how much we can elicit from those nine little words.
Let's look first at the elicited Types. There are blocks Fox
and Dog
, and some ValueTypes represented (as a modelling choice) using Enumerations: ColorKind
(carries literal 'brown'), SpeedKind
(carries literal 'quick), and MoodKind
(carries literal 'lazy').
Those enumerations have corresponding value properties: mood:MoodKind
(in Dog
), speed:SpeedKind
and color:ColorKind
(in Fox
), with defaults that correspond to the description in the pangram.
There also some instances quick brown fox
with classifier Fox
and lazy dog
with classifier Dog
, with their Slots populated with the defaults.
What's that abstract base block Animal
doing there? Nobody has even told us yet whether dogs and foxes are animals!
If we had additional information about animals we might know whether all animals have a mood, speed, and color. For now we'll assume this is correct, and so there are Generalizations from Fox
and Dog
to the abstract Animal
and the value properties have versions in the abstract Animal
with no defaults; the versions in Fox
and Dog
are re-definitions that carry specific defaults.
An Operation jumpOver(jumpee)
has also been placed "up" in the abstract Animal
from the start, where the 'in' Parameter jumpee
represents any Animal
that gets jumped over. The Operation is then redefined in Fox
to have the default for its jumpee
Parameter set to be the lazy dog
instance.
slither()
?
Such concerns are a matter for a fully-fledged parsing analysis recipe, and beyond the scope of this trail section on the basic SysML ElementGroup. The quick answer is that as one processes relevant text snippets from more domain source documents such wrinkles in the model do get ironed out well.
In any case, that's 14 elicited model elements already and a nice starting point for a robust model!
We'll look next at how the tool represents an ElementGroup in the model tree browser.