Where academic tradition
meets the exciting future

Generating Class Contracts from Deterministic UML Protocol Statemachines

Ivan Porres, Irum Rauf, Generating Class Contracts from Deterministic UML Protocol Statemachines. In: Sudipto Ghosh (Ed.), Models in Software Engineering, 172–185, Springer, 2010.


A UML protocol state machine describes a behavioral interface for a class as a number of states and transitions between states triggered by method calls. In this paper, we present an approach to generate behavioral class interfaces in the form of class contracts from UML protocol state machines. The generated contracts can be used for documentation, test case generation, test case oracle, and as run-time assertions and thus help to test and validate the implementation of a class against its interface. We formalize protocol state machines with its structure and semantics for generating class contracts. The state invariants of the source and target states are considered along with the pre- and post-conditions of the transitions. Different types of transitions like simple, join, fork, high-level, and self transitions are supported, as well as non-deterministic behavior. The approach is supported by a tool to generate automatically the contracts from UML models.

BibTeX entry:

  title = {Generating Class Contracts from Deterministic UML Protocol Statemachines},
  booktitle = {Models in Software Engineering},
  author = {Porres, Ivan and Rauf, Irum},
  editor = {Ghosh, Sudipto},
  publisher = {Springer},
  pages = {172–185},
  year = {2010},
  keywords = {Testing, UML, state machine, contract},

Belongs to TUCS Research Unit(s): Software Engineering Laboratory (SE Lab)

Publication Forum rating of this publication: level 1

Edit publication