2.6 Backbones
3.1.1 High & Low Level Configuration
Automotive configuration (and product configuration in general) can be divided into high
level configuration (HLC) and low level configuration (LLC). The HLC mainly describes
the equipment options of a vehicle visible to a customer, e.g., whether the vehicle has a navigation system. In contrast, the LLC describes the actual physical parts used to build the vehicle, i.e., the display, control unit, cables and software parameters actually used for a navigation system.
High Level Configuration
The HLC mainly consists of equipment options, groups of options with certain restric- tions and rules describing dependencies between options. We consider the HLC on the product type level (third level of the product hierarchy).
Definition 23. (Equipment Option) The set O(t) consists of all (equipment) options
for a product type t ∈ T . An option represents a vehicle property. A selected option means that the property is active, otherwise the property is disabled.
Any vehicle must contain at least one engine (hybrid electric vehicles contain more than one). The engine options are grouped with an at least one numerical restriction. For non-hybrid vehicles we may restrict the group of engine options with exactly one.
Definition 24. (Groups) Let t ∈ T be a product type. A group is a set of options
G ⊆ O(t) with a numerical restriction k ∈ N, with k ≤ |G|, such that either (i) at least
(or exactly) k options of G must be selected, (ii) at most (or exactly) k options of G must be selected, or, (iii) exactly k options of G must be selected. The set of all groups of a product type t is denoted by G(t). We denote a group of G(t) by a triple (G, B, k) with B ∈ {<, ≤, >, ≥, =}. A valid vehicle has to satisfy all group restrictions.
Dependencies between options are described by (arbitrary) Boolean formulas which are summarized in the set of rules. For example, the rule (xa∧ xb) → (xc∨ xd) means “If
options a and b are selected, then option c or d (or both) has to be selected”.
Definition 25. (Rule) The set R(t) consists of all rules for a product type t ∈ T . A rule
is a Boolean formula. The set R(t) describes the dependencies between the options O(t). A valid vehicle has to satisfy all rules.
For a product type t ∈ T a (valid) vehicle is a subset of options S ⊆ O(t) such that all group restrictions and all rules are satisfied when S is interpreted as enabled options and O(t) \ S is interpreted as disabled options.
Remark 5. Some car manufacturers allow arbitrary Boolean formulas for the set of
rules R(t). Some car manufacturers, however, use a more structured formula language, e.g., only allowing clauses as rules. In this thesis we allow arbitrary Boolean formulas.
Example 18 shows a simplified example of a HLC with option groups and rules for automotive configuration (cf. [Walter et al., 2013]).
Example 18. (Simple HLC Example) Table 3.1 shows a simplified list of groups with their members and restrictions.
Table 3.1: Option groups with restrictions
Group Members Restriction
engine e1, e2 = 1 gearbox g1, g2 = 1 control unit c1, c2, c3 = 1 dashboard d1, d2, d3, d4 = 1 navigation system n1, n2, n3 ≤ 1 air conditioner ac1, ac2 ≤ 1 alarm system as1, as2 ≤ 1 radio r1, r2, r3 ≤ 1
Table 3.2 shows the dependencies between options by rules given as implications. For example, the implication g1 → e1 ∨ e2 means “If gearbox g1 is selected, then engine e1
or e2 has to be selected”.
Table 3.2: Rules: Dependencies between options Premise Conclusion g1 e1∨ e2 n1∨ n2 d1 n3 d2∨ d3 ac1∨ ac2 d1∨ d2 as1 d2∨ d3 r1∨ r2∨ r3 d1∨ d4
The assignment β = {e1, g1, c1, d3, as1} represents a vehicle configuration since all rules
Low Level Configuration
The LLC describes the physical parts which are actually used to build a vehicle. In the context of automotive configuration the LLC for parts is called bill of materials (BOM). The BOM is a list of structure nodes, where each structure node consists of alternative material nodes (representing physical parts). Each structure node represents a compo- nent of a vehicle, e.g., there is a structure node for the steering wheel, the radio, the input parameters of the electronic control unit, etc. The material nodes in turn rep- resents the existing alternative parts, e.g., different steering wheels. The selection of the material nodes is controlled by selection constraints (Boolean formulas). A vehicle configuration has to select exactly one material node of each structure node. The BOM is sometimes called 150% BOM since it stores the parts of a product type (or product series) and not only the parts of a single vehicle.
Definition 26. (Bill of Materials) The components of a bill of materials are defined as
follows:
a) (Material Node) A material node represents a physical part. A material node m has an an unique identifier ident(m) ∈ N and a selection constraint con(m). The selection constraint is a Boolean formula and evaluates to true iff the material node is selected.
b) (Structure Node) A structure node represents a component of a vehicle. A struc- ture node N consists of a unique identifier ident(N ) ∈ N and a list of alternative material nodes matNodes(N ) = (m1, . . . , mk).
c) (Bill of Materials) A bill of materials (BOM) B consists of a list of structure nodes strNodes(B) = (N1, . . . , Nl). The set of covered product types by B is denoted
by types(B) ⊆ T .
A material node from a bill of materials has actually more properties, e.g., a part number, a creation date, a development status, a (human readable) description. We left these properties out because for the purpose of verification they are not (directly) relevant. The reason why a bill of materials B covers many product types, denoted by the set types(B) ⊆ T of all product types covered by B, is that a bill of materials is typically not documented for one product type only, but for a product series or product line. Since product types of the same product series share many commonalities it is less documentation work to have a single bill of materials than having a bill of material for each product type.
In order to determine the selected parts for a vehicle, the selection constraint of every material node of the BOM has to be evaluated with respect to the selected options. If the selection constraint evaluates to true the corresponding part is selected for the vehicle, otherwise not. The process of determining the selected parts is called BOM
Example 19. (BOM) Based on the simplified HLC of Example 18 Table 3.3 shows a simplified example of a BOM. For example, the material nodes of structure node 10 are matNodes(10) = (101, 102, 103).
Table 3.3: Simple BOM
Structure Node ID Material Node ID Constraint
10 101 e1∧ g1 10 102 e1∧ ¬g1 10 103 ¬e1∧ ¬g1 20 201 g1∨ e2 20 202 e1∧ g1∧ d2 30 301 g1∨ d2 30 302 e1∧ g1∧ d2 30 303 e1∧ g1∧ ¬d2
The resolution of this BOM for vehicle β = {e1, g1, c1, d3, as1} of Example 18 yields to
the selection of material nodes 101, 201, 301 and 303. The example configuration selects two material nodes from structure node 30 which is an overlap error. In Section 3.2 we show how a BOM can be tested for overlap errors and for other misbehavior.
Remark 6. (LLC for Software Configuration) The term “low level configuration” is not
restricted to the BOM. For example, low level configuration is also used for software configuration for control units within a vehicle. Similar to the BOM there exist variant
tables containing structure nodes. Each structure node represents a certain part of
the input parameter string. A structure node contains alternative parameter nodes. Exactly one parameter node must be selected for each vehicle, i.e., exactly one parameter node constraint must evaluate to true for a vehicle configuration. For more detailed information about the software configuration at the German car manufacturer BMW AG of control units see for example Section 3.3.2 in [Zengler, 2014]. In this thesis, we focus on BOM analyses only.