skip to main content
10.1145/3425898.3426959acmconferencesArticle/Chapter ViewAbstractPublication PagesgpceConference Proceedingsconference-collections
research-article

Correctness-by-construction for feature-oriented software product lines

Published: 16 November 2020 Publication History

Abstract

Software product lines are increasingly used to handle the growing demand of custom-tailored software variants. They provide systematic reuse of software paired with variability mechanisms in the code to implement whole product families rather than single software products. A common domain of application for product lines are safety-critical systems, which require behavioral correctness to avoid dangerous situations in-field. While most approaches concentrate on post-hoc verification for product lines, we argue that a stepwise approach to create correct programs may be beneficial for developers to manage the growing variability. Correctness-by-construction is such a stepwise approach to create programs using a set of small, tractable refinement rules that guarantee the correctness of the program with regard to its specification. In this paper, we propose the first approach to develop correct-by-construction software product lines using feature-oriented programming. First, we extend correctness-by-construction by two refinement rules for variation points in the code. Second, we give a proof for the soundness of the proposed rules. Third, we implement our technique in a tool called VarCorC and show the applicability of the tool by conducting two case studies.

Supplementary Material

Auxiliary Presentation Video (gpce20main-p17-p-video.mp4)
This is a presentation video for the research track "Correctness-by-Construction for Feature-Oriented Software Product Lines" at GPCE 2020.
MP4 File (3425898.3426959.mp4)
Presentation Videos

References

[1]
Jean-Raymond Abrial. 2005. The B-Book: Assigning Programs to Meanings. Cambridge University Press.
[2]
Jean-Raymond Abrial. 2010. Modeling in Event-B: System and Software Engineering (1st ed.).
[3]
Jean-Raymond Abrial, Michael Butler, Stefan Hallerstede, Thai Son Hoang, Farhad Mehta, and Laurent Voisin. 2010. Rodin: An Open Toolset for Modelling and Reasoning in Event-B. International Journal on Software Tools for Technology Transfer 12, 6 ( 2010 ), 447-466.
[4]
Wolfgang Ahrendt, Bernhard Beckert, Richard Bubel, Reiner Hähnle, Peter H. Schmitt, and Mattias Ulbrich. 2016. Deductive Software Verification-The KeY Book.
[5]
Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines.
[6]
Sven Apel, Alexander von Rhein, Thomas Thüm, and Christian Kästner. 2013. Feature-Interaction Detection Based on Feature-Based Specifications. 57, 12 ( 2013 ), 2399-2409.
[7]
Ralph-Johan Back. 2009. Invariant Based Programming: Basic Approach and Teaching Experiences. Formal Aspects of Computing 21, 3 ( 2009 ), 227-244.
[8]
Ralph-Johan Back, Johannes Eriksson, and Magnus Myreen. 2007. Testing and Verifying Invariant Based Programs in the SOCOS Environment. In International Conference on Tests and Proofs. Springer, 61-78.
[9]
Don Batory, Jacob N. Sarvela, and Axel Rauschmayer. 2004. Scaling Step-Wise Refinement. 30, 6 ( 2004 ), 355-371.
[10]
Tabea Bordis, Tobias Runge, Alexander Knüppel, Thomas Thüm, and Ina Schaefer. 2020. Variational Correctness-by-Construction. In Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems. 1-9.
[11]
Daniel Bruns, Vladimir Klebanov, and Ina Schaefer. 2011. Verification of Software Product Lines with Delta-Oriented Slicing. 61-75.
[12]
Andreas Classen, Patrick Heymans, and Pierre-Yves Schobbens. 2008. What's in a Feature: A Requirements Engineering Perspective. In International Conference on Fundamental Approaches to Software Engineering. Springer, 16-30.
[13]
Andreas Classen, Patrick Heymans, Pierre-Yves Schobbens, and Axel Legay. 2011. Symbolic Model Checking of Software Product Lines. 321-330.
[14]
Paul Clements and Linda Northrop. 2001. Software Product Lines: Practices and Patterns.
[15]
Madiel Conserva Filho and Marcel Vinicius Medeiros Oliveira. 2012. Implementing Tactics of Refinement in CRefine. In International Conference on Software Engineering and Formal Methods. Springer, 342-351.
[16]
Coq Development Team. 2010. The Coq Proof Assistant Reference Manual. LogiCal Project. Version 8.3.
[17]
Krzysztof Czarnecki and Ulrich Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications.
[18]
Edsger W. Dijkstra. 1975. Guarded Commands, Nondeterminacy and Formal Derivation of Programs. 18, 8 ( 1975 ), 453-457.
[19]
Edsger W. Dijkstra. 1976. A Discipline of Programming (1st ed.). Prentice Hall PTR.
[20]
Stefan Fischer, Lukas Linsbauer, Roberto Erick Lopez-Herrejon, and Alexander Egyed. 2014. Enhancing Clone-and-Own with Systematic Reuse for Developing Software Variants. 391-400.
[21]
Rui C Gonçalves, Don Batory, Joao L Sobral, and Taylor L Riché. 2017. From Software Extensions to Product Lines of Dataflow Programs. Software & Systems Modeling 16, 4 ( 2017 ), 929-947.
[22]
David Gries. 1981. The Science of Programming (1st ed.).
[23]
Reiner Hähnle and Ina Schaefer. 2012. A Liskov Principle for DeltaOriented Programming. 32-46.
[24]
Kyo C. Kang, Sholom G. Cohen, James A. Hess, William E. Novak, and A. Spencer Peterson. 1990. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21. Software Engineering Institute.
[25]
Christian Kästner and Sven Apel. 2008. Type-Checking Software Product Lines-A Formal Approach. 258-267.
[26]
Derrick G. Kourie and Bruce W. Watson. 2012. The Correctness-byConstruction Approach to Programming.
[27]
Jing Liu, Josh Dehlinger, and Robyn Lutz. 2007. Safety Analysis of Software Product Lines Using State-Based Modeling. 80, 11 ( 2007 ), 1879-1892.
[28]
Carroll Morgan. 1998. Programming from Specifications. Prentice Hall.
[29]
Marcel Oliveira, Ana Cavalcanti, and Jim Woodcock. 2003. ArcAngel: A Tactic Language for Refinement. Formal Aspects of Computing 15, 1 ( 2003 ), 28-47.
[30]
Marcel Vinicius Medeiros Oliveira, Alessandro Cavalcante Gurgel, and CG Castro. 2008. CRefine: Support for the Circus Refinement Calculus. In 2008 Sixth IEEE International Conference on Software Engineering and Formal Methods. IEEE, 281-290.
[31]
Thi-Kim-Dung Pham. 2017. Development of Correct-by-Construction Software using Product Lines. Ph.D. Dissertation. Paris, CNAM.
[32]
Klaus Pohl, Günter Böckle, and Frank J. van der Linden. 2005. Software Product Line Engineering: Foundations, Principles and Techniques.
[33]
Hendrik Post and Carsten Sinz. 2008. Configuration Lifting: Verification Meets Software Configuration. 347-350.
[34]
Tobias Runge, Ina Schaefer, Loek Cleophas, Thomas Thüm, Derrick Kourie, and Bruce W. Watson. 2019. Tool Support for Correctness-byConstruction. 25-42.
[35]
Ina Schaefer, Lorenzo Bettini, Viviana Bono, Ferruccio Damiani, and Nico Tanzarella. 2010. Delta-Oriented Programming of Software Product Lines. 77-91.
[36]
Thomas Thüm. 2015. Product-Line Specification and Verification with Feature-Oriented Contracts. Ph.D. Dissertation. University of Magdeburg.
[37]
Thomas Thüm, Sven Apel, Christian Kästner, Ina Schaefer, and Gunter Saake. 2014. A Classification and Survey of Analysis Strategies for Software Product Lines. 47, 1 ( 2014 ), 6 : 1-6 : 45.
[38]
Thomas Thüm, Christian Kästner, Fabian Benduhn, Jens Meinicke, Gunter Saake, and Thomas Leich. 2014. FeatureIDE: An Extensible Framework for Feature-Oriented Software Development. 79, 0 ( 2014 ), 70-85.
[39]
Thomas Thüm, Alexander Knüppel, Stefan Krüger, Stefanie Bolle, and Ina Schaefer. 2019. Feature-Oriented Contract Composition. 152 ( 2019 ), 83-107.
[40]
Thomas Thüm, Ina Schaefer, Martin Kuhlemann, and Sven Apel. 2011. Proof Composition for Deductive Verification of Software Product Lines. 270-277.

