Prof. Don Batory
Department of Computer Sciences
University of Texas at Austin
Austin, Texas, 78712 U.S.A.
batory@cs.utexas.edu
http://www.cs.utexas.edu/~dsb/

 

Feature Modularity in Software Product Lines
Feature Oriented Programming (FOP) is a design methodology and tools for program synthesis in software product lines. Programs are specified declaratively using features, where a feature is an increment in program functionality. FOP has been used to develop product-lines in widely varying domains, including compilers for Java dialects of Java, fire support simulators, network protocols, and program verification tools.
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.
Lectures will review core results on FOP: models and tools for synthesizing code and non-code artifacts by feature composition, automatic algorithms for validating compositions, and the relationship between product-lines, metaprogramming, and model driven design (MDD).