AOSD Conference  
Program Overview
Technical Program
Industry Track
Student Extravaganza
Conference Venue
Chicago Photos
Chicago History
Student Volunteers
AOSD-Europe Sponsorships

T7 : Feature Oriented Programming

Date Tuesday, March 15, 2005 morning (half day)
Presenter Don Batory, University of Texas at Austin
Level Advanced: Attendees are not required to have special background knowledge, but basic knowledge of aspect-oriented programming is helpful.


Feature Oriented Programming (FOP) is a design methodology and tools for program synthesis. The goal is to specify a target program declaratively in terms of the features that it offers, and to synthesize an efficient implementation that meets these specifications. 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.

AHEAD is a algebraic model of FOP that is based on stepwise development, a methodology for building complex programs by adding one feature at a time. The incremental units of design are program extensions that encapsulate the implementation of an individual feature. An AHEAD 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). Application designs are thus expressions---compositions of functions and constants---that are amenable to optimization and analysis. Expression evaluation is program synthesis. The distinguishing feature of FOP is that modular reasoning is equated with algebraic reasoning.

AHEAD is at the confluence of many areas of research: aspect-oriented programming (features implement "heterogeneous" crosscuts), compositional programming (customized programs are synthesized via feature composition), automatic programming (efficient programs are created by optimizing their FOP expressions), compositional reasoning (solving problems of program design and optimization by reasoning at the feature, not code, level), domain specific languages (expressing programs in domain specific notations), and generative programming (program synthesis).

This tutorial reviews the core results on FOP, including models and tools for synthesizing a consistent set of code and non-code artifacts by composing features (crosscuts), automatic algorithms for validating compositions, synthesizing, and optimizing individual programs and tool suites.

Attendees will learn key results to the future of generative programming, aspect-oriented software development, and automated software engineering. Many of the ideas presented are generalizations of common techniques used in object-oriented framework development and component-based software; common abstractions are elevated to the level of algebraic operators and algebraic manipulation, a form of program representation that is ideal for tools that automate software development.


Don Batory holds the David Bruton Centennial Professorship at The University of Texas at Austin. He received a B.S. (1975) and M.Sc. (1977) degrees from Case Institute of Technology, and a Ph.D. (1980) from the University of Toronto. He was a faculty member at the University of Florida in 1981 before he joined the Department of Computer Sciences at the University of Texas in 1983.

Edited by the AOSD Conference Committee.  Send comments to: