Martin Erwig Invited Talk

Generative Programming and Component Engineering

A Formal Representation for Software Variation

Martin Erwig, Oregon State University, USA

Managing variations is a fundamental problem in software engineering that surfaces in different forms, ranging from version control and configuration management to feature modeling and software product lines. In this talk, I present our recent work on the choice calculus, a fundamental representation for software variation that can serve as a common language of discourse for variation research, filling a role similar to lambda calculus in programming language research.

After motivating the design of the choice calculus and sketching its syntax and semantics, I will lay out a theory of software variation that is based on sound transformations of variation artifacts and that allows the definition of various strategic normal forms. Finally, I will sketch the basics of a design theory for variation structures that provides guidance for the creation and maintenance of variations.