|
Go back to
Tutorials Home |
T7: Feature Oriented Programming for
Product-Lines |
Presenters: - Don
Batory, University of Texas at Austin
Date:
Tuesday, March 18, afternoon (half
day)
Level: Introductory
Attendees should
have basic knowledge of Java or other object-oriented
programming languages. No prior experience with feature
oriented programming is required.
Abstract:
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, high-performance network protocols, and program
verification tools.
GenVoca is a simple mathematical
model of FOP that is based on step-wise refinement, 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. GenVoca models of product-lines treat
programs as values and refinements as functions (that map
input programs to output programs with augmented features).
Application designs are equations --- compositions of
functions and constants --- that are amenable to optimization
and analysis.
FOP and Aspect Oriented Programming (AOP)
are complementary, as both aspects and feature refinements
encapsulate cross-cuts, i.e., fragments of multiple classes.
The primary difference is emphasis: FOP follows more of a
traditional OO design approach to define cross-cuts, which
focuses on how algorithms compose to build complete systems,
rather than the AOP emphasis on join-points, point-cuts, and
advice to modify existing programs.
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 refinement compositions,
synthesizing product-lines of product-families (e.g., tool
suites), and automatic algorithms for optimizing application
designs (equations).
Biographies:
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. 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), Program Co-Chair for the 2002 Generative
Programming and Component Engineering Conference, the Program
Chair for the 1995 International Conference on Software Reuse,
and the 1999 Workshop on Software Reuse. He has given numerous
lectures and tutorials on product-line architectures,
generators, and reuse, and is an industry consultant on
product-lines.
|
Contact |
For additional information,
clarifications, questions, or special requirements, please
contact the AOSD 2003 Tutorial Chair: Eric Eide
(tutorials@aosd.net). |
| |
|