Skip to main content

Abstract

JML is a behavioral interface specification language tailored to Java. It is designed to be written and read by working software engineers, and should require only modest mathematical training. It uses Eiffel-style syntax combined with model-based semantics, as in VDM and Larch. JML supports quantifiers, specification-only variables, and other enhancements that make it more expressive for specification than Eiffel and easier to use than VDM and Larch.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arnold, K. and Gosling, J. The Java Programming Language. The Java Series. Addison-Wesley, Reading, MA, second edition, 1998.

    Google Scholar 

  2. Borgida, A., Mylopoulos, J., and Reiter, R. On the frame problem in procedure specifications. IEEE Transactions on Software Engineering, 21(10):785–798, October 1995.

    Article  Google Scholar 

  3. Dhara, K. K. and Leavens, G. T. Forcing behavioral subtyping through specification inheritance. In Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, pages 258–267. IEEE Computer Society Press, March 1996. A corrected version is Iowa State University, Dept. of Computer Science TR #95-20c.

    Google Scholar 

  4. Finney, K. Mathematical notation in formal specification: Too difficult for the masses? IEEE Transactions on Software Engineering, 22(2): 158–159, February 1996.

    Article  Google Scholar 

  5. Guttag, J. V, Horning, J. J., Garland, S., Jones, K., Modet, A., and Wing, J. Larch: Languages and Tools for Formal Specification. Springer-Verlag, New York, N.Y.,1993.

    Book  MATH  Google Scholar 

  6. Gosling, J., Joy, B., and Steele, G. The Java Language Specification. The Java Series. Addison-Wesley, Reading, MA, 1996.

    MATH  Google Scholar 

  7. Hoare, C. A. R. Proof of correctness of data representations. Acta Informatica, 1(4):271–281, 1972.

    Article  MATH  Google Scholar 

  8. Hayes, I., editor.Specification Case Studies. International Series in Computer Science. Prentice-Hall, Inc., second edition, 1993.

    Google Scholar 

  9. [J90]Jones, C. B. Systematic Software Development Using VDM. International Series in Computer Science. Prentice Hall, Englewood Cliffs, N.J., second edition, 1990.

    Google Scholar 

  10. Kiczales, G. and Lamping, J. Issues in the design and documentation of class libraries. ACM SIGPLAN Notices, 27(10):435–451, October 1992. OOPSLA’ 92 Proceedings, Andreas Paepcke (editor).

    Google Scholar 

  11. [L91]Lerner, R. A. Specifying objects of concurrent systems. Ph.D. Thesis CMU-CS-91-131, School of Computer Science, Carnegie Mellon University, May 1991.

    Google Scholar 

  12. Leino, K. R. M. A myth in the modular specification of programs. Technical Report KRML 63, Digital Equipment Corporation, Systems Research Center, 130 Lytton Avenue Palo Alto, CA 94301, November 1995. Obtain from the author, at rustan@pa.dec.com.

    Google Scholar 

  13. Leino, K. R. M. Toward Reliable Modular Programs. PhD thesis, California Institute of Technology, 1995. Available as Technical Report Caltech-CS-TR-95-03.

    Google Scholar 

  14. Leavens, G. T. An overview of Larch/C++: Behavioral specifications for C++ modules. In Kilov, H. and Harvey, W., editors, Specification of Behavioral Semantics in Object-Oriented Information Modeling, chapter 8, pages 121–142. Kluwer Academic Publishers, Boston, 1996. An extended version is TR #96-01d, Department of Computer Science, Iowa State University, Ames, Iowa, 50011.

    Chapter  Google Scholar 

  15. Leavens, G. T. Larch frequently asked questions. Version 1.89. Available in http://www.cs.iastate.edu/~leavens/larch-faq.html, January 1998.

  16. Leavens, G. T. Larch/C++ Reference Manual. Version 5.41. Available in ftp://ftp.cs.iastate.edu/pub/larchc++/lcpp.ps.gz or on the World Wide Web at the URL http://www.cs.iastate.edu/~leavens/larchc++.html, April 1999.

  17. Leavens, G. T. and Baker, A. L. Enhancing the pre-and postcondition technique for more expressive specifications. Technical Report 97-19a, Iowa State University, Department of Computer Science, February 1999.

    Google Scholar 

  18. Leavens, G. T, Baker, A. L., and Ruby, C. Preliminary design of JML: A behavioral interface specification language for Java. Technical Report 98-06e, Iowa State University, Department of Computer Science, June 1999.

    Google Scholar 

  19. Lano, K. and Haughton, H., editors. Object-Oriented Specification Case Studies. The Object-Oriented Series. Prentice Hall, New York, N.Y., 1994.

    Google Scholar 

  20. Liskov, B. and Wing, J. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6): 1811–1841, November 1994.

    Article  Google Scholar 

  21. Meyer, B. Applying “design by contract“. Computer, 25(10):40–51, October 1992.

    Article  Google Scholar 

  22. Meyer, B. Eiffel: The Language. Object-Oriented Series. Prentice Hall, New York, N.Y., 1992.

    Google Scholar 

  23. Morgan, C. Programming from Specifications: Second Edition. Prentice HallInternational, Hempstead, UK, 1994.

    MATH  Google Scholar 

  24. [M97]Meyer, B. Object-oriented Software Construction. Prentice Hall, New York, N.Y., second edition, 1997.

    MATH  Google Scholar 

  25. Ogden, W. E, Sitaraman, M., Weide, B. W, and Zweben, S. H. Part I: The RESOLVE framework and discipline — a research synopsis. ACM SIGSOFT Software Engineering Notes, 19(4):23–28, Oct 1994.

    Article  Google Scholar 

  26. Poetzsch-Heffter, A. Specification and verification of object-oriented programs. Habilitation thesis, Technical University of Munich, January 1997.

    Google Scholar 

  27. Spivey, J. M. The Z Notation: A Reference Manual.International Series in Computer Science.Prentice-Hall, New York, N.Y.,second edition, 1992.

    Google Scholar 

  28. Sivaprasad, G. Larch/CORBA: Specifying the behavior of CORBA-IDL interfaces. Technical Report 95-27a, Department of Computer Science, Iowa State University, Ames, Iowa, 50011, December 1995.

    Google Scholar 

  29. Steyaert, P., Lucas, C, Mens, K., and D’Hondt, T. Reuse contracts: Managing the evolution of reusable assets. In OOPSLA’ 96 Conference on Object-Oriented Programming Systems, Languagges and Applications, pages 268–285. ACM Press, October 1996. ACM SIGPLAN Notices, Volume 31, Number 10.

    Google Scholar 

  30. Tan, Y. M. Interface language for supporting programming styles. ACM SIGPLAN Notices, 29(8):74–83, August 1994. Proceedings of the Workshop on Interface Definition Languages.

    Article  Google Scholar 

  31. Tan, Y. M. Formal Specification Techniques for Engineering Modular C Programs, volume 1 of Kluwer International Series in Software Engineering. Kluwer Academic Publishers, Boston, 1995.

    Google Scholar 

  32. [W83]Wing, J. M. A two-tiered approach to specifying programs. Technical Report TR-299, Massachusetts Institute of Technology, Laboratory for Computer Science, 1983.

    Google Scholar 

  33. [W87]Wing, J. M. Writing Larch interface language specifications. ACM Transactions on Programming Languages and Systems, 9(1): 1–24, January 1987.

    Article  MathSciNet  MATH  Google Scholar 

  34. [W90]Wing, J. M. A specifier’s introduction to formal methods. Computer, 23(9):8–24, September 1990.

    Article  Google Scholar 

  35. [W94]Wills, A. Refinement in Fresco. In Lano and Houghton [LH94], chapter 9, pages 184–201.

    Google Scholar 

  36. Wahls, T., Leavens, G. T, and Baker, A. L. Executing formal specifications with constraint programming. Technical Report 97-12a, Department of Computer Science, Iowa State University, 226 Atanasoff Hall, Ames, Iowa 50011, August 1998. Available by anonymous ftp from ftp.cs.iastate.edu or by e-mail from almanac @ cs.iastate.edu.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer Science+Business Media New York

About this chapter

Cite this chapter

Leavens, G.T., Baker, A.L., Ruby, C. (1999). JML: A Notation for Detailed Design. In: Kilov, H., Rumpe, B., Simmonds, I. (eds) Behavioral Specifications of Businesses and Systems. The Springer International Series in Engineering and Computer Science, vol 523. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-5229-1_12

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-5229-1_12

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-7383-4

  • Online ISBN: 978-1-4615-5229-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics