A SysML ValueType
is a stereotype of UML DataType
that can be used to type a wide range of basic structural elements by their values, where these types can also include information about associated quantity kinds (via a QuantityKind
tagged value) and units of measure (via a Unit
can be applied to type many structural elements in a SysML model including the following:
- Blocks: Value Properties, Operation parameters & return values, atomic Flow Ports
- Associations/Connectors: ItemFlows, Item properties
- Activities: ObjectNodes, Pins, Activity Parameters
- ConstraintBlocks: Constraint parameters
SysML defines three kinds of ValueTypes:
- Primitive ValueType has no internal structure (no Value Properties of its own). SysML pre-defines four Primitive ValueTypes (String, Boolean, Integer, Real) and you can define more as needed.
Notation: Rectangle with stereotype «valueType» preceding the name.
- Structured ValueType has internal structure, defined as Value Properties, and can be recursively nested.
Notation: Rectangle with stereotype «valueType» preceding the name, with optional compartment for Value Properties.
- Enumerated ValueType is a list of literal string values, equivalent to a UML Enumeration.
Notation: Rectangle with stereotype «enumeration» preceding the name, with optional compartment for literal string values.
Consequently, whereas UML was limited to simple and structured DataTypes such as «dataType»Real
and «dataType» DateTime
, SysML is able to specify ValueTypes with QuantityKinds and Units. For example, «valueType» CelsiusTemp
can be defined as a subtype of «valueType» Real
, where QuantityKind
= Thermodynamic Temperature, Unit
= Centigrade Degree. «valueType» TimeDate
can be defined with properties: year
= Time, Unit
= Year]; month
= Time, Unit
= Month]; …SysML + UML 2 Mixed Language Usage:
Although SysML was originally designed to be used in a complementary manner with UML 2, where SysML ValueTypes could supplement UML 2 DataTypes, the SysML 1.3 minor revision has merged UML 2 DataTypes with SysML ValueTypes. See SysML Revision Task Force (SysML RTF) Issue 13345: Merge UML DataType into SysML ValueType
Note that the change above does not preclude SysML + UML 2 mixed language usage in the same model. However, serious practitioners are encouraged to systematically partition the language elements in different model «view»’s and/or Packages. For example, use SysML model elements to specify the Functional Analysis
«view» and UML 2 model elements to specify the Software Design
in the System Design