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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Arnold, K. and Gosling, J. The Java Programming Language. The Java Series. Addison-Wesley, Reading, MA, second edition, 1998.
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.
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.
Finney, K. Mathematical notation in formal specification: Too difficult for the masses? IEEE Transactions on Software Engineering, 22(2): 158–159, February 1996.
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.
Gosling, J., Joy, B., and Steele, G. The Java Language Specification. The Java Series. Addison-Wesley, Reading, MA, 1996.
Hoare, C. A. R. Proof of correctness of data representations. Acta Informatica, 1(4):271–281, 1972.
Hayes, I., editor.Specification Case Studies. International Series in Computer Science. Prentice-Hall, Inc., second edition, 1993.
[J90]Jones, C. B. Systematic Software Development Using VDM. International Series in Computer Science. Prentice Hall, Englewood Cliffs, N.J., second edition, 1990.
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).
[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.
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.
Leino, K. R. M. Toward Reliable Modular Programs. PhD thesis, California Institute of Technology, 1995. Available as Technical Report Caltech-CS-TR-95-03.
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.
Leavens, G. T. Larch frequently asked questions. Version 1.89. Available in http://www.cs.iastate.edu/~leavens/larch-faq.html, January 1998.
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.
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.
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.
Lano, K. and Haughton, H., editors. Object-Oriented Specification Case Studies. The Object-Oriented Series. Prentice Hall, New York, N.Y., 1994.
Liskov, B. and Wing, J. A behavioral notion of subtyping. ACM Transactions on Programming Languages and Systems, 16(6): 1811–1841, November 1994.
Meyer, B. Applying “design by contract“. Computer, 25(10):40–51, October 1992.
Meyer, B. Eiffel: The Language. Object-Oriented Series. Prentice Hall, New York, N.Y., 1992.
Morgan, C. Programming from Specifications: Second Edition. Prentice HallInternational, Hempstead, UK, 1994.
[M97]Meyer, B. Object-oriented Software Construction. Prentice Hall, New York, N.Y., second edition, 1997.
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.
Poetzsch-Heffter, A. Specification and verification of object-oriented programs. Habilitation thesis, Technical University of Munich, January 1997.
Spivey, J. M. The Z Notation: A Reference Manual.International Series in Computer Science.Prentice-Hall, New York, N.Y.,second edition, 1992.
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.
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.
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.
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.
[W83]Wing, J. M. A two-tiered approach to specifying programs. Technical Report TR-299, Massachusetts Institute of Technology, Laboratory for Computer Science, 1983.
[W87]Wing, J. M. Writing Larch interface language specifications. ACM Transactions on Programming Languages and Systems, 9(1): 1–24, January 1987.
[W90]Wing, J. M. A specifier’s introduction to formal methods. Computer, 23(9):8–24, September 1990.
[W94]Wills, A. Refinement in Fresco. In Lano and Houghton [LH94], chapter 9, pages 184–201.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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