Tags and keywords
We've seen in a previous slide some of the possible compartments on a Block symbol in a BDD; now it's time to see some Relationships between more than one Block on a BDD. Our example problem for this part of the trail is a Home Entertainment System, starting with the TV:
The Block
TV
is abstract:
It has Associations to other Blocks Speaker
and Screen
that are likewise abstract:
Webel Best Practice: If an abstract Block or Class in a domain model has Associations to Blocks or Classes that are not also abstract, it's often a hint that you have not identified a correct abstraction layer.
The Speaker
and Screen
are part properties owned by the TV
block:
It is specified here that the TV
has at least one [1..*]
internal speaker:Speaker
and exactly one screen:Screen
according to this rule:
SysML-1.6: 'SysML defines defaults for multiplicities on the ends of specific types of associations. A part or shared association has a default multiplicity of [0..1] on the black or white diamond end. A unidirectional association has a default multiplicity of 1 on its target end.'
The abstract block TV
is a generalization of the concrete specializations block HD_TV
and block UHD_TV
. (In reality of course one might have variations on HD and UHD TVs, but making them concrete here is sufficient for this example.)
The following Webel Best Practice block naming option has been used here (we'll see some other alternatives later):
Webel Best Practice: When using acronyms in names of Classifiers either treat them as a word 'TlaLikeThis' or suffix with an underscore 'TLA_LikeThis', except at the end of the name 'LikeThisTLA' is admissable.
And in case there are any inheritance-loathing software elephants in the room:
So extend happily away (at least for now)!