skip to main content
article

Correctness-by-Construction: An Overview of the CorC Ecosystem

Authors Info & Claims
Published:05 April 2023Publication History
Skip Abstract Section

Abstract

Correctness-by-Construction (CbC) is an incremental software development technique in the field of formal methods to create functionally correct programs guided by a specification. In contrast to post-hoc verification, where the specification and verification take part after implementing a program, with CbC the specification is defined first, and then the program is successively created using a small set of refinement rules that define side conditions preserving the correctness of the program. This specification-first, refinement-based approach as pursued by CbC has the advantage that errors are likely to be detected earlier in the design process and can be tracked more easily. Even though the idea of CbC emerged over 40 years ago, CbC is not widespread and is mostly used to create small algorithms.We believe in the idea of CbC and envision a scaled CbC approach that contributes to solving problems of modern software verification. In this short paper, we give an overview of our research regarding CbC in four different lines of research. For all of them, we provide tool support for building the CorC ecosystem that even further enables CbC-based development for different fields of application and size of software systems. Furthermore, we give an outlook on future work that extends on our concepts for CbC.

References

  1. Jean-Raymond Abrial. 2010. Modeling in Event-B: System and Software Engineering. Cambridge University Press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Wolfgang Ahrendt, Bernhard Beckert, Richard Bubel, Reiner Hähnle, Peter H. Schmitt, and Mattias Ulbrich. 2016. Deductive Software Verification -- The KeY Book. Springer.Google ScholarGoogle Scholar
  3. 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.Google ScholarGoogle Scholar
  4. Maurice H ter Beek, Loek Cleophas, Ina Schaefer, and BruceWWatson. 2018. X-by-Construction. In International Symposium on Leveraging Applications of Formal Methods. Springer, 359--364.Google ScholarGoogle Scholar
  5. Tabea Bordis, Loek Cleophas, Alexander Kittelmann, Tobias Runge, Ina Schaefer, and Bruce W Watson. 2022. Re-CorC-ing KeY: Correctby- Construction Software Development Based on KeY. In The Logic of Software. A Tasting Menu of Formal Methods. Springer, 80--104.Google ScholarGoogle Scholar
  6. 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.Google ScholarGoogle Scholar
  7. Tabea Bordis, Tobias Runge, and Ina Schaefer. 2020. Correctness-by- Construction for Feature-Oriented Software Product Lines. In International Conference on Generative Programming: Concepts and Experiences. 22--34.Google ScholarGoogle Scholar
  8. Tabea Bordis, Tobias Runge, David Schultz, and Ina Schaefer. 2022. Family-based and Product-based Development of Correct-by- Construction Software Product Lines. Journal of Computer Languages (2022), 101119.Google ScholarGoogle Scholar
  9. Krzysztof Czarnecki and Ulrich Eisenecker. 2000. Generative Programming: Methods, Tools, and Applications. Citeseer.Google ScholarGoogle Scholar
  10. Edsger W. Dijkstra. 1976. A Discipline of Programming (1st ed.). Prentice Hall PTR.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. David Gries. 1981. The Science of Programming (1st ed.). Springer.Google ScholarGoogle Scholar
  12. Anthony Hall and Roderick Chapman. 2002. Correctness by Construction: Developing a Commercial Secure System. IEEE software 19, 1 (2002), 18--25.Google ScholarGoogle Scholar
  13. Alexander Knüppel, Tobias Runge, and Ina Schaefer. 2020. Scaling Correctness-by-Construction. In International Symposium on Leveraging Applications of Formal Methods. Springer, 187--207.Google ScholarGoogle Scholar
  14. Derrick G. Kourie and Bruce W. Watson. 2012. The Correctness-by- Construction Approach to Programming. Springer.Google ScholarGoogle Scholar
  15. Marcel Oliveira, Ana Cavalcanti, and JimWoodcock. 2003. ArcAngel: A Tactic Language for Refinement. Formal Aspects of Computing (2003).Google ScholarGoogle Scholar
  16. Tobias Runge, Tabea Bordis, Thomas Thüm, and Ina Schaefer. 2021. Teaching Correctness-by-Construction and Post-hoc Verification--The Online Experience. In Formal Methods Teaching Workshop. Springer, 101--116.Google ScholarGoogle Scholar
  17. Tobias Runge, Alexander Knüppel, Thomas Thüm, and Ina Schaefer. 2020. Lattice-based Information Flow Control-by-Construction for Security-by-Design. In Proceedings of the 8th International Conference on Formal Methods in Software Engineering. 44--54.Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Tobias Runge, Ina Schaefer, Loek Cleophas, Thomas Thüm, Derrick Kourie, and Bruce W. Watson. 2019. Tool Support for Correctness-by- Construction. In International Conference on Fundamental Approaches to Software Engineering. Springer, 25--42.Google ScholarGoogle Scholar
  19. Tobias Runge, Thomas Thüm, Loek Cleophas, Ina Schaefer, and BruceWWatson. 2019. Comparing Correctness-by-Construction with Post-Hoc Verification - A Qualitative User Study. In Refine. Springer.Google ScholarGoogle Scholar
  20. 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. Comput. Surveys (2014).Google ScholarGoogle Scholar
  21. 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. Science of Computer Programming 79, 0 (2014), 70--85.Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Article Metrics

    • Downloads (Last 12 months)50
    • Downloads (Last 6 weeks)10

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!