Technical Program
  Invited Speakers
  Technical Papers
  Practitioner Reports
Educators' Symposium
Doctoral Symposium
Student Research Comp.
Turing Lecture
Social Events
Week at a Glance
Final Program (1.5M .pdf)

Find in Program


view, help

"Feature Oriented Programming and Product-Lines"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
  > Technical Program > Tutorials > All Tutorials

 : Monday Morning Tutorials (8:30 - 12:00) : Monday : Methodologies

Feature Oriented Programming and Product-Lines

Monday, 8:30, half day


Don Batory, University of Texas at Austin:  Don Batory holds the David Bruton Centennial Professorship at The University of Texas at Austin. He is an Associate Editor of the forthcoming Journal of Aspect-Oriented Software Development. He was an Associate Editor of IEEE Transactions on Software Engineering (1999-2002), Associate Editor of ACM Transactions on Database Systems (1986-1992), a member of the ACM Software Systems Award Committee (1989-1993; Committee Chairman in 1992), and Program Co-Chair for the 2002 Generative Programming and Component Engineering Conference. He has given numerous lectures and tutorials on product-line architectures, generators, and reuse, and is an industry consultant on product-lines.

Tutorial number: 21

Feature Oriented Programming (FOP) is both a design methodology and supporting tools for program synthesis. The goal is to specify a target program in terms of the features that it offers, and to synthesize an efficient program 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 step-wise development, a methodology for building programs by adding one feature at a time. The incremental units of implementation/design are refinements that encapsulate the implementation of an individual feature. An AHEAD model of a product-line treats base programs as constants and program refinements as functions (that add the specified feature to an input program). Application designs are thus expressions—compositions of functions and constants—that are amenable to optimization and analysis.

This tutorial reviews basic results on FOP, including general models and tools for synthesizing a consistent set of code and non-code artifacts by composing refinements (cross-cuts), automatic algorithms for validating compositions, synthesizing product-lines of product-families (e.g., tool suites), and automatic algorithms for optimizing application designs (expressions).

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