JML: A Notation for Detailed Design

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.

[1]  Gary T. Leavens,et al.  Larch/C++ Reference Manual , 1999 .

[2]  Yang Meng Tan Formal Specification Techniques for Engineering Modular C Programs , 1996, The Springer International Series in Software Engineering.

[3]  Jeannette M. Wing Writing Larch interface language specifications , 1987, TOPL.

[4]  Kevin Lano,et al.  Object-oriented specification case studies , 1994 .

[5]  Gary T. Leavens,et al.  Forcing behavioral subtyping through specification inheritance , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[6]  Kim Mens,et al.  Vrije Universiteit Brussel Faculteit Wetenschappen Reuse Contracts: Managing the Evolution of Reusable Assets Reuse Contracts: Managing the Evolution of Reusable Assets , 2022 .

[7]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[8]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[9]  James Gosling,et al.  The Java Programming Language" The Java Series , 1996 .

[10]  Arnd Poetzsch-Heffter,et al.  Specification and verification of object-oriented programs , 1997 .

[11]  Albert L. Baker,et al.  Enhancing the Pre- and Postcondition Technique for More Expressive Specifications , 1999, World Congress on Formal Methods.

[12]  MeyerBertrand,et al.  Design by Contract , 1997 .

[13]  Richard L. Wexelblat,et al.  Proceedings of the Workshop on Interface Definition Languages, January 20, 1994, Portland, Oregon, USA, in conjunction with POPL 1994 , 1994, IDL.

[14]  Gary T. Leavens An Overview of Larch/C++: Behavioral Specifications for C++ Modules , 1996 .

[15]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[16]  Kate Finney,et al.  Mathematical Notation in Formal Specification: Too Difficult for the Masses? , 1996, IEEE Trans. Software Eng..

[17]  Sankar Gowri Sivaprasad Larch/CORBA: Specifying the Behavior of CORBA-IDL Interfaces , 1995 .

[18]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[19]  Ian J. Hayes,et al.  Specification case studies , 1987 .

[20]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[21]  Stuart H. Zweben,et al.  Part I: the RESOLVE framework and discipline: a research synopsis , 1994, SOEN.

[22]  K. Rustan M. Leino,et al.  Data groups: specifying the modification of extended state , 1998, OOPSLA '98.

[23]  Gregor Kiczales,et al.  Issues in the Design and Documentation of Class Libraries , 1992, OOPSLA.

[24]  K. R Leino,et al.  Towards Reliable Modular Programs , 1995 .

[25]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[26]  Gary T. Leavens,et al.  Larch Frequently Asked Questions , 2001 .

[27]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.

[28]  Shekhar H. Kirani Speci~cation and veri~cation of object-oriented programs , 1994 .

[29]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[30]  K. Rustan M. Leino A myth in the modular specification of programs , 1996 .

[31]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[32]  Albert L. Baker,et al.  Executing Formal Specifications with Constraint Programming , 2000 .

[33]  Bill Harvey,et al.  Specification of behavioral semantics in object-oriented information modeling , 1994, OOPS Messenger.

[34]  Yang Meng Tan Interface Language for Supporting Programming Styles , 1994, Workshop on Interface Definition Languages.

[35]  Alan Wills Refinement in Fresco , 1994 .

[36]  John Mylopoulos,et al.  On the Frame Problem in Procedure Specifications , 1995, IEEE Trans. Software Eng..

[37]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[38]  Jeannette M. Wing A TWO-TIERED APPROACH TO SPECIFYING PROGRAMS , 1983 .

[39]  Richard A. Lerner,et al.  Specifying objects of concurrent systems , 1991 .

[40]  Gregor Kiczales,et al.  Issues in the Design and Documentation of Class Libraries , 1992, OOPSLA.

[41]  Guy L. Steele,et al.  The Java Language Specification , 1996 .