31.01.2015 Views

TAOM4E: an Eclipse ready tool for Agent-Oriented ... - FBK | SE

TAOM4E: an Eclipse ready tool for Agent-Oriented ... - FBK | SE

TAOM4E: an Eclipse ready tool for Agent-Oriented ... - FBK | SE

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.

<strong>TAOM4E</strong>: <strong>an</strong> <strong>Eclipse</strong> <strong>ready</strong> <strong>tool</strong> <strong>for</strong> <strong>Agent</strong>-<strong>Oriented</strong><br />

Modeling. Issue on the development process.<br />

Davide Bertolini, Aliaksei Novikau, Angelo Susi, <strong>an</strong>d Anna Perini<br />

ITC-irst, Via Sommarive, 18, I-38050 Trento-Povo, Italy<br />

{bertolini,novikau,perini,susi}@itc.it<br />

Abstract. Current <strong>Agent</strong>-<strong>Oriented</strong> Software Engineering (AO<strong>SE</strong>) methodologies<br />

adopt a model-based approach <strong>for</strong> <strong>an</strong>alysis <strong>an</strong>d design, but, in order to become<br />

of practical use, they should include it in a clear <strong>an</strong>d customizable software<br />

development process <strong>an</strong>d provide CA<strong>SE</strong> <strong>tool</strong>s that support it.<br />

In this technical report we describe the <strong>TAOM4E</strong> (Tool <strong>for</strong> <strong>Agent</strong> <strong>Oriented</strong> visual<br />

Modeling <strong>for</strong> the <strong>Eclipse</strong> plat<strong>for</strong>m) <strong>tool</strong> supporting the Tropos agent-oriented<br />

software engineering methodology. Tropos provides a modeling l<strong>an</strong>guage based<br />

on a multi-agent paradigm; it supports <strong>an</strong>alysis techniques <strong>an</strong>d a structured modeling<br />

(design) process. The Tropos process covers whole software development<br />

cycle starting from the very first requirements.<br />

In developing the <strong>TAOM4E</strong> environment we are taking into account emerging<br />

guidelines <strong>an</strong>d st<strong>an</strong>dards from the OMG’ Model-Driven Architecture (MDA) initiative<br />

which proposes <strong>an</strong> approach to software development based on modeling<br />

<strong>an</strong>d automated mapping of models to code.<br />

The <strong>tool</strong> is based on the <strong>Eclipse</strong> Plat<strong>for</strong>m that offers a flexible solution to the<br />

problem of component integration.<br />

The motivations, the requirements <strong>an</strong>d the architecture <strong>for</strong> the <strong>TAOM4E</strong> <strong>tool</strong> are<br />

described here in the very details. The report includes the current architectural<br />

diagrams <strong>an</strong>d the working documents on the status of the development.<br />

1 Premise<br />

This technical report describes <strong>an</strong> ongoing work at ITC-irst (Distributed Intelligence<br />

research line, at SRA Division) on the development of a software environment <strong>for</strong> supporting<br />

the use <strong>an</strong>d the experimentation of the Tropos methodology, <strong>an</strong> agent oriented<br />

software engineering methodology that was initially proposed in 2001 [26, 9, 6].<br />

The environment, named Tool <strong>for</strong> <strong>Agent</strong> <strong>Oriented</strong> Modeling (TAOM), has been<br />

initially conceived as a modeler, supporting agent-oriented modeling in Tropos [5]. A<br />

motivation <strong>for</strong> this ef<strong>for</strong>t came from practitioners who tend to ask supporting <strong>tool</strong>s <strong>an</strong>d<br />

guidelines when applying a new methodology.<br />

Further motivations came together with new research line <strong>an</strong>d projects conducted<br />

at ITC-irst, such as the I2F framework aiming at a light integration of model checking<br />

techniques <strong>for</strong> the validation of portions of a model [27], the ASTRO project 1 aiming<br />

1 ASTRO is a research project in the field of web services <strong>an</strong>d service-oriented applications, with<br />

a focus on the integration of business processes that are distributed among the most disparate<br />

entities, http://www.astroproject.org/. The project is funded by MIUR.


at developing new design methods <strong>an</strong>d <strong>tool</strong>s <strong>for</strong> web-services, adopting a Model Driven<br />

Architecture approach [30] <strong>an</strong>d the STAMPS project 2 which extends the Astro project<br />

objectives [29].<br />

Currently, the development <strong>an</strong>d extension of the TAOM environment are driven by<br />

research goals on refining the process supported by Tropos <strong>an</strong>d on customizing it to the<br />

design of web services.<br />

A first prototype of the TAOM <strong>tool</strong> [30] has been developed <strong>an</strong>d distributed<br />

under GPL 2 license. The <strong>tool</strong> has been re-engineered on the ECLIP<strong>SE</strong><br />

plat<strong>for</strong>m (<strong>TAOM4E</strong>) <strong>an</strong>d it is currently distributed under the GPL 2 license<br />

