Employing OCL for specifying behavior compliance

Master thesis

Supervisor: Vladimir Mencl
Student: Jiří Samek

Port State Machines [2], an extension of UML 2.0 [3] State Machines permitting to capture the interleaving and nesting of operation calls, employ the trace semantics and compliance relation of Behavior Protocols [1] to reason on component substitutability.

The key goal of this thesis is to make the Port State Machines more accessible for use in UML tools by employing the Object Constraint Language (OCL) [4] to express the compliance relation. An additional goal is to also express in OCL the various constraints imposed on Port State Machines.

These goals have been achieved and implemented using the Object Constraint Language Environment (OCLE) 2.0, developed in the Computer Science Research Laboratory at the Babes-Bolyai University.

Current Status

The thesis has been successfully defended on Sep 20, 2005, and is now publicly accessible and available for download.


The following are available for download:

The electronic appendix (CD) includes an OCLE project containing the OCL specification of the behavior compliance relation written in OCL. The OCLE project also contains the UML 2.0 metamodel extended with the Port State Machine metaclasses.
The CD also includes four sample Port State Machines, specified as command scripts in the USE notation.
Please note that in order to open and use the project, you will have to first download and install OCLE.

You may also wish to access the original thesis proposal.


[1] Plasil, F., Visnovsky, S.: Behavior Protocols for Software Components, IEEE Transactions on Software Engineering, vol. 28, no. 11, Nov 2002

[2] Mencl, V.: Specifying Component Behavior with Port State Machines, Electronic Notes in Theoretical Computer Science, vol. 101C pp. 129-153, Proceedings of the Workshop on the Compositional Verification of UML Models (CVUML, Oct 21, 2003, part of UML 2003), Edited by F. de Boer and M. Bonsangue, Elsevier Science, DOI 10.1016/j.entcs.2004.02.019, Nov 2004

[3] OMG: Unified Modeling Language: Superstructure, version 2.0, Final Adopted specification, ptc/03-08-02, http://www.omg.org/uml/

[4] OMG: UML 2.0: Object Constraint Language, 2nd revised submission, document ad/03-01-07, http://www.omg.org/uml/