Skip to content

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

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
}