(http://www.gnu.org/copyleft/gpl.html) [35].<br />

The main purpose of this report is to describe basic issues that have been addressed<br />

during the development of the <strong>TAOM4E</strong> environment <strong>an</strong>d to collect in<strong>for</strong>mation that<br />

c<strong>an</strong> be useful when extending <strong>an</strong>d maintaining the <strong>tool</strong>. Related research results have<br />

been published in scientific papers that will be referred in this report.<br />

Besides the authors of this report, several students contributed in different ways to<br />

the development of the TAOM <strong>tool</strong>, they are: Michela Strobbe, Nicola Villa, Antonella<br />

Pojer <strong>an</strong>d Nicola Fazzi.<br />

The document is structured as follows. In section 2 we briefly recall the Tropos<br />

methodology <strong>an</strong>d the development process it supports, basic ideas from the Model<br />

Driven Architecture initiative by OMG <strong>an</strong>d related work. In section 3 we discuss basic<br />

requirements <strong>for</strong> the Tropos environment. In section 4 we illustrate the <strong>tool</strong> architecture.<br />

In section 5 we describe available documentation. In section 7 we will discuss<br />

future work.<br />

2 Background<br />

2.1 The Tropos methodology<br />

Tropos [7, 9] is <strong>an</strong> agent-oriented software engineering methodology which provides:<br />

a modeling l<strong>an</strong>guage based on a multi-agent paradigm <strong>an</strong>d which supports <strong>an</strong>alysis<br />

techniques; a structured modeling (design) process; a set of <strong>tool</strong>s which support of the<br />

use of the <strong>an</strong>alysis techniques <strong>an</strong>d of the process itself 3 . The methodology consists<br />

of five phases, each characterized by a specific objectives, namely: Early Requirement,<br />

whose objective is to underst<strong>an</strong>d the domain with its stakeholders <strong>an</strong>d their individual<br />

<strong>an</strong>d shared goals; Late Requirements focuses on the elicitation of the requirements<br />

of the system-to-be; Architectural Design whose objective is to specify the system architecture<br />

in terms of a set of interacting software agents; Detailed Design, which is<br />

concerned with the specification of agent capabilities <strong>an</strong>d interaction; Implementation,<br />

whose objective is the production of code from the detailed design specification. The<br />

Tropos modeling l<strong>an</strong>guage rests on the i* framework [39]. It allows the representation<br />

of intentional <strong>an</strong>d social concepts, such as actor, goal <strong>an</strong>d softgoal, pl<strong>an</strong>, resource, <strong>an</strong>d<br />

2 The name st<strong>an</strong>ds <strong>for</strong> Software Methodology <strong>an</strong>d Technology <strong>for</strong> Peer-to-Peer Systems. The<br />

project is funded by PAT.<br />

3 A large international group is contributing to the extension of Tropos, as testified by the web<br />

site http://www.troposproject.org which provides useful resources.


a set of relationships between them, such as actor dependency, goal or pl<strong>an</strong> decomposition,<br />

me<strong>an</strong>s-end <strong>an</strong>d contribution relationships. The modeling process starts with the<br />

identification of critical actors in a domain along with their goals, <strong>an</strong>d proceeds with the<br />

<strong>an</strong>alysis of goals on behalf of each individual actor. In particular, given a root goal of <strong>an</strong><br />

actor, the software engineers may decide to delegate it to <strong>an</strong> actor al<strong>ready</strong> existing in the<br />

in the domain or to a new actor. Such delegations result in a network of relationships<br />

among actors in the domain. Moreover the software engineer may decide to <strong>an</strong>alyze a<br />

goal producing a set of subgoals. Goal <strong>an</strong>alysis generates a goal hierarchy where the<br />

leaves in various combinations represent concrete solutions to the root goal. Finally the<br />

software engineer may decide that a certain actor is able to satisfy the goal via a pl<strong>an</strong><br />

the actor is able to execute; in this case the goal is assigned to that actor (with no further<br />

delegations). The process is complete when all goals have been dealt with. In [7]<br />

this process is described in terms of a non-deterministic concurrent algorithm. Figure 1<br />

gives <strong>an</strong> intuitive ideas on how a Tropos model c<strong>an</strong> evolve from early requirements to<br />

detailed design.<br />

Fig. 1. Tropos: software development phases.<br />

2.2 Model Driven Architecture<br />

In developing the TAOM environment we are taking into account emerging guidelines<br />

<strong>an</strong>d st<strong>an</strong>dards from the OMG’ Model-Driven Architecture (MDA) initiative which proposes<br />

<strong>an</strong> approach to software development based on modeling <strong>an</strong>d automated mapping


of models to code [8]. A basic motivation of MDA is that of improving quality, by allowing<br />

<strong>for</strong> the reuse of models <strong>an</strong>d mappings between models, <strong>an</strong>d software maintainability<br />

by favoring a better consistency between models <strong>an</strong>d code. One of the basic concepts in<br />

MDA is that of distinguishing between a software design which is plat<strong>for</strong>m independent<br />

(Plat<strong>for</strong>m-Independent Models, PIM) from a software design that includes all the plat<strong>for</strong>m<br />

specific details (Plat<strong>for</strong>m-Specific Models, PSM). The two models c<strong>an</strong> be related<br />

through a tr<strong>an</strong>s<strong>for</strong>mation process which converts a PIM to its sem<strong>an</strong>tically equivalent<br />

PSM. A PIM model c<strong>an</strong> be the result of a chain of tr<strong>an</strong>s<strong>for</strong>mations between different<br />

abstraction level PIMs. In MDA, the use of various modeling concepts <strong>an</strong>d notations is<br />

<strong>for</strong>eseen with the idea to favor the exploitation of existing specification l<strong>an</strong>guages that<br />

are more appropriate to define views on dynamic aspects rather th<strong>an</strong> of structural ones<br />

of a given model.<br />

From a practical point of view, the MDA initiative is proposing a st<strong>an</strong>dard to which<br />

the meta-models of the specification l<strong>an</strong>guages used in the modeling process must be<br />

compli<strong>an</strong>t with, that is the Meta Object Facility (MOF) [24], <strong>an</strong>d a set of requirements<br />

<strong>for</strong> the tr<strong>an</strong>s<strong>for</strong>mation techniques that will be applied when tr<strong>an</strong>s<strong>for</strong>ming a source<br />

model into a target model, this is referred as the Query/View/Tr<strong>an</strong>s<strong>for</strong>mation (QVT) approach<br />

[16]. The MOF version which is currently available is the 1.4 which the Tropos<br />

modeling l<strong>an</strong>guage meta-model is compli<strong>an</strong>t to.<br />

For what concerns QVT, on one side OMG is working on the specification of the<br />

MOF 2.0 QVT requirements, <strong>an</strong>d on the other side several techniques <strong>for</strong> model tr<strong>an</strong>s<strong>for</strong>mation<br />

have been proposed.<br />

2.3 Related Work<br />

M<strong>an</strong>y <strong>Agent</strong>-<strong>Oriented</strong> Software methodologies have been proposed over the last few<br />

years [25, 17, 18, 38, 11] <strong>an</strong>d work were they are compared with other to point out<br />

differences <strong>an</strong>d complementarities are enriching the AO<strong>SE</strong> literature. For inst<strong>an</strong>ce, <strong>an</strong><br />

evaluation of Tropos with respect to other methodologies c<strong>an</strong> be found in [19, 31], both<br />

<strong>an</strong>alysis have been conducted adopting a feature based approach <strong>an</strong>d propose evaluation<br />

criteria at support of the choice of the most appropriate methodology to be adopted <strong>for</strong><br />

a particular application.<br />

Focusing on methodology metamodels, <strong>an</strong> <strong>an</strong>alysis of their characteristics at the<br />

agent <strong>an</strong>d at the system level has been presented in [4] considering ADELFE [3],<br />

GAIA [40] <strong>an</strong>d PASSI [2]. The aim of that work was to face interoperability issues<br />

between different methodologies.<br />

In [32] we c<strong>an</strong> find <strong>an</strong> extension of this comparison to Tropos. This comparison<br />

points out the fact that different metamodels (methodologies) may allow to model different<br />

properties of a system (e.g org<strong>an</strong>izational aspects, communications <strong>an</strong>d protocols),<br />

so in some cases it could be appropriate to use different metamodels, provided<br />

that <strong>an</strong> effective mapping between the common concepts is given. On the other side, it<br />

shows that even if metamodels share a comparable set of concepts, they c<strong>an</strong> be used in<br />

a different way by the different methodologies.<br />

As mentioned above, in developing the TAOM environment we adopt the OMG’s<br />

MDA approach to automatically tr<strong>an</strong>s<strong>for</strong>m source to target models which refer to different<br />

meta-models [28].


3 Tool Requirements<br />

A core set of requirements of <strong>an</strong> environment at support of the use of the Tropos methodology<br />

have been presented in [5], where the basic objective was to develop <strong>an</strong> AO modeler.<br />

As stated in section 1, further requirements have been motivated by research ideas<br />

emerging in following projects (ASTRO, STAMPS).<br />

This section, describe the set of requirements that have been implemented in the<br />

current version of the <strong>TAOM4E</strong> environment. They have been org<strong>an</strong>ized in functional<br />

<strong>an</strong>d nonfunctional requirements, <strong>an</strong>d described in the following subsections.<br />

3.1 Functional requirements<br />

The functional requirements are represented in the Figure 2 in <strong>an</strong> usecase diagram. All<br />

the usecases are correspondent to the following functional requirements:<br />

Fig. 2. <strong>TAOM4E</strong>: functional requirements.<br />

1 Ch<strong>an</strong>ging the Tropos metamodel in order to support several Tropos dialects. This<br />

requirement includes:


a) New nodes or relations c<strong>an</strong> be added or removed from the metamodel.<br />

