But who will guard the guardians? [OOP]
David Maley, Ivor Spence
Abstract
David Maley, Ivor Spence
Abstract
Design by Contract is widely accepted as a valuable software design methodology for improving software quality. Its incorporation into the Eiffel language has been largely responsible for this. However, the Eiffel language restricts the expressivity of what may be verified in the contract primarily to propositional logic. When the contract is non-trivial, if we wish to retain contract-checking then we must write our own validation routines. How can we be sure that the code that checks the correctness is itself correct? The question was first posed by Juvenal in the first century A.D. 'Sed quis custodiet ipsos custodes?'. The level of genericity now possible in C++ at last offers a possible step forward.
A significance statement is not available in the OpenAlex record.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Design by Contract is widely accepted as a valuable software design methodology for improving software quality. Its incorporation into the Eiffel language has been largely responsible for this. However, the Eiffel language restricts the expressivity of what may be verified in the contract primarily to propositional logic. When the contract is non-trivial, if we wish to retain contract-checking then we must write our own validation routines. How can we be sure that the code that checks the correctness is itself correct? The question was first posed by Juvenal in the first century A.D. 'Sed quis custodiet ipsos custodes?'. The level of genericity now possible in C++ at last offers a possible step forward.
Key concepts: Eiffel, Design by contract, Programming language, Computer science, Correctness, Guard (computer science), Software, Software engineering