The Role of Executable Abstract Programs in Software Development and Documentation
Egon Boerger

TL;DR
This paper advocates for the use of Executable Abstract Programs in software development and documentation, emphasizing their role in improving understanding, reliability, and maintenance of complex systems.
Contribution
It introduces Executable Abstract Programs as a formal, executable documentation method that integrates seamlessly into software development workflows for better design justification and system clarity.
Findings
Enhances understanding of system design through executable documentation
Improves system reliability and resilience via formal behavioral definitions
Reduces maintenance costs by facilitating reuse and change management
Abstract
We present Executable Abstract Programs and analyse their role for software development and documentation. The intuitive understanding of these programs fits the computational mindset of software system engineers and is supported by a simple but precise behavioural definition. Therefore, they can be smoothly integrated in the practitioner's daily work to rigorously formulate every design and implementation decision taken on the path from the Executable Abstract Program for the requirements to the targeted and efficiently runnable code. The Executable Abstract Programs of the resulting system documentation represent definitions of implementation steps one can check and justify by testing (due to their executable character) or by reasoning (due to the mathematical definition of their behaviour). For complex systems the implementation involves multiple (orthogonal or successive)…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software System Performance and Reliability · Advanced Software Engineering Methodologies
