TutorialGPCE6
Generative Programming and Component Engineering
Feature Modularity in Software Product Lines
Don Batory, University of Texas at Austin
Date
Tuesday, Oct 24, from 13:30 to 17:00
Abstract
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).