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 tagged value).
ValueTypes 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 [
QuantityKind = Time,
Unit = Year];
month [
QuantityKind = 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 «view».