Flexible Correct-By-Construction Programming

dc.contributor.authorRunge, Tobias
dc.contributor.authorBordis, Tabea
dc.contributor.authorPotanin, Alex
dc.contributor.authorThum, Thomas
dc.contributor.authorSchaefer, Ina
dc.date.accessioned2024-11-04T00:07:28Z
dc.date.available2024-11-04T00:07:28Z
dc.date.issued2023
dc.date.updated2024-02-04T07:15:44Z
dc.descriptionThis work was partially supported by funding from the topic Engineering Secure Systems of the Helmholtz Association (HGF) and by KASTEL Security Research Labs (46.23.03). We thank Frederik Fr¨oling for his work on CbC-Block in his Master’s Thesis.
dc.description.abstractCorrectness-by-Construction (CbC) is an incremental program construction process to construct functionally correct programs. The programs are constructed stepwise along with a specification that is inherently guaranteed to be satisfied. CbC is complex to use without specialized tool support, since it needs a set of predefined refinement rules of fixed granularity which are additional rules on top of the programming language. Each refinement rule introduces a specific programming statement and developers cannot depart from these rules to construct programs. CbC allows to develop software in a structured and incremental way to ensure correctness, but the limited flexibility is a disadvantage of CbC. In this work, we compare classic CbC with CbC-Block and Trait-CbC. Both approaches CbC-Block and Trait-CbC, are related to CbC, but they have new language constructs that enable a more flexible software construction approach. We provide for both approaches a programming guideline, which similar to CbC, leads to well-structured programs. CbC-Block extends CbC by adding a refinement rule to insert any block of statements. Therefore, we introduce CbC-Block as an extension of CbC. Trait-CbC implements correctness-by-construction on the basis of traits with specified methods. We formally introduce Trait-CbC and prove soundness of the construction strategy. All three development approaches are qualitatively compared regarding their programming constructs, tool support, and usability to assess which is best suited for certain tasks and developers.
dc.format.mimetypeapplication/pdfen_AU
dc.identifier.issn1860-5974
dc.identifier.urihttps://hdl.handle.net/1885/733723207
dc.language.isoen_AUen_AU
dc.provenanceThis work is licensed under the Creative Commons Attribution License. To view a copy of this license, visit https://creativecommons.org/licenses/by/4.0/ or send a letter to Creative Commons, 171 Second St, Suite 300, San Francisco, CA 94105, USA, or Eisenacher Strasse 2, 10777 Berlin, Germany
dc.publisherInternational Federation of Computational Logic (IfCoLog)
dc.rights© 2023 The authors
dc.rights.licenseCreative Commons Attribution licence
dc.rights.urihttp://creativecommons.org/licenses/by/4.0/
dc.sourceLogical Methods in Computer Science
dc.subjectTraits
dc.subjectCorrectness-by-Construction
dc.subjectFormal Methods
dc.subjectPost-hoc Verification
dc.titleFlexible Correct-By-Construction Programming
dc.typeJournal article
dcterms.accessRightsOpen Access
local.bibliographicCitation.issue2
local.bibliographicCitation.lastpage36
local.bibliographicCitation.startpage1
local.contributor.affiliationRunge, Tobias, Karlsruhe Institute of Technology,
local.contributor.affiliationBordis, Tabea, Karlsruhe Institute of Technology
local.contributor.affiliationPotanin, Alex, College of Engineering, Computing and Cybernetics, ANU
local.contributor.affiliationThum, Thomas, University of Ulm
local.contributor.affiliationSchaefer, Ina, Karlsruhe Institute of Technology
local.contributor.authoremailu1121589@anu.edu.au
local.contributor.authoruidPotanin, Alex, u1121589
local.description.notesImported from ARIES
local.identifier.absfor461204 - Programming languages
local.identifier.absfor461208 - Software testing, verification and validation
local.identifier.absfor461200 - Software engineering
local.identifier.absseo220401 - Application software packages
local.identifier.ariespublicationu1121589xPUB1
local.identifier.citationvolume19
local.identifier.doi10.46298/lmcs-19(2:16)2023
local.identifier.uidSubmittedByu1121589
local.publisher.urlhttps://lmcs.episciences.org/
local.type.statusPublished Version
publicationvolume.volumeNumber19

Downloads

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
2211.15261.pdf
Size:
529.91 KB
Format:
Adobe Portable Document Format