b) Different notations c<strong>an</strong> be added to existed nodes <strong>an</strong>d relations. An example<br />

of the notations may be Formal Tropos. Formal Tropos specifications c<strong>an</strong> be<br />

added to the In<strong>for</strong>mal Tropos model as text.<br />

2 One of the main functional requirements <strong>for</strong> the <strong>tool</strong> is to provide the <strong>an</strong>alyst with<br />

model’s editing facilities like:<br />

a) Construct model with a visual editor.<br />

b) Query model on subject of some properties, <strong>for</strong> example number of some elements<br />

or consistency.<br />

c) Have different views on the model. The views c<strong>an</strong> be of different type to represent<br />

several properties of the model. They may contain the part of the model<br />

in order to be more underst<strong>an</strong>dable.<br />

d) The model should be able to be loaded <strong>an</strong>d saved.<br />

3 The Tropos process should be supported. According to this the following requirements<br />

should be satisfied:<br />

a) The <strong>tool</strong> should support the Tropos phases. All the diagrams <strong>an</strong>d activities<br />

should be separated according to the phases.<br />

b) The <strong>an</strong>alyst should be guided on the Tropos process. There should be some<br />

hints <strong>an</strong>d proper <strong>an</strong>alysis choices during the development.<br />

4 In order to support integration of other <strong>tool</strong>s, <strong>TAOM4E</strong> should give the possibility<br />

of tr<strong>an</strong>slating its own model to other l<strong>an</strong>guages like UML. This includes the<br />

following requirements:<br />

a) Have convenient <strong>for</strong>mat of the processed model.<br />

b) Have XML based of the saved model.<br />

3.2 Nonfunctional requirements<br />

We think that usability, extensibility <strong>an</strong>d flexibility nonfunctional requirements are the<br />

most essential <strong>for</strong> our <strong>tool</strong> while nonfunctional requirements like size, per<strong>for</strong>m<strong>an</strong>ce<br />

<strong>an</strong>d reliability are not as import<strong>an</strong>t <strong>for</strong> visual modelling environments. Some nonfunctional<br />

requirements are correlated with the functional requirements described in the<br />

Section 3.1. The three categories of nonfunctional requirements under our interest are<br />

described above:<br />

1 Usability. The requirements include all the things which make convenient visual<br />

modelling process like:<br />

a) Have the palette to choose the objects drown in the editor.<br />

b) Delete/add objects in the views <strong>an</strong>d in the model.<br />

c) Reconnect links from one object to others.<br />

d) Different colors <strong>for</strong> the objects in the editor. Have the possibility to define<br />

custom color palettes.<br />

e) Have the outline tree of the views <strong>an</strong>d of the model.<br />

f) Drag <strong>an</strong>d drop objects from the outline tree to the editor.<br />

g) Undo-redo of all the editing actions.<br />

h) Copy <strong>an</strong>d paste parts of diagrams.<br />

i) Ch<strong>an</strong>ging the types of the objects in the editor (like hardgoal to softgoal).


j) Export the diagrams in the picture, print the diagrams.<br />

2 Flexibility. This nonfunctional requirement me<strong>an</strong>s adjustment of the <strong>tool</strong> <strong>for</strong> different<br />

Tropos dialects <strong>an</strong>d <strong>an</strong>notations. Actually the requirements almost coincide<br />

