Generative Programming and Component Engineering

Feature Modularity in Software Product Lines

Don Batory, University of Texas at Austin


Tuesday, Oct 24, from 13:30 to 17:00


Feature Oriented Programming (FOP) is a design methodology and tools for program synthesis in software product lines. Programs are specified declaratively in terms of features. FOP has been used to develop product-lines in widely varying domains, including compilers for extensible Java dialects, fire support simulators for the U.S. Army, network protocols, and program verification tools. The fundamental units of modularization in FOP are program extensions (aspects, mixins, or traits) that encapsulate the implementation of an individual feature. An FOP model of a product-line is an algebra: base programs are constants and program extensions are functions (that add a specified feature to an input program). Program designs are expressions - compositions of functions and constants - that are amenable to optimization and analysis. This tutorial reviews core results on FOP: models and tools for synthesizing code and non-code artefacts by feature module composition, automatic algorithms for validating compositions, and the relationship between product-lines, metaprogramming, and model driven engineering (MDE).

Level: Introductory

Required Knowledge

Basic concepts of object-orientation are assumed; no special background is necessary.

Speaker profile

Don Batory holds the David Bruton Centennial Professorship at The University of Texas at Austin. He is an Associate Editor of the Journal of Aspect-Oriented Software Development and was an Associate Editor of IEEE Transactions on Software Engineering (1999-2002).