Developing BON as an Industrial-Strength Formal Method

The emerging Unified Modelling Language has been touted as merging the best features of existing modelling languages, and has been adopted by leading companies and vendors as a universal software modelling language. Some researchers are also looking to UML as a basis for formal methods development. A less known approach is BON (the Business Object Notation), which is based on the principles of seamlessness, reversibility and design by contract, making it an ideal basis for industrial-strength formal methods development of objectoriented software. In this paper, we argue that BON is much more suited for the application of formal methods than UML. We describe the properties that an industrial-strength formal method must have, show how algorithm refinement can be done in BON (as an example of using BON for formal development), and contrast BON with other approaches, including UML, Z, B and VDM.

[1]  Richard F. Paige,et al.  Formal methods in the classroom: the logic of real-time software design , 1998, Proceedings Real-Time Systems Education III.

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

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

[4]  Fred B. Schneider,et al.  A Logical Approach to Discrete Math , 1993, Texts and Monographs in Computer Science.

[5]  Les Hatton,et al.  Does OO Sync with How We Think? , 1998, IEEE Softw..

[6]  Jonathan S. Ostroff,et al.  Temporal logic for real-time systems , 1989 .

[7]  Richard F. Paige,et al.  A Meta-Method for Formal Method Integration , 1997, FME.

[8]  Frank Waters,et al.  The B Book , 1971 .

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

[10]  Brian Ritchie,et al.  Synthesising Structure from Flat Specifications , 1998, B.

[11]  Debora Weber-Wulff,et al.  Selling Formal Methods to Industry , 1993, FME.

[12]  Bart Jacobs,et al.  Reasoning about Java classes: preliminary report , 1998, OOPSLA '98.

[13]  Eric C. R. Hehner A Practical Theory of Programming , 1993, Texts and Monographs in Computer Science.

[14]  Bernhard Rumpe,et al.  The UML as a formal modeling notation , 1998, Comput. Stand. Interfaces.

[15]  Bernhard Rumpe,et al.  The UML as a formal modeling notation , 1998, Comput. Stand. Interfaces.

[16]  Brian Ritchie,et al.  Investigating the Integration of two Formal Methods , 1998, Formal Aspects of Computing.

[17]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[18]  Jean-Marc Nerson,et al.  Seamless Object-Oriented Software Architecture - Analysis and Design of Reliable Systems , 1995 .

[19]  Luciano Baresi,et al.  Toward formalizing structured analysis , 1998, TSEM.

[20]  Anthony Hall,et al.  Seven myths of formal methods , 1990, IEEE Software.