This research extends work in the area of Generative Programming, which explains how programs in a domain are designed from features. A generative programming model is both constructive and predictive because it tells us how to synthesize programs in a domain with particular properties. A program's design can be specified as a base program plus a set of features, which are units of program functionality. Programs consisting of features can be formalized mathematically as an algebra with suitable composition operators. Research in generative programming shows that evaluation of algebraic expressions synthesizes the target program, and expression optimization optimizes the program's design.

Feature interaction occurs when one or more features modify or influence another feature. We focus on interactions that are static and structural: how a feature influences (or changes) the source code of another feature. Our research contributes to a Science of Design by showing how feature interactions obey algebraic laws that lead to highly structured programs that are amenable to synthesis, optimization, and evolution. We will demonstrate practical applications of our work: (1) refactoring Java legacy applications into feature-based designs (so that features can be more easily added and removed), and (2) realizing a form of on-demand modularization, where a query specifies a particular concern and our theory tells us how to extract software that satisfies that query.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
0438786
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
2004-12-15
Budget End
2008-11-30
Support Year
Fiscal Year
2004
Total Cost
$414,713
Indirect Cost
Name
University of Texas Austin
Department
Type
DUNS #
City
Austin
State
TX
Country
United States
Zip Code
78712