Product line implementation technologies. Component technology view
Nearly all software organizations today develop and maintain more than a single product. This holds for organizations that develop tailored systems individually for single customers, as well as for organizations that develop products for a mass market. The products developed by an organization typically are similar applications in the same application domain. Hence, these products share some common characteristics and thus can be viewed as a software product line. To implement a product line approach in practice, special technologies are required that effectively support the identification of reusable artifacts, as well as explicit means for capturing and controlling commonalities and variabilities. The focus of the PoLITe project are product line technologies at the implementation level. PoLITe defines three categories of implementation technologies [MAL+02], namely configuration management, component technologies, and generative features of programming languages (including generators). This report summarizes the product line implementation aspects in the component technology dimension. The report first presents the term "component technologies" and its role in the PoLITe context, surveys the actual distribution of component technologies in practice. It then establishes a component model that facilitates the seamless integration of component technologies in a model-driven implementation process. This implementation approach is subsequently embedded in a product line implementation process. Finally, the application of the principles is illustrated by a case study using J2EE/Enterprise Java Beans as component technology.