SHF Small: Language Support for Variation Maintenance
Oregon State University, Corvallis OR
Investigators
Abstract
Managing variation is an important part of software engineering. Many existing software projects can already generate a huge number of distinct programs that run on different platforms and provide different feature sets. Research on software product lines and feature-oriented software development has provided processes and tools for the development of massively configurable software, suggesting that the variability of software systems will only continue to grow. A currently largely unsolved problem is how to systematically transform variation representations to support the creation, refactoring, and migration of variation, as wall as the analysis and querying of variation-rich software repositories. The objective of this research is to investigate the systematic transformation of variation structures and develop language support for it. The following technical approach is pursued. First, gathering variation programming tasks will provide a basis for the understanding of the nature and extent of variation transformations, and assembling a catalog of such tasks will aid the design, evaluation, and comparison of variation languages. Second, the definition of the syntax and semantics of a transformational choice calculus, which extends the (representational) choice calculus with computational features, will support the investigation of formal properties of variation programming. Third, the development of a variation type system facilitates the characterization of different kinds of changes and evolutions of variational structures. Moreover, the development of a variation module system will provide an interface between low-level details required by the intricate scoping and binding issues of the choice calculus representation and a more high-level, declarative view of variations. Finally, the design of a domain-specific embedded language for variation programming will allow the easy description of transformations of variation structures in software artifacts. It also supports the experimentation with variation transformations. Since the scope of this research extends beyond professional software and covers also end-user programming systems, such as spreadsheets, the developed methods will be applicable in a wide variety of contexts and can thus empower millions of users to handle variation in a more systematic way.
View original record on NSF Award Search →