with the functional requirements from the item 1, Section 3.1.<br />

3 Extensibility. One of the main goals of the <strong>tool</strong> is to integrate different Tropos techniques<br />

around the visual modeler. That is why the <strong>tool</strong> should be easily extendible<br />

with new functionalities. The nonfunctional requirements about extensibility coincide<br />

with items 2 <strong>an</strong>d 3 from Section 3.1. However there are additional requirements<br />

of this kind introduced here:<br />

a) Existing <strong>tool</strong>s should be able to be wrapped <strong>an</strong>d incorporated into the <strong>tool</strong>.<br />

b) There should be a way to create modules per<strong>for</strong>ming new functionality.<br />

c) There should be a way to integrate the <strong>for</strong>mal checking techniques in <strong>TAOM4E</strong>.<br />

4 Tool Architecture<br />

A Tropos modeler called TAOM compli<strong>an</strong>t with MDA metamodel interoperability<br />

st<strong>an</strong>dards has been described in [30]. The need of a higher flexible architecture which<br />

allow to easily extend it induced us to consider the opportunity to re-engineering<br />

this <strong>tool</strong> in the <strong>Eclipse</strong> Plat<strong>for</strong>m [21] that offers a flexible solution to the problem of<br />

component integration.<br />

<strong>Eclipse</strong> is <strong>an</strong> open source software development project, the purpose of which is to<br />

provide a highly integrated <strong>tool</strong> plat<strong>for</strong>m. The <strong>Eclipse</strong> Plat<strong>for</strong>m is designed <strong>an</strong>d built to<br />

meet the following requirements (as described in [21]) :<br />

1. Support the construction of a variety of <strong>tool</strong>s <strong>for</strong> application development;<br />

2. Support <strong>an</strong> unrestricted set of <strong>tool</strong> providers, including independent software vendors<br />

(ISVs);<br />

3. Support <strong>tool</strong>s to m<strong>an</strong>ipulate arbitrary content types;<br />

4. Facilitate seamless integration of <strong>tool</strong>s within <strong>an</strong>d across different content types <strong>an</strong>d<br />

<strong>tool</strong> providers;<br />

5. Allows <strong>for</strong> easy extension by third parties;<br />

6. Support both GUI <strong>an</strong>d non-GUI-based application development environments;<br />

7. Run on a wide r<strong>an</strong>ge of operating systems;<br />

8. Capitalize on the popularity of the Java programming l<strong>an</strong>guage <strong>for</strong> writing <strong>tool</strong>s;<br />

9. Do not focus on <strong>an</strong>y particular vertical domain.<br />

The <strong>Eclipse</strong> Plat<strong>for</strong>m’s principal role is to provide <strong>tool</strong> providers with mech<strong>an</strong>isms<br />

to use, <strong>an</strong>d rules to follow, that lead to seamlessly-integrated <strong>tool</strong>s. These mech<strong>an</strong>isms<br />

are exposed via well-defined API interfaces, classes, <strong>an</strong>d methods. The Plat<strong>for</strong>m also<br />

provides useful building blocks <strong>an</strong>d frameworks that facilitate developing new <strong>tool</strong>s.<br />

Figure 3 shows the major components of the <strong>Eclipse</strong> Plat<strong>for</strong>m (referring to release 3.0).<br />

<strong>Eclipse</strong> is built on a mech<strong>an</strong>ism <strong>for</strong> discovering, integrating, <strong>an</strong>d running modules<br />

called plug-ins. A contributor to <strong>Eclipse</strong> delivers as one or more plug-ins <strong>an</strong> offering<br />

that m<strong>an</strong>ifests itself with a product-specific user interface in the workbench (see Figure<br />

4). Multiple, usually unrelated, products c<strong>an</strong> be installed in one <strong>Eclipse</strong> inst<strong>an</strong>ce <strong>an</strong>d<br />

happily live <strong>an</strong>d cooperate to per<strong>for</strong>m a certain task ([22]).


Fig. 3. <strong>Eclipse</strong> 3.0 Plat<strong>for</strong>m, see [12]<br />

Fig. 4. <strong>Eclipse</strong> Plug-in architecture, see [15]<br />

Except <strong>for</strong> a small kernel known as the Plat<strong>for</strong>m Runtime, all of the <strong>Eclipse</strong> Plat<strong>for</strong>m’s<br />

functionality is located in plug-ins. Plug-ins are coded in Java. A typical plug-in<br />

consists of Java code in a JAR library, some read-only files, <strong>an</strong>d other resources such as<br />

images, web templates, message catalogs, native code libraries, etc. Some plug-ins do<br />

not contain code at all.<br />

Each plug-in has a m<strong>an</strong>ifest file declaring its interconnections to other plug-ins. The<br />

interconnection model is simple: a plug-in declares <strong>an</strong>y number of named extension<br />

points, <strong>an</strong>d <strong>an</strong>y number of extensions to one or more extension points in other plugins.<br />

A plug-ins extension points c<strong>an</strong> be extended by other plug-ins. An extension point<br />

may have a corresponding API interface. Other plug-ins contribute implementations of<br />

this interface via extensions to this extension point. Any plug-in is free to define new<br />

extension points <strong>an</strong>d to provide new API <strong>for</strong> other plug-ins to use (see Figure 5).<br />

On start-up, the Plat<strong>for</strong>m Runtime discovers the set of available plug-ins, reads<br />

their m<strong>an</strong>ifest files, <strong>an</strong>d builds <strong>an</strong> in-memory plug-in registry. The Plat<strong>for</strong>m matches


Fig. 5. <strong>Eclipse</strong> Plug-in interconnection pattern<br />

extension declarations by name with their corresponding extension point declarations so<br />

new features c<strong>an</strong> be added not only easily but seamlessly. As you per<strong>for</strong>m different tasks<br />

using <strong>Eclipse</strong>, it is usually impossible to tell where one plug-in ends <strong>an</strong>d <strong>an</strong>other begins<br />

(see [13]). In order to avoid a lengthy startup sequences, a plug-in is only activated<br />

