Tags and keywords
At least the following SysML Blocks can be immediately elicited from the nouns (using here a convention that the name of the first letter of a Block must be capital):
- Fox
, Dog
Further aspects concerning the described Fox
and Dog
are then considered, as shown in the PAD in Figure 4, for which a Block Definition Diagram (BDD) has been used.
There are some attributes indicated by adjectives, which in SysML may typically be modelled (amongst other modelling choices) by value properties. It seems that a Fox
may be quick
(it will be assumed that this is taken from a «valueType» Enumeration SpeedKind
), a Fox may be brown
(from a «valueType» Enumeration ColorKind
) and that a Dog
may be lazy
(from a «valueType» Enumeration MoodKind
):
We are not explicitly told what a 'dog' or 'fox' are, but the modeller may use prior knowledge about the world and the context to conclude that they are types of animal, which is indicated using the «pa:assumed» keyword on a more general abstract block Animal
and thoroughly also on Generalizations from Fox
and Dog
to Animal
. (If the application of «pa:assumed» to such Generalizations leads to diagram clutter the stereotypes keywords need not always be shown.)
It is not always clear whether «pa:assumed» or «pa:implied» should be used in such cases, the main thing is that the modeller applies at least one of those stereotypes to indicate that an additional modelling interpretation was required.
This Snippet yields some general value properties:
- Animal::speed:SpeedKind
- Animal::color:ColorKind
- Animal::mood:MoodKind
And more specific redefined value properties with default values:
- Fox::speed:SpeedKind = quick {redefines speed}
- Fox::color:ColorKind = brown {redefines color}
- Dog::mood:MoodKind = lazy {redefines mood}
There are also Behaviors and Operations. It would seem that a Fox
can jump. Can any Animal
jump? Surely foxes don’t only jump over dogs. For now a more general operation is introduced, where a «pa:implied» jumpee
is any animal that another animal jumps over:
- Animal::jumpOver(jumpee:Animal)
There are InstanceSpecifications classified by Fox
and Dog
with Slot values corresponding to the described scenario:
- quick brown fox:Fox
- lazy dog:Dog
An Association named JumpsOver
is used to classify an anonymous link :JumpsOver
between the instances.
And in a context block there are corresponding part properties (using a slightly different naming convention) with an anonymous Connector typed by the same Association JumpsOver
:
- FoxDogPangramContext::quickBrown:Fox
- FoxDogPangramContext::lazy:Dog
Two States for a StateMachine within the abstract block Animal
have also been elicited:
- Jumping
, Lazing
As StateMachine Diagrams are always owned by an element that should not eventually remain under the Source Input Zone they should not be used as PADs. Elicit States instead by adding them via the /member
section of the ElementGroup specification dialog in MagicDraw.
Now some new model elements have been elicited they MUST be moved out of the Source Input Zone into the main project model area as shown next .