This paper is about a paradigm shift from the current practice of manually searching for and adapting components and their
manual assembly to Generative Programming, which is the automatic selection and assembly of components on demand. First, we
argue that the current OO technology does not support reuse and configurability in an effective way. Then we show how a system
family approach can aid in defining reusable components. Finally, we describe how automate the assembly of components based
on configuration knowledge. We compare this paradigm shift to the introduction of interchangeable parts and automated assembly
lines in the automobile industry.
We also illustrate the steps necessary to develop a product line using a simple example of a car product line. We present
the feature model of the product line, develop a layered architecture for it, and automate the assembly of the components
using a generator. We also discuss some design issues, applicability of the approach, and future development.