G6 (GPCE): Feature Modularity in Software Product Lines
Tuesday, Oct 24, from 13:30 to 17:00, E142
Feature Oriented Programming (FOP) is a design methodology and tools for program synthesis in software product lines. Programs are specified declaratively in terms of features. 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. The fundamental units of modularization in FOP are program extensions (aspects, mixins, or traits) that encapsulate the implementation of an individual feature. 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. This tutorial reviews core results on FOP: models and tools for synthesizing code and non-code artifacts by feature module composition, automatic algorithms for validating compositions, and the relationship between product-lines, metaprogramming, and model driven engineering (MDE).
Introductory: Some familiarity with modern OO languages such as Java or C#, and with Java concurrency idioms (threads, locks, volatiles, java concurrency utilities).
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 Journal of Aspect-Oriented Software Development and was an Associate Editor of IEEE Transactions on Software Engineering (1999-2002).