Terms relating to the Configuration Modelling
Configuration Modelling
Configuration Modelling is the process of developing a Configuration Model.
The following steps are necessary:
- Requirement analysis
- Analysing the products or systems to be configured
- Defining the Attributes with their Values and relationships.
- Creating the Configuration Rules
The Configuration Model Developer (CMD) is available as a comprehensive development environment.
Attribute
An Attribute in general is a specific representation of a characteristic of a real-world product. The naming in upper camel-case notation is based on the names of the real-world characteristics. The basic typing takes place in: Choice Attribute, Numeric Attribute and Boolean Attribute, according to the value types "String", "Number" and “Boolean”. The name of an Attribute serves as an identifier. In the context of the Configuration Engine there is a special Attribute type "Component". The value of a Component Attribute is a reference to a Component Configuration Model.
Exemplary Attribute Names: AutomobileType, Colour;
Attribute Value
An Attribute Value is a specific representation of a discrete Value of a characteristic of a real-world product. You can also put it this way: An Attribute Value is a discrete Value either of an Choice Attribute or a Numeric Attribute or a Boolean Attribute. Concerning an Choice Attribute one or more Values can be active (chosen) depending on the Cardinality. In case of a Component Attribute the value is a reference to a Component Configuration Model.
Cardinality
The Cardinality defines how many Attribute Values of a specific Attribute must be (Lower Bound) and can be (Upper Bound) included. Cardinalities refer to an interval of non-negative whole numbers. An Attribute with Cardinality [0 .. 1] is said to be optional. A mandatory Attribute has the Cardinality [1 .. 1] or [1 .. n]. A multi-valued Attribute is an Attribute with an upper limit greater than 1 ([0 .. n] or [1 .. n]).
Choice Attribute
A Choice Attribute is assigned one or more Values from an Enumeration.
Exemplary declaration of a Choice Attribute in JSON notation:
{
"attributeId": "AutomobileType",
"lowerBound": 1,
"upperBound": 1,
"attributeValues": [
{
"attributeValueId": "Car"
},
{
"attributeValueId": "Truck"
}
]
}
Numeric Attribute
A Numeric Attribute is assigned one discrete numerical Value.
Exemplary declaration of a Numeric Attribute in JSON notation:
{
"attributeId": "CO2Emissions",
"isDecisionRequired": false,
"min": 0,
"max": 300,
"decimalPlaces": 0
}
Boolean Attribute
A Boolean Attribute is assigned one of two discrete Values.
Exemplary declaration of a Boolean Attribute in JSON notation:
{
"attributeId": "Tubeless",
"isDecisionRequired": true
}
Component Attribute
Component Attribute is a special Attribute type in the context of the Configuration Engine. The value of a Component Attribute is a reference to a Component Configuration Model.
Attribute Relations
Attribute Relations can be used to specify, which Decisions are to be respected for which Attribute.
Configuration Model
A Configuration Model consists of Attributes, Attribute Values, Constraints and optional associated Usage Rules. It is the basis for solving a configuration task. A Configuration Model can inherit model elements from other Configuration Models.
Root Configuration Model
The Root Configuration Model is a Configuration Model. In a set (package) of referenced Component Configuration Models and Shared Configuration Models it serves a the starting point for processing by the Configuration Engine. The name of the Root Configuration Model must be specified in the body of the POST request for Session creation.
Component
Component is in the modelling context a synonym for Component Configuration Model.
Component Configuration Model
A Component Configuration Model is a Configuration Model. One Component Configuration Model can be referenced in others. A set of referenced Component Configuration Models can be used to map component based product or system structures of the real world. You can also put it like this: If the name of a Configuration Model is used as the Value of a Component Attribute contained in another Configuration Model, then this model is a Component Configuration Model or serves as such one.
Constraint
A Constraint is generally a restriction regarding the Values of an Attribute. It results from the Cardinality of an Attribute and/or from Rules regarding the Attribute respectively the Attribute Values.
Configuration Rule
A Configuration Rule is a formal representation of a relation between characteristics (Attributes) of real-world products respectively their Values. The notation can be done in text (Textual Rule) or in a matrix form (Tabular Rule).
Logical Expression
A Logical Expression is formed by combining logical operands with logical operators (comparisons, negation, conjunction, disjunction) and brackets. A Logical Expression evaluates to either “true” or “false".
Shared Configuration Model
A Shared Configuration Model is a Configuration Model. It can be referenced in Configuration Models. Through such a reference, the model elements of the Shared Configuration Model can be used in any number of Configuration Models. The purpose is to avoid redundancies.
Tabular Rule
A Tabular Rule is a table representation of a relation between characteristics of real-world products respectively their values. Example:
Property 1 | Property 2 | Property Value 1 | Property Value 2 | Rule type |
---|---|---|---|---|
AutomobileType | RimSize | Car | 25 inch | Exclusion |
AutomobileType | RimSize | Car | 27 inch | Exclusion |
AutomobileType | RimSize | Truck | 18 inch | Exclusion |
Textual Rule
A Textual Rule is a textual representation of a relation between characteristics of real-world products respectively their values. A Domain-Specific Language (DSL) is used for the notation. Textual rules are used to express exclusions or requirements using complex Logical Expressions. Example: IF AutomobileType = “Truck” THEN RimSize >= 20 inch
Usage Rule
An Usage Rule describes in a HCA-specific notation the use of a Configuration Model respectively of Configuration Model elements in relation for example to user roles and time periods. For example, it can be declared for which user role from which date or up to which date the entire Configuration Model or individual model elements (Attributes, Attribute Values) are available.
Value
Value is used as a synonym for Attribute Value.
Value Assignment Possibilities
There are two possibilities regarding the Value assignment of Attributes of the type Boolean, Numeric or Component: "Mandatory" and "Optional".
- "Mandatory" means that an assignment of a Value must be done. The Value can be - depending on the type of the Attribute - a numeric, a boolean or a reference to a Component Configuration Model.
- "Optional" means that such an assignment can - but not must - be done.