An Accessible Formal Specification of the UML and OCL Meta-Model in Isabelle/HOL

UML is the de-facto standard for system modeling. Due to its visual syntax and expressiveness, it is widely accepted and used in the industry. However, it is a semi-formal means of system specification and thus prone to inconsistencies. We believe that UML models need to be thoroughly verified because verification of UML models helps to find errors in the early system design. Object constraint language (OCL) somewhat alleviates this problem but is not always enough. Past attempts at formally specifying UML for verification include those based on simplistic Z specifications and the much more complex ones based on shallow embedding of UML and OCL in Higher Order Logic (HOL). All these approaches are either too simplistic or too complex for the software industry's purposes. In this paper, we formalize UML's class diagram and OCL constraints in the highly successful automated/interactive theorem prover Isabelle using one of its built-in logics, HOL. The aim is to create a formalization, which is accessible to the average software engineer while still being powerful enough to be able to prove consistency and other useful properties. The formalization - based on UML2.0 and OCL2.0, addresses all concepts related to class diagrams such as type definitions, attributes, operations, aggregation and association along with the syntax and semantics of OCL expressions in the context of UML class diagrams.

[1]  Nate Foster,et al.  A Theory of Featherweight Java in Isabelle/HOL , 2006, Arch. Formal Proofs.

[2]  Fabio Massacci,et al.  An overview of the verification of SET , 2005, International Journal of Information Security.

[3]  Robert B. France,et al.  Towards a formalization of UML class structures in Z , 1997, Proceedings Twenty-First Annual International Computer Software and Applications Conference (COMPSAC'97).

[4]  Lawrence C. Paulson,et al.  Inductive analysis of the Internet protocol TLS , 1999, TSEC.

[5]  Tobias Nipkow,et al.  Isabelle/HOL , 2002, Lecture Notes in Computer Science.

[6]  María Victoria Cengarle,et al.  Towards OCL/RT , 2002, FME.

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

[8]  Sophie Dupuy-Chessa,et al.  An Overview of RoZ: A Tool for Integrating UML and Z Specifications , 2000, CAiSE.

[9]  Tobias Nipkow Jinja: Towards a Comprehensive Formal Semantics for a Java-like Language , 2003 .

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

[11]  Jos Warmer,et al.  The object constraint language , 1998 .

[12]  Ann E. Kelley Sobel,et al.  Supporting the Formal Analysis of Software Designs , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).