Abstract
Refinement-based correctness-preserving transformations are considered as the gold standard of program transformations. While we do not dispute the merits of transforming programs in a way that preserves their correctness, we argue that the vast majority of software engineering processes are in fact instances of correctness enhancement rather than correctness preservation. In this paper, we discuss mathematics of correctness enhancement, i.e., the process of making a program more correct than it is with respect to a specification; then we highlight in what way and to what extent correctness enhancement pervades the practice of software engineering.
Original language | English (US) |
---|---|
Pages (from-to) | 37-73 |
Number of pages | 37 |
Journal | International Journal of Critical Computer-Based Systems |
Volume | 10 |
Issue number | 1 |
DOIs | |
State | Published - 2020 |
All Science Journal Classification (ASJC) codes
- General Computer Science
Keywords
- Absolute correctness
- Adaptive maintenance
- Corrective maintenance
- Extreme programming
- Program derivation
- Program merger
- Program repair
- Program upgrade
- Relative correctness
- Software processes
- Test driven design
- Whitebox reuse