Figure R.23 - CharacteristicSpecification and Values : Class diagram
Created: 3/28/2022 3:51:09 PM
Modified: 6/8/2022 7:26:29 PM
Project:
Advanced:
The minCardinality and maxCardinality attributes are used to specify the number of values that can be associated with an instance of a RootEntity.  In the example the faceplate color would have a minCardinality of 1 and a maxCardinality of 1.  A minCardinality of 0 implies that a value does not have to be assigned to a characteristic.<br/>A valueType attribute exists for both CharacteristicSpecifications and CharacteristicSpecValue in order to have a mixture of value types for values.  For example, a CharacteristicSpecification may be enumerated by a combination of strings and integers.  The valueType of the CharacteristicSpecification is used if the valueType is the same for all CharacteristicSpecValue instances.<br/>An instance CharacteristicSpecValue can represent discrete value or a range of values:  <br/><ul>
<li>An example of a discrete value is the values that the CharacteristicSpecification “color” can take on.  </li><li>An example of a range of values is the range of operating temperatures under which the cable modem can operate.  A rangeInterval attribute for CharacteristicSpecValue defines whether the valueFrom and valueTo attributes are inclusive or not.  This is equivalent to adding an “operator” attribute for valueFrom and an “operator” attribute for valueTo, such as “#lt;=” or “#lt;”. The rangeStep attribute specifies that a range of values increases in steps, such as a range from 0 to 100 in steps of 5 with the resulting permitted values being 0, 5, 10, 15,…100. This complements the valueFrom, valueTo, and rangeInterval attributes. Previously there was no way to do so, and individual CharacteristicSpecValues had to be created.</li></ul>
In some models the value attribute and the range attributes are contained within separate subclasses of the CharacteristicSpecValue entity.  This was not done in the Characteristic model in order to simplify it.  Also, some models may contain unit of measure as a separate entity with a recursive association and an association class that is used to define conversion factors between various units of measure.  This was not done in the Characteristic model.  However, both the subclasses and unit of measure entity and association class could be modelled as extensions to the SID if desired.<br/>Some CharacteristicSpecifications are enumerated by a fixed value or set of values that remain constant for every instance of an Entity.  For example, the operating temperature range for the cable modem remains constant. The attribute canBeOverridden is used to indicate this. Additionally, the set of CharacteristicSpecValues may be open to extension as values are assigned to instances of EntityCharacteristics.  For example, there may be a desire to keep a list of userIDs as instances of CharacteristicSpecValues in addition to their existence as instances of CharacteristicValues. The extensible attribute is used to indicate that new instances of CharacteristicSpecValues can be added as instances of CharacteristicValues are created.<br/>More precisely:<br/><i>Values associated with CharSpecs can never be changed when an entity's CharValue instances are created. They are fixed but can be extended if the "extensible" attribute is true.</i><br/><b>example 1:</b><br/>In the case the xxxSpeccharUse is a temperature range #lt;-20, +50#gt;<br/><ul>
<li>If extensible = FALSE  =#gt; the range cannot be changed for any instance</li><li>If extensible = TRUE =#gt;  the range can be changed for a given instance into (as example)  #lt;-10, +40#gt;</li></ul>
<b>example 2:</b><br/>In the case the xxxSpeccharUse is a list of enum: e.g. Color with values Black and Blue <br/><ul>
<li>canBeOverriden = FALSE  =#gt; nothing can be changed, and instances will have both values Black and Blue </li></ul>
<ul>
<li>canBeOverriden = TRUE =#gt; one can chose Black OR Blue either for a given instance</li></ul>
<b>example 3:</b><br/>In the case the xxxSpecCharUse is a bandwidth range from 10 to 100 with a step of 10<br/><ul>
<li>If canBeOverridden = FALSE  =#gt; the range cannot be changed for any instance</li><li>If canBeOverridden = TRUE =#gt;  the range still cannot be changed for any instance (e.g. we cannot select a subrange, like from 40 to 70 with same step of 10) but we can pick up one value (like 20) or we can select a set of values (like 30 and 60) from the range. The number of choices depends on the Min and Max attributes (in this case, the Min is 1 and the Max is 2.</li></ul>
CharacteristicSpecification does not use the composite/atomic pattern. Instead there is the recursive CharacteristicSpecRelationship association that can be used to associate several CharacteristicSpecification.<br/>The CharacteristicSpecRelationship association can be used to represent/emulate a composite CharacteristicSpecification associated with several other CharacteristicSpecification. If used that way, the model does not restrict the possibility for the composite CharacteristicSpecification to have its own set of CharacteristicSpecValue, although it is not recommended.<br/>