COOM Profile: N-OUT¶
Synopsis¶
The COOM N-OUT profile considers calculations of numerical values, that do not constrain the solution space.
Since no values of other feature elements depend on the outcome of these computations, the calculation can be considered to be outside the solution space.
The use of numerical features in require
-constraints or combination tables
will exit the N-Out profile.
A possible application of the N-OUT profile is the calculation of a price or weight of the product once the user entered a valid configuration.
Building Blocks¶
Example: Weighty Bike¶
The product WeightyBike
focuses on the calculation of the totalWeight
that is based on the weight of the wheelSize
and a fixed weight of the frame (frameWeight
).
The computation of the totalWeight
uses wheelWeight
and frameWeight
.
The result is not used in any constraint, which makes it independent from the solution space of possible valid configurations.
product {
WeightyBike weightyBike
}
structure WeightyBike {
WheelSize wheelSize
Weights weights
}
structure Weights {
num /gr wheelWeight
num /gr frameWeight
num /gr totalWeight
}
enumeration WheelSize {
// Attribute definitions
attribute num/inch size
attribute num/gr weight
// Choice values of the type
W14 = ( 14 , 550 )
W16 = ( 16 , 550 )
W18 = ( 18 , 600 )
W20 = ( 20 , 650 )
W22 = ( 22 , 700 )
W24 = ( 24 , 800 )
W26 = ( 26 , 900 )
W28 = ( 28 , 1000 )
}
behavior Weights {
imply frameWeight = 10000
imply wheelWeight = 2 * root.weightyBike.wheelSize.weight
imply totalWeight = frameWeight + wheelWeight
}