An ElementGroup used for basic Parsing Analysis model element elicitation: Example 2

Gallery
Tutorial
The slide shows a more realistic example of using an ElementGroup:
Click on the image to view it full size
The parsing analysis criterion here is this well known pangram:
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.

What about snakes? Is a snake an animal? And if so, can a snake jump over other animals? And what about 'slithering' as an operation? Can a fox or dog slither like a snake? Can all animals 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.
Up next
Notes
Snippets (quotes/extracts)
Visit also
Visit also (backlinks)
Related slides (other tutorials)
Related slides (other tutorials, backlinks)