Advertisement

JML: A Notation for Detailed Design

  • Gary T. Leavens
  • Albert L. Baker
  • Clyde Ruby
Part of the The Springer International Series in Engineering and Computer Science book series (SECS, volume 523)

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.

Keywords

Mathematical Notation Detailed Design Specification Language Priority Queue Behavioral Specification 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [AG98]
    Arnold, K. and Gosling, J. The Java Programming Language. The Java Series. Addison-Wesley, Reading, MA, second edition, 1998.Google Scholar
  2. [BMR95]
    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.CrossRefGoogle Scholar
  3. [DL96]
    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. [F96]
    Finney, K. Mathematical notation in formal specification: Too difficult for the masses? IEEE Transactions on Software Engineering, 22(2): 158–159, February 1996.CrossRefGoogle Scholar
  5. [GHG+93]
    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.zbMATHCrossRefGoogle Scholar
  6. [GJS96]
    Gosling, J., Joy, B., and Steele, G. The Java Language Specification. The Java Series. Addison-Wesley, Reading, MA, 1996.zbMATHGoogle Scholar
  7. [H72]
    Hoare, C. A. R. Proof of correctness of data representations. Acta Informatica, 1(4):271–281, 1972.zbMATHCrossRefGoogle Scholar
  8. [H93]
    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. [KL92]
    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. [L95a]
    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. [L95b]
    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. [L96]
    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.CrossRefGoogle Scholar
  15. [L98]
    Leavens, G. T. Larch frequently asked questions. Version 1.89. Available in http://www.cs.iastate.edu/~leavens/larch-faq.html, January 1998.
  16. [L99]
    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. [LB99]
    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. [LBR99]
    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. [LH94]
    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. [LW94]
    Liskov, B. and Wing, J. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6): 1811–1841, November 1994.CrossRefGoogle Scholar
  21. [M92a]
    Meyer, B. Applying “design by contract“. Computer, 25(10):40–51, October 1992.CrossRefGoogle Scholar
  22. [M92b]
    Meyer, B. Eiffel: The Language. Object-Oriented Series. Prentice Hall, New York, N.Y., 1992.Google Scholar
  23. [M94]
    Morgan, C. Programming from Specifications: Second Edition. Prentice HallInternational, Hempstead, UK, 1994.zbMATHGoogle Scholar
  24. M97Meyer.
    [M97]Meyer, B. Object-oriented Software Construction. Prentice Hall, New York, N.Y., second edition, 1997.zbMATHGoogle Scholar
  25. [OSWZ94]
    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.CrossRefGoogle Scholar
  26. [PH97]
    Poetzsch-Heffter, A. Specification and verification of object-oriented programs. Habilitation thesis, Technical University of Munich, January 1997.Google Scholar
  27. [S92]
    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. [S95]
    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. [SLMD96]
    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. [T94]
    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.CrossRefGoogle Scholar
  31. [T95]
    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.
    [W87]Wing, J. M. Writing Larch interface language specifications. ACM Transactions on Programming Languages and Systems, 9(1): 1–24, January 1987.MathSciNetzbMATHCrossRefGoogle Scholar
  34. [W90]Wing, J. M. A specifier’s introduction to formal methods. Computer, 23(9):8–24, September 1990.CrossRefGoogle Scholar
  35. [W94]Wills, A. Refinement in Fresco. In Lano and Houghton [LH94], chapter 9, pages 184–201.Google Scholar
  36. [WLB98]
    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

Copyright information

© Springer Science+Business Media New York 1999

Authors and Affiliations

  • Gary T. Leavens
    • 1
  • Albert L. Baker
    • 1
  • Clyde Ruby
    • 1
  1. 1.Department of Computer ScienceIowa State UniversityAmesUSA

Personalised recommendations