Cited By

View all
  • (2024)From Concept to Reality: Leveraging Correctness-by-Construction for Better Algorithm DesignComputer10.1109/MC.2024.339094857:7(113-119)Online publication date: 1-Jul-2024
  • (2024)Actors Upgraded for Variability, Adaptability, and DeterminismActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_9(226-260)Online publication date: 29-Jan-2024
  • (2023)Variability in Products and ProductionDigital Transformation10.1007/978-3-662-65004-2_3(65-91)Online publication date: 3-Feb-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
GPCE 2020: Proceedings of the 19th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences
November 2020
136 pages
ISBN:9781450381741
DOI:10.1145/3425898
  • General Chair:
  • Martin Erwig,
  • Program Chair:
  • Jeff Gray
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 November 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. correctness-by-construction
  2. feature-oriented programming
  3. formal verification
  4. software product lines

Qualifiers

  • Research-article

Conference

GPCE '20
Sponsor:
GPCE '20: Concepts and Experiences
November 16 - 17, 2020
Virtual, USA

Acceptance Rates

Overall Acceptance Rate 56 of 180 submissions, 31%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)11
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)From Concept to Reality: Leveraging Correctness-by-Construction for Better Algorithm DesignComputer10.1109/MC.2024.339094857:7(113-119)Online publication date: 1-Jul-2024
  • (2024)Actors Upgraded for Variability, Adaptability, and DeterminismActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_9(226-260)Online publication date: 29-Jan-2024
  • (2023)Variability in Products and ProductionDigital Transformation10.1007/978-3-662-65004-2_3(65-91)Online publication date: 3-Feb-2023
  • (2022)Family-Based and Product-Based Development of Correct-by-Construction Software Product LinesJournal of Computer Languages10.1016/j.cola.2022.10111970(101119)Online publication date: Jun-2022
  • (2022)Re-CorC-ing KeY: Correct-by-Construction Software Development Based on KeYThe Logic of Software. A Tasting Menu of Formal Methods10.1007/978-3-031-08166-8_5(80-104)Online publication date: 4-Jul-2022

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media