when its code is actually needed based on user activity (lazy-loading [14]).<br />

Fig. 6. <strong>TAOM4E</strong> component view<br />

Figure 6 show the structure of the <strong>TAOM4E</strong> <strong>tool</strong> with regards to the <strong>Eclipse</strong> Plat<strong>for</strong>m<br />

<strong>an</strong>d the other required plug-ins namely GEF <strong>an</strong>d EMF that are described in the<br />

following section.


GEF The Graphical Editing Framework (GEF) is <strong>an</strong> open source framework dedicated<br />

to easily create rich graphical editors within <strong>Eclipse</strong> from <strong>an</strong> existing application model<br />

(see [20]).<br />

Fig. 7. GEF <strong>an</strong>d the <strong>Eclipse</strong> plat<strong>for</strong>m, see [20]<br />

It has been developed in order to:<br />

1. Display a Model graphically;<br />

2. Allow the User to interact with that model;<br />

3. Process <strong>an</strong>d interpret user input from Mouse & Keyboard;<br />

4. Provide hooks <strong>for</strong> updating the model making it full undo/redo-able.<br />

Figure 7 show the relation between the <strong>Eclipse</strong> Plat<strong>for</strong>m <strong>an</strong>d the 2 main component<br />

of the GEF framework (while their key responsibility are depicted in Figure 8):<br />

1. Draw2D which provides figures <strong>an</strong>d layout m<strong>an</strong>agers which <strong>for</strong>m the graphical<br />

layer of a GEF application;<br />

2. GEF core which provide <strong>an</strong> editing framework based on Viewers.<br />

Fig. 8. GEF architecture, see [20]<br />

GEF employs a model-view-controller (MVC) architecture:


1. Model: the framework is model agnostic, it works with <strong>an</strong>y models that support the<br />

following:<br />

(a) Notification mech<strong>an</strong>ism;<br />

(b) Persist <strong>an</strong>d restore state;<br />

(c) Comm<strong>an</strong>ds which operate on the model.<br />

2. View: Gef offers two types of Viewers:<br />

(a) Graphical one, based on Draw2D Figures;<br />

(b) Tree one, based on SWT Tree <strong>an</strong>d Tree items.<br />

3. Controller: bridges the view <strong>an</strong>d model. Each controller (EditPart) is responsible<br />

both <strong>for</strong> mapping the model to its view, <strong>an</strong>d <strong>for</strong> making ch<strong>an</strong>ges to the model. The<br />

EditPart also observes the model, <strong>an</strong>d updates the view to reflect ch<strong>an</strong>ges in the<br />

model’s state.<br />

EMF The <strong>Eclipse</strong> modeling framework (EMF) is a Java framework <strong>an</strong>d code generation<br />

facility <strong>for</strong> building <strong>tool</strong>s <strong>an</strong>d other applications based on a structured model<br />

(see [33]). EMF helps you rapidly turn your models into efficient, correct, <strong>an</strong>d easily<br />

customizable Java code. While <strong>Eclipse</strong> gives you <strong>an</strong> user interface <strong>an</strong>d file level integration,<br />

EMF aims at a data integration level thus enabling model driven development<br />

[14].<br />

EMF consists of two fundamental frameworks: the core framework <strong>an</strong>d EMF.Edit.<br />

The core framework provides basic generation <strong>an</strong>d runtime support to create Java implementation<br />

classes <strong>for</strong> a model. EMF.Edit extends <strong>an</strong>d builds on the core framework,<br />

adding support <strong>for</strong> generating adapter classes that enable viewing <strong>an</strong>d comm<strong>an</strong>d-based<br />

(undoable) editing of a model, <strong>an</strong>d even a basic working model editor.<br />

While EMF uses XMI (XML Metadata Interch<strong>an</strong>ge) as its c<strong>an</strong>onical <strong>for</strong>m of a<br />

model definition, there are several equivalent ways of creating a model into that <strong>for</strong>m<br />

(see Figure 9):<br />

1. Create the XMI document directly, using <strong>an</strong> XML or text editor;<br />

2. Export the XMI document from a modeling <strong>tool</strong> such as Rational Rose;<br />

3. Annotate Java interfaces with model properties.<br />

EMF started out as <strong>an</strong> implementation of the MOF (Meta Object Facility, <strong>an</strong> abstract<br />

l<strong>an</strong>guage <strong>an</strong>d framework <strong>for</strong> specifying, constructing, <strong>an</strong>d m<strong>an</strong>aging technology<br />

neutral meta-models proposed by OMG), but evolved from there based on the experience<br />

gained from implementing a large set of <strong>tool</strong>s using it. EMF c<strong>an</strong> be thought of as<br />

a highly efficient Java implementation of a core subset of the MOF API. To avoid confusion,<br />

the MOF-like core meta model in EMF is called Ecore instead of MOF. Given<br />

the new MOF 2.0 st<strong>an</strong>dard, EMF is essentially the same as the EMOF subset.<br />

4.1 The TAOM meta-model<br />

According to EMF input requirements, the <strong>TAOM4E</strong> metamodel has been defined using<br />

the Rational Rose modeler 4 . In order to assure <strong>an</strong> high level of flexibility the<br />

4 the diagrams presented in this section have been slightly simplified in order to better let the<br />

reader grab the main concepts without looking at the implementation detail. See “Appendix<br />

B: <strong>TAOM4E</strong> meta-model diagram [as of version 0.1.5].” <strong>for</strong> the complete diagrams.


Fig. 9. EMF Architecture, see [23]<br />

Fig. 10. An high-level view of the <strong>TAOM4E</strong> meta-model.<br />

meta-model has been divided into two logical area: business model (Core) <strong>an</strong>d view<br />

(Diagram). The first should contain only the schema of the data (sem<strong>an</strong>tic in<strong>for</strong>mation)<br />

that are related to the Tropos meta-model. It define packages/classes etc. related<br />

to the methodology concept without referring the diagram section. The second area is<br />

concerned with defining what is called the view model: it contains all the graphical in<strong>for</strong>mation<br />

that define a graphical diagram (a view on the model) with the necessary link<br />

