Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools
Alexandru Florin Iosif-Lazar
Publikation: Bog / Antologi / Rapport / Ph.D.-afhandling › Ph.d.-afhandling
Certification is the process of assessing the quality of a product and whether it meets a set of requirements and adheres to functional and safety standards. I is often legally required to provide guarantee for human safety and to make the product available on the market. The certification process relies on objective evidence of quality, which is produced by using qualified and state-of-the-art tools and verification and validation techniques.
Software product line (SPL) engineering distributes costs among similar products that are developed simultaneously. However, SPL certification faces major challenges, partly due to the lack of qualified, state-of-the-art tools to support the development process in the presence of variability. In practice, there are cases in which it is too costly or complicated to qualify the support tools; in other cases state-of-the-art tools exist, but do not handle variability.
In this thesis, I identify three key challenges to SPL certification. I address them by proposing effective, lightweight methods that employ off-the-shelf tools for supporting and verifying SPL development. All the proposed methods are generalizable to a large part of existing tools, they are formally specified and accompanied by proof-of-concept implementations.
The first challenge is that of qualifying variant derivation tools. Any error that occurs in the process of deriving/building products from an SPL can affect the quality of the products themselves. Qualifying variant derivation tools requires a formal specification, which lacks or is incomplete for most variability modeling languages. I propose a lightweight verification technique based on translation validation, which uses formal specification written in a core variability modeling language.
The second challenge is that of validating SPL reengineering projects that involve complex source code transformations. To facilitate product (re)certification, the transformation must preserve certain qualitative properties such as code structure and semantics—a difficult task due to the complexity of the transformation and because certain properties, such as semantic equivalence, are generally difficult to verify. I present a number of lessons learned from a code modernization project involving a non-trivial rewriting transformation and a validation phase, which identifies and analyzes a number of transformation bugs that could not be detected with regular unit testing.
The third challenge is that of using state-of-the-art analysis tools to verify product families. Most off-the-shelf tools cannot handle variability in SPLs. Alternatively we can either verify each product individually (brute force) or develop lifted analysis tools that can handle variability, both approaches being costly and time-consuming. I investigate the possibility of using off-the-shelf analysis tools by rewriting compile-time variability into run-time variability.
IT-Universitetet i København
ITU-DS
PhD_Thesis_Final_Version._Alexandru_F._Iosif_LazarForlagets udgivne version, 2,53 MB
Dyk ned i forskningsemnerne om 'Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools'. Sammen danner de et unikt fingeraftryk.
Formal specification Teknik og materialevidenskab 100%
Modeling languages Teknik og materialevidenskab 93%
Reengineering Teknik og materialevidenskab 55%
Modernization Teknik og materialevidenskab 47%
Semantics Teknik og materialevidenskab 28%
Testing Teknik og materialevidenskab 21%
Costs Teknik og materialevidenskab 16%
Iosif-Lazar, A. F. (2017). Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools. IT-Universitetet i København. ITU-DS Nr. 132
Iosif-Lazar, Alexandru Florin. / Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools. IT-Universitetet i København, 2017. 149 s. (ITU-DS; Nr. 132).
@phdthesis{81b216609dd04e0f92bd31115497b226,
title = "Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools",
abstract = "Certification is the process of assessing the quality of a product and whether it meets a set of requirements and adheres to functional and safety standards. I is often legally required to provide guarantee for human safety and to make the product available on the market. The certification process relies on objective evidence of quality, which is produced by using qualified and state-of-the-art tools and verification and validation techniques.Software product line (SPL) engineering distributes costs among similar products that are developed simultaneously. However, SPL certification faces major challenges, partly due to the lack of qualified, state-of-the-art tools to support the development process in the presence of variability. In practice, there are cases in which it is too costly or complicated to qualify the support tools; in other cases state-of-the-art tools exist, but do not handle variability.In this thesis, I identify three key challenges to SPL certification. I address them by proposing effective, lightweight methods that employ off-the-shelf tools for supporting and verifying SPL development. All the proposed methods are generalizable to a large part of existing tools, they are formally specified and accompanied by proof-of-concept implementations.The first challenge is that of qualifying variant derivation tools. Any error that occurs in the process of deriving/building products from an SPL can affect the quality of the products themselves. Qualifying variant derivation tools requires a formal specification, which lacks or is incomplete for most variability modeling languages. I propose a lightweight verification technique based on translation validation, which uses formal specification written in a core variability modeling language.The second challenge is that of validating SPL reengineering projects that involve complex source code transformations. To facilitate product (re)certification, the transformation must preserve certain qualitative properties such as code structure and semantics—a difficult task due to the complexity of the transformation and because certain properties, such as semantic equivalence, are generally difficult to verify. I present a number of lessons learned from a code modernization project involving a non-trivial rewriting transformation and a validation phase, which identifies and analyzes a number of transformation bugs that could not be detected with regular unit testing.The third challenge is that of using state-of-the-art analysis tools to verify product families. Most off-the-shelf tools cannot handle variability in SPLs. Alternatively we can either verify each product individually (brute force) or develop lifted analysis tools that can handle variability, both approaches being costly and time-consuming. I investigate the possibility of using off-the-shelf analysis tools by rewriting compile-time variability into run-time variability.",
author = "Iosif-Lazar, {Alexandru Florin}",
series = "ITU-DS",
publisher = "IT-Universitetet i K{\o}benhavn",
address = "Denmark",
Iosif-Lazar, AF 2017, Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools. ITU-DS, nr. 132, IT-Universitetet i København.
Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools. / Iosif-Lazar, Alexandru Florin.
IT-Universitetet i København, 2017. 149 s. (ITU-DS; Nr. 132).
T1 - Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools
AU - Iosif-Lazar, Alexandru Florin
N2 - Certification is the process of assessing the quality of a product and whether it meets a set of requirements and adheres to functional and safety standards. I is often legally required to provide guarantee for human safety and to make the product available on the market. The certification process relies on objective evidence of quality, which is produced by using qualified and state-of-the-art tools and verification and validation techniques.Software product line (SPL) engineering distributes costs among similar products that are developed simultaneously. However, SPL certification faces major challenges, partly due to the lack of qualified, state-of-the-art tools to support the development process in the presence of variability. In practice, there are cases in which it is too costly or complicated to qualify the support tools; in other cases state-of-the-art tools exist, but do not handle variability.In this thesis, I identify three key challenges to SPL certification. I address them by proposing effective, lightweight methods that employ off-the-shelf tools for supporting and verifying SPL development. All the proposed methods are generalizable to a large part of existing tools, they are formally specified and accompanied by proof-of-concept implementations.The first challenge is that of qualifying variant derivation tools. Any error that occurs in the process of deriving/building products from an SPL can affect the quality of the products themselves. Qualifying variant derivation tools requires a formal specification, which lacks or is incomplete for most variability modeling languages. I propose a lightweight verification technique based on translation validation, which uses formal specification written in a core variability modeling language.The second challenge is that of validating SPL reengineering projects that involve complex source code transformations. To facilitate product (re)certification, the transformation must preserve certain qualitative properties such as code structure and semantics—a difficult task due to the complexity of the transformation and because certain properties, such as semantic equivalence, are generally difficult to verify. I present a number of lessons learned from a code modernization project involving a non-trivial rewriting transformation and a validation phase, which identifies and analyzes a number of transformation bugs that could not be detected with regular unit testing.The third challenge is that of using state-of-the-art analysis tools to verify product families. Most off-the-shelf tools cannot handle variability in SPLs. Alternatively we can either verify each product individually (brute force) or develop lifted analysis tools that can handle variability, both approaches being costly and time-consuming. I investigate the possibility of using off-the-shelf analysis tools by rewriting compile-time variability into run-time variability.
AB - Certification is the process of assessing the quality of a product and whether it meets a set of requirements and adheres to functional and safety standards. I is often legally required to provide guarantee for human safety and to make the product available on the market. The certification process relies on objective evidence of quality, which is produced by using qualified and state-of-the-art tools and verification and validation techniques.Software product line (SPL) engineering distributes costs among similar products that are developed simultaneously. However, SPL certification faces major challenges, partly due to the lack of qualified, state-of-the-art tools to support the development process in the presence of variability. In practice, there are cases in which it is too costly or complicated to qualify the support tools; in other cases state-of-the-art tools exist, but do not handle variability.In this thesis, I identify three key challenges to SPL certification. I address them by proposing effective, lightweight methods that employ off-the-shelf tools for supporting and verifying SPL development. All the proposed methods are generalizable to a large part of existing tools, they are formally specified and accompanied by proof-of-concept implementations.The first challenge is that of qualifying variant derivation tools. Any error that occurs in the process of deriving/building products from an SPL can affect the quality of the products themselves. Qualifying variant derivation tools requires a formal specification, which lacks or is incomplete for most variability modeling languages. I propose a lightweight verification technique based on translation validation, which uses formal specification written in a core variability modeling language.The second challenge is that of validating SPL reengineering projects that involve complex source code transformations. To facilitate product (re)certification, the transformation must preserve certain qualitative properties such as code structure and semantics—a difficult task due to the complexity of the transformation and because certain properties, such as semantic equivalence, are generally difficult to verify. I present a number of lessons learned from a code modernization project involving a non-trivial rewriting transformation and a validation phase, which identifies and analyzes a number of transformation bugs that could not be detected with regular unit testing.The third challenge is that of using state-of-the-art analysis tools to verify product families. Most off-the-shelf tools cannot handle variability in SPLs. Alternatively we can either verify each product individually (brute force) or develop lifted analysis tools that can handle variability, both approaches being costly and time-consuming. I investigate the possibility of using off-the-shelf analysis tools by rewriting compile-time variability into run-time variability.
M3 - Ph.D. thesis
T3 - ITU-DS
BT - Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools
PB - IT-Universitetet i København
Iosif-Lazar AF. Lightweight Methods for Effective Verification of Software Product Lines with Off-the-Shelf Tools. IT-Universitetet i København, 2017. 149 s. (ITU-DS; Nr. 132).