skip to main content
10.1145/2846680.2846691acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
short-paper

Some usability hypotheses for verification

Published:26 October 2015Publication History

ABSTRACT

The idea of specifying and verifying software to eliminate errors has been studied extensively over the last three decades or more. Recent advances in automated theorem proving have given rise to a range of new verification tools being developed. Despite this, very little is known about the effect of using such tools on software development. In this paper, we present several verification-related usability hypotheses which we believe warrant further investigation. These hypotheses are based on observations from the literature, as well as our own experiences in developing and using the Whiley verification system.

References

  1. C. A. R. Hoare and N. Wirth. An axiomatic definition of the programming language PASCAL. Acta Informatica, 2(4):335–355, 1973. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. E. W. Dijkstra. Guarded commands, nondeterminancy and formal derivation of programs. CACM, 18:453–457, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. Gries. The science of programming. Springer-Verlag, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. King. A Program Verifier. PhD thesis, Carnegie-Mellon University, 1969. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. K. Broda, S. Eisenbach, H. Khoshnevisan, and Steven Vickers. Reasoned Programming. Prentice Hall, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Roland Backhouse. Program Construction. Wiley, 2003.Google ScholarGoogle Scholar
  7. J.B. Almeida, M.J. Frade, J.S. Pinto, and S Melo de Sousa. Rigorous Software Development, An Introduction to Program Verification. Springer-Verlag, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Derrick G. Kourie and Bruce W. Watson. The Correctness-by-Construction Approach to Programming. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. L. Lamport. Specifying Systems, The TLA+ Language and Tools for Hardware and Software Engineers. Addison-Wesley, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. C.A.R. Hoare. The verifying compiler: A grand challenge for computing research. JACM, 50(1):63–69, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. L. Peter Deutsch. An interactive program verifier. Ph.D., 1973.Google ScholarGoogle Scholar
  12. D. I. Good. Mechanical proofs about computer programs. In Mathematical logic and programming languages, pages 55– 75, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. Luckham, SM German, F. von Henke, R. Karp, P. Milne, D. Oppen, W. Polak, and W. Scherlis. Stanford Pascal Verifier user manual. Technical Report CS-TR-79-731, Stanford University, Department of Computer Science, 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. David L. Detlefs, K. Rustan M. Leino, Greg Nelson, and James B. Saxe. Extended static checking. SRC Research Report 159, Compaq Systems Research Center, 1998.Google ScholarGoogle Scholar
  15. C. Flanagan, K. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for Java. In Proc. PLDI, pages 234–245, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. G. T. Leavens, Y. Cheon, C. Clifton, C. Ruby, and D. R. Cok. How the design of JML accommodates both runtime assertion checking and formal verification. Science of Computer Programming, 55(1-3):185–208, March 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Barnett, M. Fähndrich, K. R. M. Leino, P. Müller, W. Schulte, and H. Venter. Specification and verification: the Spec# experience. CACM, 54(6):81–91, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. K. Rustan M. Leino. Dafny: An automatic program verifier for functional correctness. In Proc. LPAR, volume 6355 of LNCS, pages 348–370. Springer-Verlag, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Filliˆatre and A. Paskevich. Why3 — where programs meet provers. In Proc. ESOP, pages 125–128, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. B. Jacobs, J. Smans, P. Philippaerts, F. Vogels, W. Penninckx, and F. Piessens. Verifast: A powerful, sound, predictable, fast verifier for C and Java. pages 41–55. Springer-Verlag, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. D. J. Pearce and L. Groves. Whiley: a platform for research in software verification. In Proc. SLE, pages 238–248, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  22. D. J. Pearce and Lindsay Groves. Reflections on verifying software with Whiley. In Proc. FTSCS, pages 142–159, 2013.Google ScholarGoogle Scholar
  23. J. Bowen and M. Hinchey. Ten commandments of Formal Methods... ten years later. IEEE Computer, 39(1), 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Ted Lewis. Where is software headed? A virtual roundtable. IEEE Computer, 28(8):20–32, August 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. L. Lamport. Who builds a house without drawing blueprints? CACM, 58(4):38–41, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. J. Bowen and M. Hinchey. Ten commandments of formal methods. IEEE Computer, 28(4):56–63, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. N. Polikarpova, C. Furia, Y. Pei, Y. Wei, and B. Meyer. What good are strong specifications? In Proc. ICSE, pages 262–271, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Emerson Murphy-Hill and Dan Grossman. How programming languages will co-evolve with software engineering: a bright decade ahead. In Proc. FOSE. ACM, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. S. C. B. de Souza, N. Anquetil, and K. M. de Oliveira. A study of the documentation essential to software maintenance. In SIGDOC, pages 68–75. ACM Press, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. C. Male, D. J. Pearce, A. Potanin, and C. Dymnikov. Formalisation and implementation of an algorithm for bytecode verification of @NonNull types. Science of Computer Programming, pages 587–568, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. R. W. Floyd. Assigning meaning to programs. In Proceedings of Symposia in Applied Mathematics, volume 19, pages 19– 31. American Mathematical Society, 1967.Google ScholarGoogle Scholar
  32. I. R. Katz and J. R. Anderson. Debugging: An analysis of bug-location strategies. HCI, 3(4):351–399, 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. S. Fitzgerald, G. Lewandowski, R. McCauley, L. Murphy, B. Simon, L. Thomas, and C. Zander. Debugging: finding, fixing and flailing, a multi-institutional study of novice debuggers. Computer Science Education, 18(2):93–116, 2008.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Some usability hypotheses for verification

              Recommendations

              Comments

              Login options

              Check if you have access through your login credentials or your institution to get full access on this article.

              Sign in
              • Published in

                cover image ACM Conferences
                PLATEAU 2015: Proceedings of the 6th Workshop on Evaluation and Usability of Programming Languages and Tools
                October 2015
                67 pages
                ISBN:9781450339070
                DOI:10.1145/2846680

                Copyright © 2015 ACM

                Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                Publisher

                Association for Computing Machinery

                New York, NY, United States

                Publication History

                • Published: 26 October 2015

                Permissions

                Request permissions about this article.

                Request Permissions

                Check for updates

                Qualifiers

                • short-paper

                Acceptance Rates

                Overall Acceptance Rate5of8submissions,63%

                Upcoming Conference

              • Article Metrics

                • Downloads (Last 12 months)1
                • Downloads (Last 6 weeks)0

                Other Metrics

              PDF Format

              View or Download as a PDF file.

              PDF

              eReader

              View online with eReader.

              eReader