to the core model elements. This solution decouple model element from view ones. A<br />

third utility area (Project) has been defined in order to better m<strong>an</strong>age the different artifact<br />

produced by the activity conducted during the various phases of the methodology<br />

supported by the <strong>tool</strong>.


The three high-level packages composing the meta-model are depicted in Figure 10:<br />

1. The Project package (Figure 11) define the concept of Project as <strong>an</strong> aggregation of<br />

different Diagrams (i.e. actor diagram <strong>an</strong>d goal diagram) that are related to a BusinessModel<br />

(namely the Tropos meta-model). This package serves as <strong>an</strong> aggregator<br />

of all the data related to a Tropos Project into a single logical structure that will<br />

be saved into <strong>an</strong> xmi document, avoiding synchronization problem of the different<br />

component with the shared model.<br />

Fig. 11. Project package of the <strong>TAOM4E</strong> meta-model.<br />

2. The Diagram package (Figure 12) define the structure <strong>an</strong>d the relationship of the<br />

graphical element that will be used in the different diagrams. The GenDiagram<br />

package define the generic structure of a diagram supported by the <strong>tool</strong> (Diagram)<br />

as <strong>an</strong> aggregation of different kind of DiagramObject (namely DiagramConnection<br />

<strong>an</strong>d DiagramNode) representing graphical connection <strong>an</strong>d graphical element<br />

respectivly. A special kind of node object (ContainerDiagramNode) is created in<br />

order to m<strong>an</strong>age containment relationship between graphical element (i.e. the Actor<br />

container in the Goal Diagram). Every DiagramObject could be related to the core<br />

element/s it is representing (<strong>an</strong> inst<strong>an</strong>ce of TroposModelElement). Given that structure<br />

in place representing a particular kind of diagram is a matter of creating a new<br />

package defining the graphical element as extension of the one al<strong>ready</strong> present in<br />

GenDiagram. At the moment we support two Tropos diagrams, namely actor <strong>an</strong>d<br />

goal diagram. The main objective of this packages (<strong>an</strong>d all its sub-ones) is to create<br />

a view on the different element of the model that could be persisted in <strong>an</strong> xmi file<br />

maintaing a clear separation <strong>an</strong>d indipendence beetween the different layer<br />

3. The Core packages (Figure 13) mimic the structure used in the Diagram one in<br />

order to define the core model of the <strong>tool</strong> hosting the Tropos meta-model. The<br />

GenCore package define a model (BusinessModel) has <strong>an</strong> aggregation of different<br />

kind of TroposModelElement namely TroposClass <strong>an</strong>d TroposRelation object that<br />

map respectively to <strong>an</strong> element <strong>an</strong>d a relation defined in the Tropos meta-model.<br />

The In<strong>for</strong>malCore package contain the definition of the element representing the<br />

Tropos meta-model (i.e. Actor, Goal, Dependency, Contribution). The twin pack-


Fig. 12. Diagram package of the <strong>TAOM4E</strong> meta-model.<br />

age, FormalCore, add the Formal Tropos specific element (i.e. GlobalProperty, LTL<br />

<strong>for</strong>mula <strong>an</strong>d attribute) to the pure Tropos corresponding one.<br />

5 Tool documentation<br />

All the public in<strong>for</strong>mation about the <strong>TAOM4E</strong> <strong>tool</strong> c<strong>an</strong> be found in the <strong>tool</strong>’s web<br />

site [35]. The site contains the link to the <strong>TAOM4E</strong> plug-in; the requirements on the<br />

installation of the <strong>tool</strong> <strong>an</strong>d the installation process; the in<strong>for</strong>mation about the license;<br />

the development team list <strong>an</strong>d papers on the <strong>TAOM4E</strong> <strong>tool</strong>. Also it allows <strong>for</strong> sending<br />

founded bugs <strong>an</strong>d proposed improvements.<br />

A brief demonstration about how to work with the <strong>tool</strong> c<strong>an</strong> be downloaded from the<br />

following link [34].


Fig. 13. Core package of the <strong>TAOM4E</strong> meta-model.<br />

6 Tool extensions <strong>an</strong>d mainten<strong>an</strong>ce<br />

This section contains the in<strong>for</strong>mation about the current work on the <strong>TAOM4E</strong> <strong>tool</strong> <strong>an</strong>d<br />

current extensions on the architecture of the <strong>tool</strong>.<br />

In the Appendix A c<strong>an</strong> be found the document with all the current requirements,<br />

bugs to be corrected <strong>an</strong>d the features under development. It contains the short description<br />

of the problems, the status <strong>an</strong>d the difficulties.<br />

Appendix B contains the current versions of the diagrams placed in the Sections 4.<br />

7 Future Work<br />

In this report we described: the motivations <strong>for</strong> the development of a CA<strong>SE</strong> <strong>tool</strong> at<br />

support of <strong>Agent</strong>-<strong>Oriented</strong> Modelling in Tropos, called <strong>TAOM4E</strong>; the requirements on<br />

the <strong>tool</strong>’s functionalities; <strong>an</strong>d the <strong>tool</strong>’s architecture.<br />

Flexibility <strong>an</strong>d modularity requirements motivated the choice of <strong>Eclipse</strong> Plat<strong>for</strong>m.<br />

Among the next extensions of <strong>TAOM4E</strong>: the integration of plug-ins implementing<br />

automatic model-to-model tr<strong>an</strong>s<strong>for</strong>mations following the Model Driven Architecture<br />

approach to software development as described in [28]; the integration of <strong>tool</strong>s supporting<br />

specific <strong>an</strong>alysis techniques of Tropos like Goal Reasoning Tool (GR-Tool) [36]<br />

which support the goal <strong>an</strong>alysis, the Secure Tropos Tool (ST-Tool) [37] which support<br />

security modelling; the implementation of the functionalities <strong>for</strong> the support of the Tropos<br />

process providing guidelines on the development of Tropos models.


References<br />

1. OMG Unified Modeling L<strong>an</strong>guage Specification, Version 1.5, 2003.<br />

