Feature Modularity in Software Product Lines
By: Don Batory (University of Texas at Austin)
Feature Oriented Programming (FOP) is a design methodology and tools for program synthesis in software product lines. Programs are specified declaratively using features. FOP has been used to develop product-lines in widely varying domains, including compilers for extensible Java dialects, fire support simulators, network protocols, and program verification tools.
The unit of modularization in FOP are program extensions (aspects, mixins, 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 artifacts by feature module composition, automatic algorithms for validating compositions, and the relationship between product-lines, metaprogramming, and model driven engineering (MDE).
Duration: Half day
Level and Required experience
Basic concepts of object-orientation are assumed; no special background is necessary.
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).