A method and apparatus system for generating a configurator. 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 UI is
mapped to the customizable product class, where the customizable UI
provides access structure to the configurator.