Click on the image below to view it full size in an image viewer !
Ball.bdd: quantities with units in SysML (Version 1.1 style)

Now we come to a concrete block class, a Ball, with a radius.

Until now, to represent quantities with units, developers tended to misappropriate Unified Modeling Language™ (UML™) with tricks, such as indicating the units of a quantity with in the name of a Property, such as radius_cm, shown here with the additional Real introduced by Systems Modeling Language™ (SysML™).

With SysML, there are (or better said, there were in SysML1.1) 2 basic strategies for using using its ValueType, Unit, and Dimension specifications to represent value properties with units:

  1. Type a value property by a ValueType that is named after the symbol. In the example here, a custom ValueType mm with custom unit Millimeter has been introduced.
  2. Type a value property by a ValueType that represents a kind of quantity, such as a ClockFrequency, which could be used throughout, for example, an embedded real-time system, and might carry units Gigahertz. (We won't examine this one further yet.)

The SysML1.1 ValueType, Unit, Dimension metamodel (in MD SysML 16) is shown at the bottom of the diagram (and as always in these tutorials, the Dependencies shown are only illustrative).

There has been a lot of heated debate about the SysML metamodel for quantities, not least involving me (Dr Darren, a PhD astrophysicist and nuclear scientist, with a lot of experience using quantities in engineering and science), and I've presented a case for introduction of a dedicated Quantity in SysML, partly met by the newly introduced QuantityKind of SysML1.2, which in part replaces the old *Dimension. Interested readers should examine: Gallery: OMG SysML RTF: proposal by Darren Kelly for Quantity profile/metamodel [WORK IN PROGRESS] (from 2008)