Quality Modeling and Optimization

Back to Intro

Quality Attributes

abstract Feature
cost -> integer
abstract ComfortFeature : Feature
comfort -> integer
abstract FuelFeature : ComfortFeature
fuel -> integer

Attributed Feature Model

abstract Car
ABS : Feature ?
[ cost = 2 ]
CC : FuelFeature ?
[ fuel = 1 ]
[ comfort = 3 ]
[ cost = 4 ]
ACC : FuelFeature ?
[ fuel = 2 ]
[ comfort = 6 ]
[ cost = 3 ]
[ FCA ]
xor Transmission
Automatic : FuelFeature
[ fuel = 2 ]
[ comfort = 2 ]
[ cost = 3 ]
Manual : FuelFeature
[ fuel = 0 ]
[ comfort = 1 ]
[ cost = 2 ]
FCA : FuelFeature ?
[ fuel = 2 ]
[ comfort = 4 ]
[ cost = 5 ]
xor Sensor
Radar : Feature
[ cost = 2 ]
Lidar : Feature
[ cost = 4 ]
xor Alert ?
Haptic : ComfortFeature
[ comfort = 4 ]
[ cost = 2 ]
Audible : ComfortFeature
[ comfort = 2 ]
[ cost = 1 ]
total_cost -> integer = sum Feature.cost
total_comfort -> integer = sum ComfortFeature.cost
total_fuel -> integer = sum FuelFeature.cost

Partial Configuration

aCar : Car

Optimization objectives

<<min aCar.total_cost>>
<<min aCar.total_fuel>>