Someone, somewhere, who clearly has never done any actual systems modelling has for some reason decided that using an abstract Class or Block is something only someone who is beyond an 'expert' should concern themselves with. Wrong!
You have a Device
block. Ever met a "device" that is not an abstract device ? If it is in fact concrete (does something specific), you had better give it a more concrete name than just "device" and have it extend a Block Device
that is abstract.
One of the very first things - perhaps the very first thing - that anybody using UML or SysML or doing any domain modelling or code development of any kind should learn about is the importance of having at least one abstract base
To address this, and many other similar incorrect assumptions: