Tags and keywords
We are not scared to use Generalization or even multiple inheritance when domain modelling in SysML together with abstract base Blocks:
Many, many years ago, before there were DVDs or Blurays, before there were USB sticks or interweb downloads, there was a technology called the 'VHS player' that used magnetic tape, cassettes for which you could rent from a shop with movies recorded on it, or which you used to record shows from the TV to watch later.
Note how block VhsPlayer
is abstract; that's because although most VHS units could play media, they could (mostly) also all record.
The block UsbDrive
- which might also have been made abstract, but for now is concrete - is both a RemovableRecordingMedium
and a UsbPeripheral
, which pattern is sometimes called a "mix-in" (and is NOT an anti-pattern in SysML).
A quick word on Block naming conventions
Webel Best Practice offers some alternatives here. The blocksDvdPlayer
and VhsPlayer
could have been named DVD_Player
and VHS_Player
consistent with:
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.
Or HardDrive
and UsbDrive
could have been named Drive_hard
and Drive_USB
consistent with: