scispace - formally typeset

Proceedings ArticleDOI

Proof Composition for Deductive Verification of Software Product Lines

21 Mar 2011-pp 270-277

TL;DR: This work introduces a classification of existing software product line verification approaches, proposes proof composition as a novel approach and presents a case study to evaluate proof composition and demonstrates that it reduces the effort for verification.

AbstractSoftware product line engineering aims at the efficient development of program variants that share a common set of features and that differ in other features. Product lines can be efficiently developed using feature-oriented programming. Given a feature selection and the code artifacts for each feature, program variants can be generated automatically. The quality of the program variants can be rigorously ensured by formal verification. However, verification of all program variants can be expensive and include redundant verification tasks. We introduce a classification of existing software product line verification approaches and propose proof composition as a novel approach. Proof composition generates correctness proofs of each program variant based on partial proofs of each feature. We present a case study to evaluate proof composition and demonstrate that it reduces the effort for verification.

...read more

Content maybe subject to copyright    Report

Citations
More filters

BookDOI
01 Jan 2013
TL;DR: Books and internet are the recommended media to help you improving your quality and performance.
Abstract: Inevitably, reading is one of the requirements to be undergone. To improve the performance and quality, someone needs to have something new every day. It will suggest you to have more inspirations, then. However, the needs of inspirations will make you searching for some sources. Even from the other people experience, internet, and many books. Books and internet are the recommended media to help you improving your quality and performance.

493 citations


Journal ArticleDOI
TL;DR: A classification of product-line analyses is proposed to enable systematic research and application in software-product-line engineering and develops a research agenda to guide future research on product- line analyses.
Abstract: Software-product-line engineering has gained considerable momentum in recent years, both in industry and in academia. A software product line is a family of software products that share a common set of features. Software product lines challenge traditional analysis techniques, such as type checking, model checking, and theorem proving, in their quest of ensuring correctness and reliability of software. Simply creating and analyzing all products of a product line is usually not feasible, due to the potentially exponential number of valid feature combinations. Recently, researchers began to develop analysis techniques that take the distinguishing properties of software product lines into account, for example, by checking feature-related code in isolation or by exploiting variability information during analysis. The emerging field of product-line analyses is both broad and diverse, so it is difficult for researchers and practitioners to understand their similarities and differences. We propose a classification of product-line analyses to enable systematic research and application. Based on our insights with classifying and comparing a corpus of 123 research articles, we develop a research agenda to guide future research on product-line analyses.

387 citations


Proceedings ArticleDOI
22 Aug 2011
TL;DR: This work presents a technique based on propositional formulas that enables to reason about program variants rather than feature combinations, and can save effort that is caused by considering the same program variant multiple times, for example, in product-line testing.
Abstract: A software product line is a set of program variants, typically generated from a common code base Feature models describe variability in product lines by documenting features and their valid combinations In product-line engineering, we need to reason about variability and program variants for many different tasks For example, given a feature model, we might want to determine the number of all valid feature combinations or compute specific feature combinations for testing However, we found that contemporary reasoning approaches can only reason about feature combinations, not about program variants, because they do not take abstract features into account Abstract features are features used to structure a feature model that, however, do not have any impact at implementation level Using existing feature-model reasoning mechanisms for program variants leads to incorrect results Hence, although abstract features represent domain decisions that do not affect the generation of a program variant We raise awareness of the problem of abstract features for different kinds of analyses on feature models We argue that, in order to reason about program variants, abstract features should be made explicit in feature models We present a technique based on propositional formulas that enables to reason about program variants rather than feature combinations In practice, our technique can save effort that is caused by considering the same program variant multiple times, for example, in product-line testing

116 citations


Cites background from "Proof Composition for Deductive Ver..."

  • ...Program variants are distinguished in terms of features, which are prominent or distinctive user-visible aspects, qualities, or characteristics of a software system [2]....

    [...]

  • ...• The semantics of feature models describes valid con- figurations and can be used to derive statistics about feature models and to detect inconsistencies in feature models, e.g., dead features which are not contained in any valid configuration or false optional features which are declared as…...

    [...]


Journal ArticleDOI
TL;DR: An exploratory study on 10 feature-oriented systems found that the majority of feature interactions could be detected based on feature-based specifications, but some specifications have not been modularized properly and require undesirable workarounds to modularization.
Abstract: Formal specification and verification techniques have been used successfully to detect feature interactions. We investigate whether feature-based specifications can be used for this task. Feature-based specifications are a special class of specifications that aim at modularity in open-world, feature-oriented systems. The question we address is whether modularity of specifications impairs the ability to detect feature interactions, which cut across feature boundaries. In an exploratory study on 10 feature-oriented systems, we found that the majority of feature interactions could be detected based on feature-based specifications, but some specifications have not been modularized properly and require undesirable workarounds to modularization. Based on the study, we discuss the merits and limitations of feature-based specifications, as well as open issues and perspectives. A goal that underlies our work is to raise awareness of the importance and challenges of feature-based specification.

