http://www.dagstuhl.de/13091

February 24 to March 1, 2013, Dagstuhl Seminar 13091

Analysis, Test and Verification in The Presence of Variability

Organizers

Paulo Borba (University of Pernambuco – Recife, BR)
Myra Cohen (University of Nebraska – Lincoln, US)
Axel Legay (INRIA Bretagne Atlantique – Rennes, FR)
Andrzej Wasowski (IT University of Copenhagen, DK)


1 / 2 >

For support, please contact

Candida Andreas for administrative matters

Marc Herbstritt for scientific matters

Documents

List of Participants
Shared Documents

Motivation

Variability management is a set of practices that enable the development of software products together as a single product family by organizing] the common and variant parts of source code, and other related assets. Software developers adopt variability management in order to increase the flexibility of software, or to be able to produce variations of software economically, reducing cost through increased reuse.

Variability in software is a fact. It is supported by a number of strong economic trends: a personalization trend (catering to the needs of diverse users), an adaptability trend (the need to make software more flexible), and by business incentives – to make software less expensive to produce through systematic reuse.

The development processes around designing such software, and tools for deriving variants (generative programming) are now well established. Technologies exist that support programming and compilation of software with variability: preprocessors, polymorphism, object-oriented frameworks, component and extension frameworks, code generation and model driven development (domain specific languages.

Only recently have researchers begun working with core technologies that support the correctness of product families, turning their attention towards supporting (and leveraging) variability. Automatic analyses of software with variability is difficult, because it requires reasoning about all (or a number of) the variants simultaneously. Custom analysis techniques, for software with variability, however, allows for early detection of errors, because many (or all) variations of the software can be analyzed simultaneously, and there may be overlap between parts of the system.

While it is simple to derive a variant of a C program by applying a preprocessor to it for instance, reasoning about all variations that the preprocessor code allows, is complex. New tools and techniques have started to appear that are able to tell whether all variants of a C program with preprocessor conditional directives adhere to the C grammar, but this is still in its infancy. Standard tools are ineffective, since they require compiling all of the variants of such a program, which is clearly infeasible since systems grow combinatorially, and there may be thousands of options governing the compilation process for a single product family. Similar problems affect all elements of the software development tool-chain: type systems, program analyses, model checkers, model based testing tools, etc.

Our goal is to consolidate and stimulate research on analyses of software models with variability, enabling the design of variability-aware tool chains. We bring together key researchers working on quality assurance challenges that arise from introducing variability, and some who do not work with variability, but that are experts in their respective areas of broader software analysis research.

The seminar will include:

1. Sessions on challenges of analysis of variability, including models and software analysis, given by experts in variability research.

2. Presentation of state of the art research on software analysis that is not developed with variability in mind, but that can be applied to tackling the variability challenge.

3. Dynamically planned sessions on how to address these challenges, how to transfer knowledge, tools, and benchmarks between research areas.

The methods in focus will be program analysis, model checking, type checking, and testing. We believe that the seminar will fruitfully mix computer science and software engineering researchers, allowing the former to derive interesting basic research problems stemming from practical needs, and inspiring the latter to use the latest research advances in software analysis technology to advance variability management tools.

Classification

  • Programming Languages / Compiler
  • Semantics / Formal Methods
  • Software Engineering

Keywords

  • Verification
  • Program Analysis
  • Testing
  • Semantics of Programming Languages
  • Software Engineering

Book exhibition

Books from the participants of the current Seminar 

Book exhibition in the library, 1st floor, during the seminar week.

Documentation

In the series Dagstuhl Reports each Dagstuhl Seminar and Dagstuhl Perspectives Workshop is documented. The seminar organizers, in cooperation with the collector, prepare a report that includes contributions from the participants' talks together with a summary of the seminar.

 

Download overview leaflet (PDF).

Publications

Seminar participants may publish preprints within the scope of the seminar documentation as part of the Dagstuhl Preprint Archive.

 

Furthermore, a comprehensive peer-reviewed collection of research papers can be published in the series Dagstuhl Follow-Ups.

Dagstuhl's Impact

Please inform us when a publication was published as a result from your seminar. These publications are listed in the category Dagstuhl's Impact and are presented on a special shelf on the ground floor of the library.