Hindawi Publishing Corporation
Advances in Software Engineering
Volume 2009, Article ID 656810, 26 pages
doi:10.1155/2009/656810
Research Article
A Polyadic pi-Calculus Approach for the Formal
Specification of UML-RT
J. M. Bezerra and C. M. Hirata
Computer Science Department, Instituto Tecnol´ ogico de Aeron´ autica (ITA), S˜ ao Jos´ e dos Campos, SP 12228-900, Brazil
Correspondence should be addressed to J. M. Bezerra, juliana@ita.br
Received 6 November 2008; Revised 31 March 2009; Accepted 20 May 2009
Recommended by Thomas B. Hilburn
UML-RT is a UML real-time profile that allows modeling event-driven and distributed systems; however it is not a formal
specification language. This paper proposes a formal approach for UML-RT through a mapping of the UML-RT communicating
elements into the π -calculus (or pi-calculus) process algebra. The formal approach both captures the intended behavior of the
system being modeled and provides a rigorous and nonambiguous system description. Our proposal differentiates from other
research work because we map UML-RT to π -calculus, and we allow the mapping of dynamic reconfiguration of UML-RT unwired
ports. We illustrate the usage and applicability of the mapping through three examples. The first example focuses on explaining
the mapping; the second one aims to demonstrate the use of the π -calculus definitions to verify system requirements; the third
case is an example of mobile processes called Handover protocol.
Copyright © 2009 J. M. Bezerra and C. M. Hirata. This is an open access article distributed under the Creative Commons
Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is
properly cited.
1. Introduction
The specification and development of real-time systems are a
challenge due to their characteristic of criticality and safety.
Formal methods have been seen as effective in real-time
system development [1, 2]. The main advantage of formal
methods is to allow a rigorous and nonambiguous system
description; so it is possible, through formal verification,
to evaluate some aspects such as consistency, completeness,
and correctness. The formal verification involves the formal
modeling of the system, the formal specification of require-
ments or properties, and the inference rules to prove that the
model satisfies the properties (model checking) [3–5].
The standard DO-178B, Software Considerations in
Airborne Systems and Equipment Certification [6], is an
acceptable guideline for embedded software approval used
by the certification authorities. It suggests the use of
formal methods to complement tests, because they generally
increase confidence on correct behavior or that anomalous
behavior will not occur. Furthermore, formal verification of
models helps the designers to find out errors earlier in the
modeling phase, which is essential to reduce costs according
to Pressman [7].
The most well-known modeling language is Unified
Modeling Language (UML), officially defined by the Object
Management Group (OMG). Up to the UML version 1.5
[8], the standard lacks support for some important aspects
of embedded real-time systems, such as time constraints,
signals, and independent components. Aiming to adapt UML
to real-time system modeling, some UML profiles were
proposed [9, 10]. For instance, Rational Software Company
(now IBM) defined the UML RealTime (UML-RT) [11]
profile that permits to model distributed and event-driven
systems. The profile is supported by the IBM Rational Rose
RealTime (RoseRT) tool [12].
With the advance of UML 2.0 [13], UML was improved
to model large-scale software systems including the ability
to model entire system architectures. The basis of the
improvement comes from the experience with various
architectural description languages, such as UML-RT [14].
RoseRT is now commercialized as IBM Rational Rose
Technical Developer tool [15]; however the features of UML-
RT are still present, because they are the source of UML
2.0 structure concepts, for example, the capsule is directly
translated to structured classes in UML 2.0.