Electronic Notes in Theoretical Computer Science · 2001 · 187 citations · 13 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesSoftware EngineeringAssertion-based VerificationModel CheckingSoftware TestingType CheckingVerificationAssertion CheckingAssertionsDynamic VerificationProgram VerificationRun-time MonitoringSpecification CheckingSpecification-based VerificationStatic Verification
Design by Contract, proposed by Meyer for the programming language Eiffel, is a technique that allows run-time checks of specification violation and their treatment during program execution. Jass, Java with assertions, is a Design by Contract extension for Java allowing to annotate Java programs with specifications in the form of assertions. The Jass tool is a pre-compiler that translates annotated into pure Java programs in which compliance with the specification is dynamically tested. Besides the standard Design by Contract features known from classical program verification (e.g. pre- and postconditions, invariants), Jass additionally supports refinement, i.e. subtyping, checks and the novel concept of trace assertions. Trace assertions are used to monitor the dynamic behaviour of objects in time.
13
An axiomatic basis for computer programming
C. A. R. Hoare · Communications of the ACM · 1969 · 3.9K citations · Full text
Communicating sequential processes
Microprocessors and Microsystems · 1986 · 2.2K citations
An axiomatic basis for computer programming
C. A. R. Hoare · Communications of the ACM · 1983 · 1.5K citations
Willem Visser, Klaus Havelund, Guillaume Brat et al. · Automated Software Engineering · 2003 · 1.4K citations