proof obligations, are carried out automatically. The
automatic and interactive provers are also designed
to help specifiers to discharge the generated proof
obligations. All of these points make B well adapted
to large scale industrial projects (Behm,1998).
However, B is still difficult to learn and to use.This
is why we have proposed in our previous work (Ben
Younes and Jemni Ben Ayed, 2007) an approach
which combines the use of UML AD and Event B
for the specification and the verification of workflow
applications. The workflow is initially modeled
graphically with UML AD (Step1). After that, the
resulting graphical readable model is translated into
Event B in incremental development with successive
refinements (Step2). This refined model is enriched
by relevant properties (no deadlock, no livelock,
strong fairness, etc) (Step3) which will be proved
using the B4free tool (Clearsy,2004) (step4). So, this
allows one to rigorously verify semi-formal
specifications in AD UML by analysing derived
Event B models. On the other hand, we can use AD
UML specifications as a tool to develop Event B
specifications. In our works (Ben Younes and Jemni
Ben Ayed, 2007,2008) , we have presented the
translation process which uses the B method
refinement and proposed translation rules for the
basic concepts of UML AD (activity, Sequence of
activities, choice (decision), loop parallel activities
(fork and join) and atomic process) and also for
dynamic invocations concept (Ben Younes and
Jemni Ben Ayed, 2008) into Event B. In this paper,
we discuss contribution of our proposed approach
for the verification of workflow applications and we
extend our work presented in (Ben Younes and
Jemni Ben Ayed, 2007) by adding new translation
rules for the synchronization in UML AD ( event,
send/receive concepts) into Event B. Also, we
propose in this paper a solution to specify time in the
event B method and derivation of temporal
expressions in UML AD (timeout) into Event B.
These translation rules give not only a syntactical
translation, but also give a formal semantics using
the Event B method semantics for the activity
diagrams. In this context, there have been efforts for
defining semantics for activity diagram in the works
of Eshuis (Eshuis and al, 2001, 2004) and also the
works of (Guelfi and Mammar, 2005). However,
these works not consider the hierarchical
decomposition of activities in UML AD, and suffer
from the state number explosion. Moreover, in
Eshuis (Eshuis and al, 2004, 2001) approach, no
details are given about how time is defined.
Although, the work of (Guelfi and Mammar, 2005)
propose a systematic way for translating the
semantic of timed activity Diagrams into the
PROMELA input language of the SPIN model
checker, but they no consider the hierarchical
decomposition of activities in UML AD, no
translation rules are given about the refinement in
UML AD. Our contribution, in this context, consists
of using Event B method and its associate
refinement process to encode the hierarchical
decomposition of activities in UML AD and tools
for the formal verification of workflow applications.
Moreover, in the refinement of B, it is not needed to
re-prove these properties again while the model
complexity increases. Notice that this advantage is
important if we compare this approach to classical
model checking where the transition system
describing the model is refined and enriched like in
SPIN model checker. This paper is structured as
follows. Section 2 presents derivation rules of event,
send/receive event and time in UML AD into Event
B notation. By an example we illustrate our
contribution in section3. Finally, a summary of our
work concludes the paper
2 TRANSLATION FROM UML AD
TO EVENT B
A- The translation of the send event action into
Event B
In Event B, we translate the send of an internal event
by the definition of new variable v_Name_Evt for
each new internal event Name_Evt. This variable
takes the value TRUE if the event occurs and FALSE
in the other case.
B- The translation of the receive event action in
UML AD into Event B
In Event B, we translate the receive event action by:
The definition of a new boolean variable
v_Name_Evt for each event Name_Evt generated
by the environment. The definition of a new variable
hand;the generation of an event Detect_Evt. The B
event Detect-Evt allows all event (for example v-E)
to have a random value. It simulates the event
detection when the detection system has the control.
The control is given alternatively to the detection
system when hand =1 and to the control system in
the other cases.
C- The representation of the time in Event B
The timeout expressed in B, will impose alternation
between the clock, the control system and the
detection system. We use the variable hand and the
control is given alternatively to the clock when
SPECIFICATION AND VERIFICATION OF WORKFLOW APPLICATIONS USING A COMBINATION OF UML
ACTIVITY DIAGRAMS AND EVENT B
313