Semantic Issues of OCL: Past, Present, and Future

We report on the results of a long-term project to formalize the seman- tics of OCL 2.0 in Higher-order Logic (HOL). The ultimate goal of the project is to provide a formalized, machine-checked semantic basis for a theorem proving en- vironment for OCL (as an example for an object-oriented specification formalism) which is as faithful as possible to the original informal semantics. We report on var- ious (minor) inconsistencies of the OCL semantics, discuss the more recent attempt to align the OCL semantics with UML 2.0 and suggest several extensions which make, in our view, OCL semantics more fit for future extensions towards program verifica- tions and specification refinement.

[1]  Luis Mandel,et al.  On the Expressive Power of OCL , 1999, World Congress on Formal Methods.

[2]  Jean Bézivin,et al.  The Unified Modeling Language. «UML»’98: Beyond the Notation , 1998, Lecture Notes in Computer Science.

[3]  Piotr Kosiuczenko Specification of Invariability. , 2006 .

[4]  Achim D. Brucker,et al.  HOL-Z 2.0: A Proof Environment for Z-Specifications , 2003, J. Univers. Comput. Sci..

[5]  Peter B. Andrews An introduction to mathematical logic and type theory - to truth through proof , 1986, Computer science and applied mathematics.

[6]  Reiner Hähnle,et al.  Towards an Efficient Tableau Proof Procedure for Multiple-Valued Logics , 1990, CSL.

[7]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[8]  James Gosling The Java Language Specification - Second Edition , 2000 .

[9]  Achim D. Brucker,et al.  The HOL-OCL Book , 2006 .

[10]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

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

[12]  Andreas Paepcke,et al.  Conference proceedings on Object-oriented programming systems, languages, and applications , 1991, Conference on Object-Oriented Programming Systems, Languages, and Applications.

[13]  Albert L. Baker,et al.  JML: A Notation for Detailed Design , 1999, Behavioral Specifications of Businesses and Systems.

[14]  Piotr Kosiuczenko Specification of invariability in OCL , 2006, MoDELS'06.

[15]  Daniel Jackson,et al.  Some Shortcomings of OCL, the Object Constraint Language of UML , 2000, TOOLS.

[16]  Mark Richters,et al.  A precise approach to validating UML models and OCL constraints , 2002 .

[17]  Bernhard Rumpe,et al.  The Amsterdam Manifesto on OCL , 2014, Object Modeling with the OCL.

[18]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[19]  Stuart Kent,et al.  Reflections on the Object Constraint Language , 1998, UML.

[20]  Burkhart Wolff,et al.  Formalizing Java's Two's-Complement Integral Type in Isabelle/HOL , 2003, Electron. Notes Theor. Comput. Sci..

[21]  Setrag Khoshafian,et al.  Object identity , 1986, OOPLSA '86.

[22]  Bernhard Rumpe,et al.  Meaningful modeling: what's the semantics of "semantics"? , 2004, Computer.

[23]  Tony Clark,et al.  Object Modeling with the OCL: The Rationale behind the Object Constraint Language , 2002 .

[24]  Achim D. Brucker,et al.  HOL-OCL: Experiences, Consequences and Design Choices , 2002, UML.

[25]  Heinrich Hußmann,et al.  On the Precise Meaning of OCL Constraints , 2002, Object Modeling with the OCL.

[26]  Zhe Yang,et al.  Modular checking for buffer overflows in the large , 2006, ICSE.

[27]  Achim D. Brucker,et al.  Using Theory Morphisms for Implementing Formal Methods Tools , 2002, TYPES.

[28]  Achim D. Brucker,et al.  A Package for Extensible Object-Oriented Data Models with an Application to IMP++ , 2006 .