Generating Product-Lines of Product-Families

  • Authors:
  • Don Batory;Roberto E. Lopez-Herrejon;Jean-Philippe Martin

  • Affiliations:
  • -;-;-

  • Venue:
  • Proceedings of the 17th IEEE international conference on Automated software engineering
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

GenVoca is a methodology and technology for generating product-lines, i.e. building variants of a program. The primitive components from which applications are constructed are refinements or layers, which are modules that implement a feature that many programs of a product-line can share. Unlike conventional components (e.g., COM, CORBA, EJB), a layer encapsulates fragments of multiple classes. Sets of fully-formed classes can be produced bycomposing layers. Layers are modular, albeit unconventional, building blocks of programs.But what are the building blocks of layers? We argue that facets is an answer. A facet encapsulates fragments of multiple layers, and compositions of facets yields sets of fully-formed layers. Facets arise when refinements scale from producing variants of individual programs to producing variants of multiple integrated programs, as typified by product families (e.g., MS Office).We present a mathematical model that explains relationships between layers and facets. We use the model to develop a generator for tools (i.e., product-family) that are used in language-extensible Integrated Development Environments (IDEs).