SysML ValueType

Block and ValueType Definitions


Ball.bdd: quantities with units in SysML (Version 1.1 style)

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)

ColoredThing.ibd: seeing value inside things

ColoredThing.ibd: seeing value inside things

The IBD of the ColoredThing can be used to represent its single color:Color value property, which in MD SysML is handled by a dedicated stereotype.

The classifier-level stereotype ValueType is only "showing through" from the type Color; this can be compared with the "translucency" software pattern, where a static (class-level) value for a field is assigned to all instances of a property, until an instance value is assigned. As soon as one assigns an instance-level (property-level) stereotype to a property in MagicDraw™ UML the classifier-level one will no longer "show through". Try it !

As we'll see, it can be handy to show value properties "structurally" in IBDs, especially when it comes to exploring value states.

ColoredThing.bdd: giving things some value

ColoredThing.bdd: giving things some value

We start with the simplest abstract Thing, and an abstract ColoredThing, (which happens to have blue1 as the default colour).

  • 1. Blue is a random choice, the set of props modelled used does not have white things or black things or something more neutral
Syndicate content