27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

concrete language syntax; and behavior can be a mapping or<br />

transformation into another language [6,7].<br />

III. ACTION DESCRIPTION LANGUAGE<br />

Fig. 2 illustrates the ADL metamodel considered as th e<br />

source model that corresponds to the target model or the<br />

activity diagram metamodel presented in Fig. 1. Meta Object<br />

Facility [8] is used to develop ADL on the basis of the objects<br />

or tokens residing the activity diagram. Rather than focusing on<br />

actions that do not enable the detection of objects between two<br />

actions, this research opts to focus on objects as th e key<br />

concept to link between two actions. In other words, an action<br />

is regarded as the relation of two objects. Therefore, an action<br />

must have at least one input object and one output object.<br />

Figure 2. ADL metamodel<br />

Since the intent of ADL is to explain relations between<br />

objects, or actions, the textual notation language is developed<br />

in terms of actions and relations of actions. The language<br />

contains the keywords:<br />

action, end, decision, if, then, else, endif,<br />

initiate, break, terminate<br />

And the textual syntax grammar built on EBNF [9] is defined<br />

as following:<br />

::= 'diagram' ( |<br />

| )* 'end'<br />

::= 'action' <br />

* 'end'<br />

::= 'name' <br />

| '' (','<br />

)*<br />

| 'precondition' <br />

| 'postcondition' <br />

::= '->'<br />

['[' ']'] ('->'<br />

['[' ']'])*<br />

::= 'decision' 'from' <br />

* 'end'<br />

::= 'if' 'then' <br />

()* ('else' <br />

()*)* 'endif'<br />

::= | <br />

::= (','<br />

)*<br />

A. Defining Input and Output of An Action<br />

Since the approach uses an object to create a co nnection<br />

between two actions, the grammar of a n action is defined as<br />

follows:<br />

action a<br />

O2 /* an output object O2 */<br />

end<br />

Hence, an action can be described as a path in directed graph,<br />

as expressed in (1).<br />

a = O1 → a → O2<br />

<br />

B. Defining Sequence of Actions<br />

A sequence of actions can be defined by two methods: 1)<br />

use explicit objects to create a co nnection; and 2) use implicit<br />

objects to create a connection.<br />

The former method uses the input and output objects<br />

explicitly defined in an action to create a co nnection between<br />

two actions. For example,<br />

01 action a 05 action b<br />

02 O3<br />

04 end 08 end<br />

Hence, a sequence of actions can be derived as stated in (2):<br />

a = O1 → a → O2<br />

<br />

b = O2 → b → O3<br />

then a . b = O1 → a → O2 → b → O3 <br />

The latter method provides the alternative grammar to<br />

reduce the complexity of ADL scripts by defining a sequence<br />

of actions directly without specifying the binding object, or the<br />

implicit object is used to create a connection. For example,<br />

01 action a 05 -> O3<br />

02 b<br />

04 action b<br />

The line 07 defines a sequ ence of actio ns with the implicit<br />

object that is created and bound to the output of action a and<br />

the input of action b. The result is tantamount to (2).<br />

C. Defining Concurrent of Actions<br />

Since the ADL grammar cannot directly describe parallel<br />

behaviors, process algebra [10] is used to replace them with<br />

sequential behaviors as expressed in (3).<br />

(a . b) || (a . c) = a . (b || c) <br />

Given a script containing concurrent of actions as follows:<br />

01 action a 07 -> O3<br />

02 O2 09 action c<br />

04 end 10 O4<br />

06

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!