skip to main content
10.1145/3377024.3377038acmotherconferencesArticle/Chapter ViewAbstractPublication PagesvamosConference Proceedingsconference-collections
research-article

Variational correctness-by-construction

Published: 06 February 2020 Publication History

Abstract

Nowadays, the requirements for software and therefore also the required complexity is increasing steadily. Consequently, various techniques to handle the growing demand for software variants in one specific domain are used. These techniques often rely on variable code structures to implement a whole product family more efficiently. Variational software is also increasingly used for safety-critical systems, which need to be verified to guarantee their functionality in-field. However, usual verification techniques can not directly be applied to the variable code structures of most techniques. In this paper, we propose variational correctness-by-construction as a methodology to implement variational software extending the correctness-by-construction approach. Correctness-by-construction is an incremental approach to create and verify programs using small tractable refinement steps guided by a specification following the design-by-contract paradigm. Our contribution is threefold. First, we extend the list of refinement rules to enable variability in programs developed with correctness-by-construction. Second, we motivate the need for contract composition of refined method contracts and illustrate how this can be achieved. Third, we implement variational correctness-by-construction in a tool called VarCorC. We successfully conducted two case studies showing the applicability of VarCorC and were able to assess reduced verification costs compared to post-hoc verification as well.

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]
Michalis Anastasopoules and Critina Gacek. 2001. Implementing Product Line Variabilities. 26, 3 (2001), 109--117.
[6]
Sven Apel, Don Batory, Christian Kästner, and Gunter Saake. 2013. Feature-Oriented Software Product Lines.
[7]
Don Batory, Jacob N. Sarvela, and Axel Rauschmayer. 2004. Scaling Step-Wise Refinement. 30, 6 (2004), 355--371.
[8]
Daniel Bruns, Vladimir Klebanov, and Ina Schaefer. 2011. Verification of Software Product Lines with Delta-Oriented Slicing. 61--75.
[9]
Rafael Capilla, Jan Bosch, Pablo Trinidad, Antonio Ruiz-Cortés, and Mike Hinchey. 2014. An Overview of Dynamic Software Product Line Architectures and Techniques: Observations from Research and Industry. 91 (2014), 3--23.
[10]
David R. Cok. 2011. OpenJML: JML for Java 7 by Extending OpenJDK. 472--479.
[11]
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.
[12]
Krzysztof Czarnecki and Ulrich Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications.
[13]
Edsger W. Dijkstra. 1975. Guarded Commands, Nondeterminacy and Formal Derivation of Programs. 18, 8 (1975), 453--457.
[14]
Edsger W. Dijkstra. 1976. A Discipline of Programming (1st ed.). Prentice Hall PTR.
[15]
Yael Dubinsky, Julia Rubin, Thorsten Berger, Slawomir Duszynski, Martin Becker, and Krzysztof Czarnecki. 2013. An Exploratory Study of Cloning in Industrial Software Product Lines. 25--34.
[16]
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.
[17]
David Gries. 1981. The Science of Programming (1st ed.).
[18]
Reiner Hähnle and Ina Schaefer. 2012. A Liskov Principle for Delta-Oriented Programming. 32--46.
[19]
Derrick G. Kourie and Bruce W. Watson. 2012. The Correctness-by-Construction Approach to Programming.
[20]
R. Kramer. 1998. iContract - The Java(Tm) Design by Contract(Tm) Tool. 295--307.
[21]
Jing Liu, Josh Dehlinger, and Robyn Lutz. 2007. Safety Analysis of Software Product Lines Using State-Based Modeling. 80, 11 (2007), 1879--1892.
[22]
Marcel Oliveira, Ana Cavalcanti, and Jim Woodcock. 2003. ArcAngel: A Tactic Language for Refinement. Formal Aspects of Computing 15, 1 (2003), 28--47.
[23]
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.
[24]
Tobias Runge, Ina Schaefer, Loek Cleophas, Thomas Thüm, Derrick Kourie, and Bruce W. Watson. 2019. Tool Support for Correctness-by-Construction. 25--42.
[25]
Ina Schaefer, Lorenzo Bettini, Viviana Bono, Ferruccio Damiani, and Nico Tanzarella. 2010. Delta-Oriented Programming of Software Product Lines. 77--91.
[26]
Wolfgang Scholz, Thomas Thüm, Sven Apel, and Christian Lengauer. 2011. Automatic Detection of Feature Interactions Using the Java Modeling Language: An Experience Report. Article 7, 7:1--7:8 pages.
[27]
Thomas Thüm, Alexander Knüppel, Stefan Krüger, Stefanie Bolle, and Ina Schaefer. 2019. Feature-Oriented Contract Composition. 152 (2019), 83--107.
[28]
Thomas Thüm, Jens Meinicke, Fabian Benduhn, Martin Hentschel, Alexander von Rhein, and Gunter Saake. 2014. Potential Synergies of Theorem Proving and Model Checking for Software Product Lines. 177--186.
[29]
Bruce W. Watson, Derrick G. Kourie, Ina Schaefer, and Loek Cleophas. 2016. Correctness-by-Construction and Post-Hoc Verification: A Marriage of Convenience?. In International Symposium on Leveraging Applications of Formal Methods. Springer, 730--748.

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)Towards AI-Assisted Correctness-by-Construction Software DevelopmentLeveraging Applications of Formal Methods, Verification and Validation. Software Engineering Methodologies10.1007/978-3-031-75387-9_14(222-241)Online publication date: 27-Oct-2024
  • (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
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
VaMoS '20: Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems
February 2020
184 pages
ISBN:9781450375016
DOI:10.1145/3377024
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].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 06 February 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. correctness-by-construction
  2. deductive verification
  3. design-by-contract
  4. formal methods
  5. variational software

Qualifiers

  • Research-article

Conference

VaMoS '20

Acceptance Rates

Overall Acceptance Rate 66 of 147 submissions, 45%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • 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)Towards AI-Assisted Correctness-by-Construction Software DevelopmentLeveraging Applications of Formal Methods, Verification and Validation. Software Engineering Methodologies10.1007/978-3-031-75387-9_14(222-241)Online publication date: 27-Oct-2024
  • (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)Runtime Verification of Correct-by-Construction Driving ManeuversLeveraging Applications of Formal Methods, Verification and Validation. Verification Principles10.1007/978-3-031-19849-6_15(242-263)Online publication date: 22-Oct-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