A configurator using structure and rules to provide a user interface.
According to one embodiment of the invention, a customizable product
class is created. The customizable product class includes a set of one or
more attributes to define the customizable product class. A component
product class is added to the customizable product class, where the
component product class is a subclass of the customizable product. A
customizable class rule is associated to the customizable product class,
the customizable class rule including expressions which provide
conditions on component products added to the customizable product. A
customizable UI is mapped to the customizable product class, where the
customizable UI provides access structure to the configurator.