2. Passi documentation, 2003. http://www.csai.unipa.it/passi.<br />

3. C. Bernon, M.P. Gleizes, S. Peyruqueou, <strong>an</strong>d G. Picard. ADELFE, a Methodology <strong>for</strong> Adaptive<br />

Multi-<strong>Agent</strong> Systems Engineering. In Third International Workshop Engineering Societies<br />

in the <strong>Agent</strong>s World (ESAW-2002), Madrid, Spain, 2002.<br />

4. Carole Bernon, Massimo Cossentino, Marie-Pierre Gleizes, Paola Turci, <strong>an</strong>d Fr<strong>an</strong>co Zambonelli.<br />

A Study of Some Multi-agent Meta-models. In <strong>Agent</strong>-<strong>Oriented</strong> Software Engineering<br />

V: 5th International Workshop, AO<strong>SE</strong> 2004, volume 3382 of Lecture Notes in Computer<br />

Science, pages 62 – 77, New York, USA, NY, July 2004.<br />

5. Davide Bertolini, Paolo Bresci<strong>an</strong>i, Aless<strong>an</strong>dro Daprá, Anna Perini, <strong>an</strong>d Fabrizio S<strong>an</strong>nicoló.<br />

Requirement specification of a case <strong>tool</strong> supporting the tropos methodology. Technical report,<br />

IRST Technical Report 0204-02, Istituto Trentino di Cultura, April 2002.<br />

6. P. Bresci<strong>an</strong>i, P. Giorgini, F. Giunchiglia, J. Mylopoulos, <strong>an</strong>d A. Perini. Tropos: An <strong>Agent</strong>-<br />

<strong>Oriented</strong> Software Development Methodology. Journal of Autonomous <strong>Agent</strong> <strong>an</strong>d Multi-<br />

<strong>Agent</strong> Systems, 8(3):203 – 236, May 2004.<br />

7. P. Bresci<strong>an</strong>i, P. Giorgini, F. Giunchiglia, J. Mylopoulos, <strong>an</strong>d A. Perini. Tropos: An <strong>Agent</strong>-<br />

<strong>Oriented</strong> Software Development Methodology. Autonomous <strong>Agent</strong>s <strong>an</strong>d Multi-<strong>Agent</strong> Systems,<br />

8(3):203–236, July 2004.<br />

8. Al<strong>an</strong> Brown. An introduction to Model Driven Architecture Part I: MDA <strong>an</strong>d todays systems.<br />

The Rational Edge, J<strong>an</strong>uary 2004.<br />

9. J. Castro, M. Kolp, <strong>an</strong>d J. Mylopoulos. A requirements-driven development methodology. In<br />

Proc. of the 13th Int. Conf. on Adv<strong>an</strong>ced In<strong>for</strong>mation Systems Engineering, CAi<strong>SE</strong>’01, pages<br />

108–123, Interlaken, Switzerl<strong>an</strong>d, June 2001.<br />

10. CBOP, DSTC, <strong>an</strong>d IBM. MOF Query/Views/Tr<strong>an</strong>s<strong>for</strong>mations, 2nd Revised Submission.<br />

Technical report, 2004.<br />

11. P. Ci<strong>an</strong>carini <strong>an</strong>d M. Wooldridge, editors. <strong>Agent</strong>-<strong>Oriented</strong> Software Engineering, volume<br />

1957 of Lecture Notes in AI. Springer-Verlag, March 2001.<br />

12. Paul Conte. Inside eclipse 3.0, 2004. eclipsesource.com.<br />

13. D. Gallardo <strong>an</strong>d E. Burnette <strong>an</strong>d R. McGovern. <strong>Eclipse</strong> in Action A Guide <strong>for</strong> Java Developers.<br />

M<strong>an</strong>ning, 2003.<br />

14. F. Budinsky <strong>an</strong>d D. Steinberg <strong>an</strong>d E. Merks <strong>an</strong>d R. Ellersick <strong>an</strong>d T. Grose. <strong>Eclipse</strong> Modeling<br />

Framework. Addison Wesley Professional, 2003.<br />

15. David Gallardo. How to create, debug, <strong>an</strong>d install your plug-in, 2002.<br />

16. T. Gardner, C. Griffin, J. Koehler, <strong>an</strong>d R. Hauser. A review of omg mof 2.0 query / views<br />

/ tr<strong>an</strong>s<strong>for</strong>mations submissions <strong>an</strong>d recommendations towards the final st<strong>an</strong>dard. In Meta-<br />

Modelling <strong>for</strong> MDA Workshop, York, Engl<strong>an</strong>d, 2003. Also available as a position paper at<br />

OMG.<br />

17. P. Giorgini, Jrg P. Mller, <strong>an</strong>d J. Odell, editors. <strong>Agent</strong>-<strong>Oriented</strong> Software Engineering IV.<br />

LNCS. Springer-Verlag, Melbourne, Australia, 4th International Workshop, AO<strong>SE</strong>2003 edition,<br />

July 2003.<br />

18. F. Giunchiglia, J. Odell, <strong>an</strong>d G. Weiß, editors. <strong>Agent</strong>-<strong>Oriented</strong> Software Engineering III.<br />

LNCS. Springer-Verlag, Bologna, Italy, Third International Workshop, AO<strong>SE</strong>2002 edition,<br />

July 2002.<br />

19. Bri<strong>an</strong> Henderson-Sellers <strong>an</strong>d Paolo Giorgini, editors. Idea Group Publishing, 2005.<br />

20. R<strong>an</strong>dy Hudson. The graphical editing framework, 2004. <strong>Eclipse</strong>con 2004 February 2-5.<br />

21. Object Technology International Inc. <strong>Eclipse</strong> Plat<strong>for</strong>m Technical Overview, 2003.<br />

http://www.eclipse.org/whitepapers/eclipse-overview.pdf.<br />

22. J. Arthorne <strong>an</strong>d C. Laffra. Official <strong>Eclipse</strong> 3.0 FAQs. Addison Wesley Professional, 2004.


