All roads lead to Rome: Commuting strategies for product-line reliability analysis

Thiago Castro, André Lanna, Vander Alves, Leopoldo Teixeira, Sven Apel, Pierre Yves Schobbens

Research output: Contribution to journalArticle

Abstract

Software product line engineering is a means to systematically manage variability and commonality in software systems, enabling the automated synthesis of related programs (products) from a set of reusable assets. However, the number of products in a software product line may grow exponentially with the number of features, so it is practically infeasible to quality-check each of these products in isolation. There is a number of variability-aware approaches to product-line analysis that adapt single-product analysis techniques to cope with variability in an efficient way. Such approaches can be classified along three analysis dimensions (product-based, family-based, and feature-based), but, particularly in the context of reliability analysis, there is no theory comprising both (a) a formal specification of the three dimensions and resulting analysis strategies and (b) proof that such analyses are equivalent to one another. The lack of such a theory hinders formal reasoning on the relationship between the analysis dimensions and derived analysis techniques. We formalize seven approaches to reliability analysis of product lines, including the first instance of a feature-family-product-based analysis in the literature. We prove the formalized analysis strategies to be sound with respect to the probabilistic approach to reliability analysis of a single product. Furthermore, we present a commuting diagram of intermediate analysis steps, which relates different strategies and enables the reuse of soundness proofs between them.

LanguageEnglish
Pages116-160
Number of pages45
JournalScience of Computer Programming
Volume152
DOIs
Publication statusPublished - 15 Jan 2018

Fingerprint

Reliability analysis
Acoustic waves

Keywords

  • Model checking
  • Product-line analysis
  • Reliability analysis
  • Software product lines
  • Verification

Cite this

Castro, Thiago ; Lanna, André ; Alves, Vander ; Teixeira, Leopoldo ; Apel, Sven ; Schobbens, Pierre Yves. / All roads lead to Rome : Commuting strategies for product-line reliability analysis. In: Science of Computer Programming. 2018 ; Vol. 152. pp. 116-160.
@article{3c638f2bce8643079342259da809687f,
title = "All roads lead to Rome: Commuting strategies for product-line reliability analysis",
abstract = "Software product line engineering is a means to systematically manage variability and commonality in software systems, enabling the automated synthesis of related programs (products) from a set of reusable assets. However, the number of products in a software product line may grow exponentially with the number of features, so it is practically infeasible to quality-check each of these products in isolation. There is a number of variability-aware approaches to product-line analysis that adapt single-product analysis techniques to cope with variability in an efficient way. Such approaches can be classified along three analysis dimensions (product-based, family-based, and feature-based), but, particularly in the context of reliability analysis, there is no theory comprising both (a) a formal specification of the three dimensions and resulting analysis strategies and (b) proof that such analyses are equivalent to one another. The lack of such a theory hinders formal reasoning on the relationship between the analysis dimensions and derived analysis techniques. We formalize seven approaches to reliability analysis of product lines, including the first instance of a feature-family-product-based analysis in the literature. We prove the formalized analysis strategies to be sound with respect to the probabilistic approach to reliability analysis of a single product. Furthermore, we present a commuting diagram of intermediate analysis steps, which relates different strategies and enables the reuse of soundness proofs between them.",
keywords = "Model checking, Product-line analysis, Reliability analysis, Software product lines, Verification",
author = "Thiago Castro and Andr{\'e} Lanna and Vander Alves and Leopoldo Teixeira and Sven Apel and Schobbens, {Pierre Yves}",
year = "2018",
month = "1",
day = "15",
doi = "10.1016/j.scico.2017.10.013",
language = "English",
volume = "152",
pages = "116--160",
journal = "Science of Computer Programming",
issn = "0167-6423",
publisher = "Elsevier",

}

All roads lead to Rome : Commuting strategies for product-line reliability analysis. / Castro, Thiago; Lanna, André; Alves, Vander; Teixeira, Leopoldo; Apel, Sven; Schobbens, Pierre Yves.

In: Science of Computer Programming, Vol. 152, 15.01.2018, p. 116-160.

Research output: Contribution to journalArticle

TY - JOUR

T1 - All roads lead to Rome

T2 - Science of Computer Programming

AU - Castro, Thiago

AU - Lanna, André

AU - Alves, Vander

AU - Teixeira, Leopoldo

AU - Apel, Sven

AU - Schobbens, Pierre Yves

PY - 2018/1/15

Y1 - 2018/1/15

N2 - Software product line engineering is a means to systematically manage variability and commonality in software systems, enabling the automated synthesis of related programs (products) from a set of reusable assets. However, the number of products in a software product line may grow exponentially with the number of features, so it is practically infeasible to quality-check each of these products in isolation. There is a number of variability-aware approaches to product-line analysis that adapt single-product analysis techniques to cope with variability in an efficient way. Such approaches can be classified along three analysis dimensions (product-based, family-based, and feature-based), but, particularly in the context of reliability analysis, there is no theory comprising both (a) a formal specification of the three dimensions and resulting analysis strategies and (b) proof that such analyses are equivalent to one another. The lack of such a theory hinders formal reasoning on the relationship between the analysis dimensions and derived analysis techniques. We formalize seven approaches to reliability analysis of product lines, including the first instance of a feature-family-product-based analysis in the literature. We prove the formalized analysis strategies to be sound with respect to the probabilistic approach to reliability analysis of a single product. Furthermore, we present a commuting diagram of intermediate analysis steps, which relates different strategies and enables the reuse of soundness proofs between them.

AB - Software product line engineering is a means to systematically manage variability and commonality in software systems, enabling the automated synthesis of related programs (products) from a set of reusable assets. However, the number of products in a software product line may grow exponentially with the number of features, so it is practically infeasible to quality-check each of these products in isolation. There is a number of variability-aware approaches to product-line analysis that adapt single-product analysis techniques to cope with variability in an efficient way. Such approaches can be classified along three analysis dimensions (product-based, family-based, and feature-based), but, particularly in the context of reliability analysis, there is no theory comprising both (a) a formal specification of the three dimensions and resulting analysis strategies and (b) proof that such analyses are equivalent to one another. The lack of such a theory hinders formal reasoning on the relationship between the analysis dimensions and derived analysis techniques. We formalize seven approaches to reliability analysis of product lines, including the first instance of a feature-family-product-based analysis in the literature. We prove the formalized analysis strategies to be sound with respect to the probabilistic approach to reliability analysis of a single product. Furthermore, we present a commuting diagram of intermediate analysis steps, which relates different strategies and enables the reuse of soundness proofs between them.

KW - Model checking

KW - Product-line analysis

KW - Reliability analysis

KW - Software product lines

KW - Verification

UR - http://www.scopus.com/inward/record.url?scp=85033214455&partnerID=8YFLogxK

U2 - 10.1016/j.scico.2017.10.013

DO - 10.1016/j.scico.2017.10.013

M3 - Article

VL - 152

SP - 116

EP - 160

JO - Science of Computer Programming

JF - Science of Computer Programming

SN - 0167-6423

ER -