70 citations


Proceedings ArticleDOI
26 Sep 2012
TL;DR: This work presents a family-based approach of deductive verification to prove the correctness of a software product line efficiently and shows that the theorem prover KeY can be used off-the-shelf for this task, without any modifications.
Abstract: A software product line is a set of similar software products that share a common code base. While software product lines can be implemented efficiently using feature-oriented programming, verifying each product individually does not scale, especially if human effort is required (e.g., as in interactive theorem proving). We present a family-based approach of deductive verification to prove the correctness of a software product line efficiently. We illustrate and evaluate our approach for software product lines written in a feature-oriented dialect of Java and specified using the Java Modeling Language. We show that the theorem prover KeY can be used off-the-shelf for this task, without any modifications. Compared to the individual verification of each product, our approach reduces the verification time needed for our case study by more than 85%.

67 citations


Cites methods from "Proof Composition for Deductive Ver..."

  • ...Furthermore, we proposed proof composition for deductive verification of feature-oriented programs [34]....

    [...]


References
More filters

ReportDOI
01 Nov 1990
TL;DR: This report will establish methods for performing a domain analysis and describe the products of the domain analysis process to illustrate the application of domain analysis to a representative class of software systems.
Abstract: : Successful Software reuse requires the systematic discovery and exploitation of commonality across related software systems. By examining related software systems and the underlying theory of the class of systems they represent, domain analysis can provide a generic description of the requirements of that class of systems and a set of approaches for their implementation. This report will establish methods for performing a domain analysis and describe the products of the domain analysis process. To illustrate the application of domain analysis to a representative class of software systems, this report will provide a domain analysis of window management system software.

4,263 citations


"Proof Composition for Deductive Ver..." refers background in this paper

  • ...A feature model [2] documents all features and the constraints between them, e....

    [...]

  • ...The program variants of an SPL are distinguished in terms of features [2]....

    [...]


Book
03 Aug 2005
TL;DR: In this book, Pohl and his co-authors present a framework for software product line engineering which they have developed based on their academic as well as industrial experience gained in projects over the last eight years.
Abstract: Software product line engineering has proven to be the methodology for developing a diversity of software products and software intensive systems at lower costs, in shorter time, and with higher quality. In this book, Pohl and his co-authors present a framework for software product line engineering which they have developed based on their academic as well as industrial experience gained in projects over the last eight years. They do not only detail the technical aspect of the development, but also an integrated view of the business, organisation and process aspects are given. In addition, they explicitly point out the key differences of software product line engineering compared to traditional single software system development, as the need for two distinct development processes for domain and application engineering respectively, or the need to define and manage variability.

2,578 citations


"Proof Composition for Deductive Ver..." refers background in this paper

  • ...A software product line (SPL) is a set of softwareintensive systems that share code [1]....

    [...]


Journal ArticleDOI
TL;DR: Methodological guidelines for object-oriented software construction that improve the reliability of the resulting software systems are presented and the theory of contract design and the role of assertions in that theory are discussed.
Abstract: Methodological guidelines for object-oriented software construction that improve the reliability of the resulting software systems are presented. It is shown that the object-oriented techniques rely on the theory of design by contract, which underlies the design of the Eiffel analysis, design, and programming language and of the supporting libraries, from which a number of examples are drawn. The theory of contract design and the role of assertions in that theory are discussed. >

2,058 citations


"Proof Composition for Deductive Ver..." refers background or methods in this paper

  • ...Critical requirements of programs can be specified using design by contract [8]....

    [...]

  • ...We show how the example SPL is implemented using feature-oriented programming and define how program properties are specified using design by contract [8]....

    [...]


BookDOI
01 Jan 2005

1,810 citations


01 Jan 1997
TL;DR: Coq V6.1 is a proof assistant based on a higher-order logic allowing powerful definitions of functions and is available by anonymous ftp at ftp.ens-lyon.fr/INRIA/Projects/coq/V 6.1.
Abstract: Coq is a proof assistant based on a higher-order logic allowing powerful definitions of functions. Coq V6.1 is available by anonymous ftp at ftp.inria.fr:/INRIA/Projects/coq/V6.1 and ftp.ens-lyon.fr:/pub/LIP/COQ/V6.1

1,138 citations