23. Ed Merks. The eclipse modeling framework, 2004. JavaOne Conference 2004.<br />

24. Object M<strong>an</strong>agement Group. Meta-Object Facility specification. http://www.omg.org/cgibin/doc<strong>for</strong>mal/00-04-03.<br />

25. J. Odell, P. Giorgini, <strong>an</strong>d Jrg P. Mller, editors. <strong>Agent</strong>-<strong>Oriented</strong> Software Engineering V.<br />

LNCS. Springer-Verlag, New York, NY, USA, 5th International Workshop, AO<strong>SE</strong>2004 edition,<br />

July 2004.<br />

26. A. Perini, P. Bresci<strong>an</strong>i, F. Giunchiglia, P. Giorgini, <strong>an</strong>d J. Mylopoulos. A Knowledge Level<br />

Software Engineering Methodology <strong>for</strong> <strong>Agent</strong> <strong>Oriented</strong> Programming. In Proceedings of<br />

<strong>Agent</strong>s 2001, Montreal CA, May 2001. ACM.<br />

27. A. Perini, M. Pistore, M. Roveri, <strong>an</strong>d A.Susi. <strong>Agent</strong>-oriented modeling by interleaving <strong>for</strong>mal<br />

<strong>an</strong>d in<strong>for</strong>mal specification. In <strong>Agent</strong>-<strong>Oriented</strong> Software Engineering IV(AO<strong>SE</strong> 2003).<br />

4th International Workshop AO<strong>SE</strong>03, Melbourne, Australia - July 2003, LNCS 2935, pages<br />

36–52. Springer-Verlag, 2004.<br />

28. A. Perini <strong>an</strong>d A. Susi. Automating Model Tr<strong>an</strong>s<strong>for</strong>mations in <strong>Agent</strong>-<strong>Oriented</strong> Modeling . In<br />

AO<strong>SE</strong> 2005 - <strong>Agent</strong>-<strong>Oriented</strong> Software Engineering - Workshop in AAMAS 2005 Conference,<br />

Utrecht, NL, Jul 2005.<br />

29. A. Perini, A. Susi, <strong>an</strong>d J. Mylopoulos. <strong>Agent</strong>-<strong>Oriented</strong> Design <strong>for</strong> Web Services. In SOC-<br />

CER05 - Service-<strong>Oriented</strong> Computing: Consequences <strong>for</strong> Engineering Requirements - Workshop<br />

in RE 2005 Conference, Paris, F, Aug 2005.<br />

30. Anna perini <strong>an</strong>d Angelo Susi. Developing Tools <strong>for</strong> <strong>Agent</strong>-<strong>Oriented</strong> Visual Modeling. In<br />

G. Lindem<strong>an</strong>n, J. Denzinger, I.J. Timm, <strong>an</strong>d R. Unl<strong>an</strong>d, editors, Multiagent System Technologies,<br />

Proceedings of the Second Germ<strong>an</strong> Conference, MATES 2004, number 3187 in LNAI,<br />

pages 169–182. Springer-Verlag, 2004.<br />

31. A. Sturm <strong>an</strong>d O. Shehory. Towards industrially applicable modeling technique <strong>for</strong> agentbased<br />

systems. In Proc. of the 1th Int. Conference on Autonomous <strong>Agent</strong>s & Multi-<strong>Agent</strong><br />

Systems (AAMAS 2002), pages 39–40, Bologna, Italy, Jul 2002. ACM Press.<br />

32. Angelo Susi, Anna Perini, Paolo Giorgini, <strong>an</strong>d John Mylopoulos. The Tropos Metamodel<br />

<strong>an</strong>d its Use. In<strong>for</strong>matica, 2005.<br />

33. EMF team. The eclipse modeling framework (emf) overview, 2002.<br />

http://eclipse.org/emf/docs.phpdoc=references/overview/EMF.html.<br />

34. <strong>TAOM4E</strong> team. The <strong>TAOM4E</strong> screen movie. http://sra.itc.it/<strong>tool</strong>s/taom4e/documents/demo.htm.<br />

35. <strong>TAOM4E</strong> team. <strong>TAOM4E</strong> site. http://sra.itc.it/<strong>tool</strong>s/taom4e/.<br />

36. Tropos group. The site of the GR-Tool <strong>for</strong> goal reasoning in Tropos., 2005.<br />

http://sesa.dit.unitn.it/goaleditor/.<br />

37. Tropos group. The site of the ST-Tool <strong>for</strong> secure Tropos., 2005. http://sesa.dit.unitn.it/st<strong>tool</strong>/.<br />

38. M.J. Wooldridge, G. Weiß, <strong>an</strong>d P. Ci<strong>an</strong>carini, editors. <strong>Agent</strong>-<strong>Oriented</strong> Software Engineering<br />

II. LNCS 2222. Springer-Verlag, Montreal, C<strong>an</strong>ada, Second International Workshop,<br />

AO<strong>SE</strong>2001 edition, May 2001.<br />

39. E. Yu. Modelling Strategic Relationships <strong>for</strong> Process Reengineering. PhD thesis, University<br />

of Toronto, Department of Computer Science, University of Toronto, 1995.<br />

40. F. Zambonelli, N. R. Jennings, <strong>an</strong>d M. Wooldridge. Developing Multiagent Systems:<br />

The Gaia Methodology. ACM Tr<strong>an</strong>sactions on Software Engineering <strong>an</strong>d Methodology,<br />

12(3):317 – 370, July 2003.


Appendix A: <strong>TAOM4E</strong> requisites table.


Appendix B: <strong>TAOM4E</strong> meta-model diagram [as of version 0.1.5].


Fig. 14. <strong>TAOM4E</strong> meta-model main packages


Fig. 15. The Project package.


Fig. 16. The GenDiagram package.


Fig. 17. The ActorDiagram package.


Fig. 18. The GoalDiagram package.


Fig. 19. The GenCore package.


Fig. 20. The In<strong>for</strong>malCore package.


Fig. 21. The FormalCore package.


Fig. 22. The Property package.

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

Saved successfully!

Ooh no, something went wrong!