Abstract
We present an approach for automatically generating relevant, focused questions to be asked during code inspection sessions. The method is based on Hoare-logic. The novel key idea is the introduction of informal predicates, which, though not having a formal definition, may have a perfectly legal and unique informal interpretation. Such predicates make it easier to express requirements in terms of assertions, while still allowing for the automatic derivation of verification conditions. Moreover, informal predicates enable reasoning about assertions and verifying verification conditions at a level which is suitable for man rather than machine.
We’re sorry, something doesn't seem to be working properly.
Please try refreshing the page. If that doesn't work, please contact support so we can address the problem.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Krzysztof R. Apt. Ten years of Hoare's logic: A survey — part I. ACM Transactions on Programming Languages and Systems, 3(4):431–483, October 1981.
A. Bijlsma. Calculating with pointers. Science of Computer Programming, 12(3):191–205, September 1989.
A. Bijlsma. Calculating with procedure calls. Information Processing Letters, 46(5):211–217, July 1993.
Bernard Carré and Jonathan Garnsworthy. SPARK — an annotated Ada subset for safety-critical programming. Presented at TRI-Ada, 1990
Arie de Bruin. Goto statements: Semantics and deductive systems. Acta Informatica, 15:385–424, 1981.
Edsger W. Dijkstra. A Discipline of Programming. Prentice Hall, 1976.
Michael E. Fagan. Design and code inspections to reduce errors in program development. IBM Systems Journal, 15(1):182–211, 1976.
Michael E. Fagan. Advances in software inspections. IEEE Transactions on Software Engineering, 12(7):744–751, July 1986.
David W. Flater and Yelena Yesha. Extensions to the C programming language for enhanced fault detection. Software-Practice and Experience, 23(6):617–628, June 1993.
Robert W. Floyd. Assigning meanings to programs. In J. T. Schwartz, editor, Proceedings of the Symposiom in Applied Mathematics, pages 19–32. American Mathematical Society, 1967.
Jonathan Garnsworthy, Ian O'Neill, and Bernard Carré. Automatic proof of the absence of run-time errors. In ADA: Towards Maturity, pages 108–122. IOS Press, 1993.
David Gries. The Science of Programming. Springer-Verlag, 1981.
Wim H. Hesselink. Proof rules for recursive procedures. Formal Aspects of Computing, 5:554–570, 1993.
C. A. R. Hoare. An axiomatic basis for computer programming. Communication of the ACM, 12(10):576–80, 583, October 1969.
C. A. R. Hoare. Procedures and parameters: An axiomatic approach. In E. Engeler, editor, Sumposium on Semantics of Algorithmic Languages, Lecture Notes in Computer Science, pages 102–116. Springer-Verlag, 1971.
David C. Luckham and Friedrich W. von Henke. An overview of Anna, a specification language for Ada. IEEE Software, 2(2):9–22, March 1995.
Alain J. Martin. A general proof rule for procedures in predicate transformer semantics. Acta Informatica, 20:301–313, 1983.
David S. Rosenblum. A practical approach to programming with assertions. IEEE Transactions on Software Engineering, 21(1):19–31, January 1995.
Glen W. Russell. Experience with inspection in ultralarge-scale developments. IEEE Software, 8(1):25–31, 1991.
Sun Microsystems Inc. and Information-technology Promotion Agency. ADL Translator User's Guide: Getting Started with ADLT, December 1995.
Maarten H. van Emden. Structured inspection of code. Software Testing, Verification and Reliability, 2:133–153, 1992.
Hwei Yin and James M. Bieman. Improving software quality with assertion insertion. In Proceedings of the IEEE International Test Conference, pages 831–839 IEEE, 1994.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bonnier, S., Heyer, T. (1997). COMPASS: A comprehensible assertion method. In: Bidoit, M., Dauchet, M. (eds) TAPSOFT '97: Theory and Practice of Software Development. CAAP 1997. Lecture Notes in Computer Science, vol 1214. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0030642
Download citation
DOI: https://doi.org/10.1007/BFb0030642
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-62781-4
Online ISBN: 978-3-540-68517-3
eBook Packages: Springer Book Archive