Sunteți pe pagina 1din 12

METODOLOGII PENTRU DEZVOLTAREA SISTEMELOR

BAZATE PE AGENI INTELIGENI


prof. dr. ing. Mihaela M. Oprea
m_oprea@yahoo.com
Universitatea Petrol-Gaze din Ploieti, Catedra de Informatic
Rezumat: Tehnologia agenilor inteligeni s-a impus n ultimii ani ca o soluie eficient pentru dezvoltarea sistemelor
software complexe, distribuite, care lucreaz n medii dinamice i deschise. Pentru o bun inginerie a acestor sisteme
bazate pe ageni inteligeni s-au creat diferite metodologii, majoritatea specifice anumitor tipuri de aplicaii. Lucrarea
prezint o sintez a principalelor metodologii bazate pe ageni care s-au impus pe plan mondial.
Cuvinte cheie: ageni inteligeni, sisteme multiagent, inginerie software, metodologii bazate pe ageni.
Abstract: The intelligent agents technology became in the last years one of the most efficient software technology
that provide solutions for the development of complex, distributed software systems that work in dynamic and open
environments. Different methodologies were created for a good engineering of these agent-based systems, most of
them being specific to certain types of applications. The paper presents a synthesis and a brief analysis study of the
main agent-based methodologies that were reported so far in the literature.
Key words: intelligent agents, multiagent systems, software engineering, agent-based methodologies.

1. Introducere
Multe dintre sistemele software complexe, distribuite (geografic), dezvoltate n ultimii ani
utilizeaz tehnologia agenilor inteligeni. Aplicaiile variaz de la cele industriale (sisteme de
monitorizare i control, sisteme de diagnoz, sisteme de modelare i simulare a lanului de
furnizori, sisteme de fabricaie) pn la cele virtuale, din Internet (sisteme de comer electronic,
licitaii electronice, afaceri electronice, organizaii virtuale, web semantic). O bun inginerie
software a acestor sisteme bazate pe ageni inteligeni presupune utilizarea unor metodologii,
instrumente, metode i tehnici (de modelare, de notaie, de verificare) specifice tehnologiei
agenilor inteligeni. Ingineria software dispune de metodologii, instrumente, metode i tehnici
bine puse la punct, care pot fi extinse pentru a fi aplicate la dezvoltarea sistemelor bazate pe
ageni inteligeni. De exemplu, ingineria software orientat pe obiecte este utilizat ca punct de
pornire, fiind adaptat cerinelor specifice sistemelor bazate pe ageni. Un alt exemplu este dat
de ingineria software orientat pe componente. Cu toate acestea, experiena acumulat la nivel
mondial n analiza, proiectarea i implementarea sistemelor bazate pe ageni inteligeni a condus
la dezvoltarea unei inginerii software bazate pe ageni inteligeni. Exist la ora actual
numeroase cercetri care au drept scop fundamentarea, standardizarea i unificarea diferitelor
metodologii, instrumente, metode i tehnici ale ingineriei software bazate pe ageni, pentru a
oferi o teorie ct mai complet i eficient n dezvoltarea sistemelor bazate pe ageni inteligeni.
n literatura de specialitate au fost prezentate deja o parte din rezultatele acestor cercetri.
Astfel, a aprut un manual al ingineriei software bazate pe ageni inteligeni [1], n care sunt
prezentate sintetic concepte i abstractizri, metodologii, instrumente, infrastructuri i metode
noi de inginerie a software-ului bazat pe ageni.
ntruct sistemele bazate pe ageni inteligeni au o serie de caracteristici specifice (autonomia,
cooperarea, mobilitatea, scalabilitatea, comunicarea, dinamica, coordonarea, complexitatea,
securitatea, adaptabilitatea, deschiderea, etc.), a aprut necesitatea crerii de noi metodologii,
dedicate sistemelor software bazate pe ageni, metodologii orientate pe ageni, mult mai potrivite
dect metodologiile orientate pe obiecte. Lucrarea prezint o sintez a principalelor metodologii
orientate pe ageni care s-au impus n literatura de specialitate: Gaia, Tropos, MaSE, Prometheus,
Zeus. Sunt descrise etapele de baz i caracteristicile acestor metodologii.
Lucrarea cuprinde patru seciuni. Dup seciunea introductiv, n seciunea 2 sunt prezentate
elementele fundamentale referitoare la sistemele multiagent. Seciunea 3 prezint aspectele
definitorii ale ingineriei software bazate pe ageni n raport cu ingineria software bazat pe
Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

85

obiecte. De asemenea, sunt descrise etapele principale ale dezvoltrii unui sistem software bazat
pe ageni. n seciunea 4 sunt prezentate succint i analizate cele mai importante metodologii
orientate pe ageni care s-au impus pe plan mondial. n ultima seciune sunt sintetizate
concluziile lucrrii.

2. Sisteme multiagent
Modelarea sistemelor software complexe, distribuite, se poate realiza cu ajutorul sistemelor
multiagent. Un sistem multiagent este un sistem bazat pe ageni inteligeni, alctuit din
minimum doi ageni inteligeni care au un scop global de ndeplinit, eventual, scopuri locale i
care au abiliti pentru rezolvarea scopului global. Altfel spus, un sistem multiagent grupeaz
ageni inteligeni cu abiliti similare i / sau diferite care pot rezolva probleme complexe,
lucrnd n mod eficient, n special, n cazul sistemelor distribuite. Practic, rezolvarea scopului
global se realizeaz prin distribuirea subscopurilor acestuia local, ctre agenii din sistem, care
vor rezolva subscopurile pe baza abilitilor lor. Ideea care st la baza modelrii multiagent este
dezvoltarea de module separate ce furnizeaz o soluie i cooperarea modulelor pentru a rezolva
probleme complexe prin schimb de informaie. Modularitatea i cooperarea permit o
administrare mai facil a rezolvrii problemelor complexe. Figura 1 prezint schematic ecuaia
unui sistem multiagent, ce cuprinde agenii inteligeni i comunicarea, ca modalitate de
interaciune ntre ageni n vederea realizrii task-urilor asociate sistemului multiagent.
A1

Mediul de lucru

An

A2

An-1

A3

A5

A4

TASK = AGENI + COMUNICARE

Figura 1. Ecuaia unui sistem multiagent

Un agent inteligent este o entitate autonom, virtual sau fizic, care percepe mediul de
lucru, are iniiativ, comunic cu alte entiti similare i realizeaz aciuni asupra mediului de
lucru. Agenii dintr-un sistem bazat pe ageni partajeaz anumite resurse i informaii referitoare
la activitile lor. Gruparea agenilor inteligeni n sisteme multiagent implic utilizarea unor
mecanisme de coordonare ce trebuie s conduc la o comportare coerent a sistemului,
conform cu scopul global al acestuia.
Agenii inteligeni pot utiliza diferite categorii de arhitecturi agent: deliberative, reactive i
hibride. Arhitecturile deliberative sunt arhitecturi simbolice prin care agenii pstreaz un model
complet de reprezentare a mediului lor de lucru. Un exemplu de astfel de arhitectur este
arhitectura BDI [2], care are un suport teoretic foarte bun, bazat pe un formalism matematic
bine pus la punct, dar care nu este o arhitectur practic pentru sistemele complexe, ce lucreaz
n timp real. ntruct un agent bazat pe arhitectura BDI pstreaz un model complet al lumii
reale, timpul lui de rspuns este relativ mare. Arhitecturile reactive au la baz modelul de
raionare fr reprezentare, ele fiind specifice agenilor inteligeni de tip roboi mobili. Agenii
iau decizii la momentul execuiei, pe baza unei cantiti limitate de informaie i a unor reguli
simple de tip situaie-aciune. Deciziile agenilor reactivi sunt bazate direct pe intrrile de la
senzori, timpul de rspuns fiind mic. Arhitecturile hibride combin avantajele celor dou
86

Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

arhitecturi, deliberativ i reactiv i evit dezavantajele lor. Exemple de arhitecturi hibride sunt
PRS, COSY, TOURING MACHINES, INTERRAP [3].
O component esenial a unui sistem multiagent este mediul de lucru n care i desfoar
activitatea agenii inteligeni. Structura mediului de lucru depinde de domeniul de aplicaie i
poate cuprinde ali ageni i alte sisteme sau module non-agent. Mediul de lucru poate fi
accesibil sau inaccesibil, determinist sau nedeterminist, episodic sau ne-episodic, static sau
dinamic, discret sau continuu. n dezvoltarea sistemelor bazate pe ageni inteligeni trebuie s se
in cont att de caracteristicile mediului de lucru, ct i de caracteristicile pe care agenii
trebuie s le aib n mediul respectiv de lucru, pentru a rezolva problemele din domeniul lor de
expertiz. Pe lng caracteristicile de baz, autonomie, reactivitate, proactivitate i abilitate
social (comunicare), agenii inteligeni pot avea i alte caracteristici suplimentare: mobilitate,
sinceritate, raionalitate, bunvoin, cooperare, flexibilitate, adaptare, nvare, etc.
Pentru realizarea task-urilor care le sunt asignate, agenii trebuie s comunice ntre ei ntr-un
limbaj de comunicare agent (de exemplu, FIPA ACL, KIF, KQML). De asemenea, agenii
trebuie s utilizeze aceeai ontologie (un vocabular cu termeni specifici domeniului de aplicaie)
pentru a nelege corect mesajele primite sau transmise i s foloseasc protocoale de
comunicaie (de exemplu, TCP/IP, SMTP, HTTP).
Sistemele multiagent pot fi sisteme nchise sau deschise. ntr-un sistem nchis agenii nu
prsesc sistemul i nici ali ageni din exteriorul sistemului multiagent nu pot intra n sistem.
ntr-un sistem deschis agenii pot iei/reintra din/n sistemul multiagent i de asemenea, ali
ageni din exterior pot intra/iei n/din sistem.
Dezvoltarea unui sistem multiagent presupune rezolvarea unor probleme importante:
coordonarea agenilor, comunicarea ntre ageni, cooperarea agenilor, planificarea task-urilor
etc. O soluie eficient este dat de utilizarea unor infrastructuri specifice pentru coordonare,
comunicare, care pot fi oferite de platformele agent. Standardul FIPA [4] furnizeaz astfel de
faciliti prin platforma agent FIPA, care a fost preluat de majoritatea mediilor de dezvoltare a
sistemelor multiagent.

3. Ingineria software bazat pe ageni


De-a lungul timpului au fost propuse o serie de modaliti de dezvoltare a sistemelor
software, structurale, orientate pe componente i orientate pe obiecte. Dezvoltarea primelor
sisteme multiagent a fost realizat prin utilizarea metodologiilor orientate pe obiecte.
Implementarea acestor sisteme cu ajutorul obiectelor nu a fost cea mai potrivit soluie, ntruct
obiectele nu au proprietile specifice agenilor inteligeni, proactivitate, autonomie,
component social (de comunicare inter-agent). Astfel, analiza, proiectarea i implementarea
sistemelor bazate pe ageni inteligeni a condus n ultimii ani la apariia unei noi paradigme a
ingineriei software, ingineria software bazat pe ageni, care cuprinde abstractizri (ale
agenilor, protocoalelor de interaciune, mediului de lucru, contextului, etc.), metodologii i
instrumente specifice sistemelor multiagent.
n general, dezvoltarea sistemelor multiagent se realizeaz cu ajutorul unei anumite
metodologii. n prezent, exist dou categorii de metodologii pentru dezvoltarea sistemelor
bazate pe ageni: metodologii bazate pe ingineria cunoaterii (de exemplu, DESIRE, MASCommonKADS) i metodologii ale ingineriei software (de exemplu, Gaia, Prometheus,
Tropos). Aceste metodologii acoper etapele de analiz i proiectare a unui sistem multiagent,
iar unele dintre ele ofer i suport software pentru implementare.
Implementarea agenilor inteligeni i a sistemelor multiagent se poate realiza cu ajutorul
unor medii de dezvoltare care sunt disponibile gratuit pentru mediul academic (FIPA-OS,
JADE, ZEUS) sau a unor sisteme comerciale (JACK, AgentBuilder). Majoritatea acestor
pachete software utilizeaz limbajul Java i modeleaz agenii utiliznd paradigma programrii
orientat pe obiecte, la care sunt adugate componentele specifice agenilor inteligeni
(comunicare, coordonare, reprezentarea noiunilor mentale, a cunoaterii, etc.).
Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

87

Ingineria software presupune parcurgerea a cinci etape principale n dezvoltarea unui sistem
software: analiza, proiectarea, implementarea, testarea i ntreinerea sistemului. nlnuirea
acestor etape se realizeaz conform modelului adoptat pentru dezvoltarea software-ului. Dintre
modelele cele mai cunoscute, menionm: modelul cascad, modelul cascad cu reacie napoi i
modelul spiral. ntruct modelul cascad este cel mai utilizat model, ne vom referi doar la
acesta. Figura 2 prezint schematic etapele dezvoltrii unui sistem software n cadrul modelului
cascad. Etapa de analiz a fost mprit n dou sub-etape: stabilire cerine (ale utilizatorilor
analiza timpurie a cerinelor) i specificaii (cerine din punctul de vedere al dezvoltatorului
sistemului software analiza trzie a cerinelor). n unele metodologii, etapa de proiectare este
i ea mprit n dou sub-etape: proiectare arhitectural i proiectare detaliat.
C e r in e
A n a liz
S p e c ific a ii
P r o ie c t a r e
I m p le m e n t a r e
T e s ta r e
n t r e in e r e

Figura 2. Modelul cascad pentru dezvoltarea software-ului

Prezentm succint cteva consideraii referitoare la etapele de analiz, proiectare,


implementare i testare a sistemelor bazate pe ageni inteligeni.
Etapa de analiz specific ce anume trebuie s fac sistemul bazat pe ageni, pornind de la
analiza cerinelor utilizatorului. Astfel, sunt analizate i cerinele sistemului, care cuprind cerine
funcionale i ne-funcionale. Aceast etap poate fi divizat n dou sub-etape: cerine i
specificaii sau analiza timpurie a cerinelor i analiza trzie a cerinelor. n urma parcurgerii
acestei etape se genereaz o reprezentare preliminar a sistemului bazat pe ageni i a unor
scenarii de utilizare, fie sub forma unor specificaii formale, fie sub forma unor modele i
diagrame, fie printr-o combinaie a acestora. Dintre metodele formale utilizate n cadrul acestei
etape menionm metoda i* [5] (care utilizeaz actori, scopuri, cunotine, angajamente pentru a
modela medii organizaionale i sistemele lor de informare) i limbajele pure de specificaie.
Dintre metodele grafice amintim metode bazate pe UML (AUML [6]) i reelele Petri.
Proiectarea unui sistem bazat pe ageni presupune rafinarea reprezentrilor obinute n
cadrul etapei de analiz. Astfel, sunt rafinate diagramele i/sau se creeaz o bibliotec de
componente. Etapa de proiectare se poate realiza cu sau fr ajutorul unui mediu de dezvoltare,
care traduce diagramele n cod surs. Exemple de medii de dezvoltare a sistemelor multiagent
sunt date de ZEUS [7] i AgentBuilder [8]. Utilizarea unui mediu de dezvoltare are avantajul
dezvoltrii rapide a unor prototipuri ale sistemului. Dezavantajul major este faptul c, de obicei,
codul nu este documentat i este riscant modificarea unei componente predefinite. n plus,
dezvoltarea rapid a unui prototip nu garanteaz ndeplinirea cerinelor iniiale. Proiectarea
sistemului bazat pe ageni fr ajutorul unui mediu de dezvoltare implic alegerea unor teorii,
metode i instrumente software corespunztoare. Astfel, se realizeaz selecia unui model de
agent, a unei arhitecturi agent corespunztoare modelului de agent, se proiecteaz
caracteristicile agentului i se alege o platform agent (adic, un set de servicii pentru
managementul agenilor i comunicare). Pentru o bun inginerie software este bine s se
urmreasc aplicarea standardelor existente (de exemplu, FIPA).
Etapa de implementare a sistemului bazat pe ageni const n translatarea conceptelor
proiectrii n programe ce pot fi executate. Implementarea se poate realiza fie ntr-un limbaj
convenional (Java, C, Prolog), fie ntr-un limbaj orientat pe ageni (Agent0, AgentSpeak(L)).
Testarea unui sistem bazat pe ageni const n identificarea problemelor i verificarea
88

Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

codului conform specificaiei sistemului. Exist o serie de metode de verificare a unui sistem
multiagent, verificarea formal, metoda blackbox i metoda whitebox [5]. De asemenea, sunt
utilizate o serie de metode de depanare a sistemului, metode ce pstreaz urma execuiei
sistemului multiagent, respectiv mesajele care sunt schimbate ntre ageni.

4. Metodologii orientate pe ageni


Principalele metodologii orientate pe ageni, care au fost dezvoltate pn n prezent, includ:
Gaia, Tropos, MaSE, Prometheus, Zeus, ADELFE, MAS-CommonKADS, DESIRE,
MESSAGE, SADDE, PASSI, INGENIAS. n aceast seciune vom prezenta pe scurt o parte din
aceste metodologii.

4.1 Gaia
Metodologia Gaia [9] este prima metodologie propus pentru analiza i proiectarea
sistemelor multiagent. n cadrul acestei metodologii, un sistem multiagent este considerat ca
fiind o organizaie alctuit din ageni, fiecare agent avnd roluri specifice, care coopereaz
ntre ei pentru realizarea scopului lor comun. Prima versiune a acestei metodologii este limitat
datorit faptului c ea poate fi aplicat doar sistemelor multiagent nchise, n care agenii doresc
s coopereze i datorit nerespectrii standardelor ingineriei software pentru notaiile utilizate.
Metodologia a fost extins i astfel au aprut variantele Gaia v.2 [10] i ROADMAP [11].
Metodologia este aplicat dup stabilirea cerinelor i const n construirea unor modele care
descriu sistemul multiagent la nivel macro (al societii de ageni) i la nivel micro (intra-agent).
Prezentm succint etapele metodologiei Gaia n varianta iniial.
n etapa de analiz se construiesc dou modele: modelul rol i modelul interaciune, care
structureaz sistemul multiagent sub forma unei mulimi de roluri abstracte ce interacioneaz.
n Gaia, rolurile sunt construcii abstracte, atomice, utilizate pentru a conceptualiza sistemul,
fr a avea corespondene concrete n sistemul implementat. O schem de rol este o descriere
semi-formal a comportamentului unui agent. Modelul rol este definit de toate schemele rol
identificate. Pentru fiecare rol se definete o schem rol prin specificarea a patru atribute:
responsabiliti, activiti, permisii (resursele disponibile) i protocoale. Modelul interaciune
const n definirea unui protocol pentru fiecare protocol corespunztor unui rol din sistem.
n etapa de proiectare se definesc trei modele: modelul agent, modelul servicii i modelul
cunotine. Aceste modele formeaz o specificaie complet ce va fi utilizat n etapa de
implementare. Rolurile i protocoalele sunt mapate n construcii concrete, tipuri de ageni, care
vor fi instaniate la momentul rulrii. Modelul agent se obine prin asignarea de roluri fiecrui
tip de agent. n Gaia, un serviciu este un bloc coerent de funcionalitate, neutru n raport cu
detaliile de implementare. Serviciile sunt determinate din activitile i protocoalele rolurilor.
Pentru fiecare serviciu se specific patru atribute: intrri, ieiri, pre-condiii i post-condiii.
Modelul cunotine este un graf directat ntre tipuri de ageni, care exprim gradul de cuplare
ntre acetia.
Prima variant mbuntit a metodologiei Gaia este metodologia ROADMAP [11], care a
inclus o ierarhie dinamic a rolurilor (pentru sisteme multiagent deschise), modele pentru
descrierea mediului de lucru i cunoaterea agenilor (care a fost neglijat n versiunea iniial a
metodologiei Gaia).
A doua variant mbuntit a metodologiei Gaia este Gaia v.2 [10] n care s-au introdus:
un model al mediului de lucru (ce descrie entiti i resurse cu care interacioneaz sistemul
multiagent), reguli organizaionale (restricii ale organizaiei la nivel global, ntre roluri i
protocoale) i structuri organizaionale (pentru arhitectura global a sistemului).
n figura 3 este prezentat schematic metodologia Gaia, cu completarea adus de variantele
mbuntite, prin includerea unui model al mediului de lucru.
Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

89

Specificaia cerinelor

ANALIZ

PROIECTARE

Modelul
Rol

Modelul
Mediu

Modelul
Interaciune

Modelul
Agent

Modelul
Serviciu

Modelul
Cunotine

Metodologia Gaia

Figura 3. Metodologia Gaia reprezentare schematic

Dezavantajul major al acestei metodologii este lipsa etapei de modelare a cerinelor.


Principalele concepte utilizate n metodologia Gaia sunt: rol, interaciune, agent, serviciu,
cunotine, activiti, protocoale, responsabiliti, resurse, mediu (doar n variantele ROADMAP
i Gaia v.2).

4.2 Tropos
Metodologia Tropos [12] se bazeaz pe ideea construirii unui model al sistemului dezvoltat
i al mediului de lucru, care este rafinat i extins n mod incremental. Tropos cuprinde toate
activitile de analiz i proiectare ale procesului de dezvoltare a software-ului, de la analiza
domeniului de aplicaie pn la implementarea sistemului.
Etapele metodologiei Tropos sunt urmtoarele:
-

analiza timpurie a cerinelor;


analiza trzie a cerinelor;
proiectarea arhitectural;
proiectarea detaliat;
implementarea.
Toate etapele sunt bine definite n literatura de specialitate a ingineriei software. Analiza
cerinelor a fost mprit n dou etape, analiza timpurie (etap acceptat de comunitatea
cercettorilor, dar care nu este aplicat pe scar larg) i analiza trzie (etap care este inclus n
majoritatea metodologiilor).
Analiza timpurie a cerinelor presupune nelegerea problemei prin studierea configuraiei
organizaionale. Inteniile utilizatorului sunt modelate sub form de scopuri. Pornind de la
scopurile iniiale sunt determinate cerinele funcionale i ne-funcionale ale sistemului. n
cadrul acestei etape se construiete un model i* [5] al dependenelor strategice ntre actori,
scopuri. Un actor este o entitate care are scopuri strategice i intenii n cadrul sistemului sau
organizaiei. Un actor poate fi un agent, un rol sau o poziie (o funcie), din punct de vedere al
modelrii multiagent. Din punctul de vedere al aplicaiei, un actor poate fi vzut ca fiind un subsistem. Un rol este o caracterizare abstract a comportamentului unui agent. O poziie este un
set de roluri jucate de un agent. Un agent poate ocupa o anumit poziie. Agenii utilizeaz
resurse (entiti fizice sau informaionale). Un scop este dat de interesele strategice ale actorilor.
Scopurile pot fi de tip hard (cerine funcionale) i soft (cerine ne-funcionale).
Analiza trzie a cerinelor const n descrierea sistemului sub forma unor specificaii ale
cerinelor funcionale i ne-funcionale ale sistemului. n cadrul acestei etape se construiete
90

Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

diagrama scopurilor.
Proiectarea arhitectural definete arhitectura global a sistemului n termeni de sub-sisteme
(actori) interconectate prin fluxuri de date i control (dependene). n cadrul acestei etape se
construiete diagrama actorilor (actori i dependene ntre actori).
Proiectarea detaliat a sistemului multiagent const n specificarea capabilitilor agenilor
i a interaciunilor dintre ageni. De obicei, atunci cnd se realizeaz aceast etap, platforma de
implementare este deja aleas, astfel c proiectarea detaliat va fi mapat direct n codul surs.
n cadrul acestei etape se construiesc: diagrama capabilitilor i diagrama planurilor cu ajutorul
diagramelor UML [13] i AUML [6]. n Tropos, un plan este definit ca o modalitate de realizare
a unui obiectiv (scop). Capabilitatea reprezint abilitatea unui actor de definire, alegere i
execuie a unui plan pentru atingerea scopului.
Implementarea sistemului presupune parcurgerea pas cu pas a specificaiei proiectrii
detaliate i utilizarea pachetului software JACK [14], de dezvoltare a sistemelor multiagent.
n figura 4 este prezentat schematic metodologia Tropos.

ANALIZ
TIMPURIE

Modelul i*

ANALIZ
TRZIE

Diagrama scopurilor

PROIECTARE
ARHITECTURAL
PROIECTARE
DETALIAT

IMPLEMENTARE

Diagrama actorilor

Diagrama
capabilitilor

Diagrama
planurilor

Platforma JACK

Metodologia Tropos

Figura 4. Metodologia Tropos reprezentare schematic

Metodologia Tropos utilizeaz arhitectura BDI [2] de modelare a agenilor.


Avantajul major al metodologiei Tropos este dat de acoperirea integral a etapelor de
analiz timpurie i trzie a cerinelor, precum i a etapelor de proiectare arhitectural i
detaliat. Din pcate, nu exist, deocamdat, instrumente software care s permit tranziia ntre
etape. De asemenea, metodologia nu este adaptat pentru sisteme multiagent complexe, de
dimensiuni mari i nu poate fi aplicat oricrui tip de aplicaie.
Principalele concepte utilizate n metodologia Tropos sunt: actor, dependen, scop (hard i
soft), plan, resurs, capabilitate.

4.3 MaSE
Metodologia MaSE [15] este o metodologie complet pentru analiza, proiectarea i
implementarea sistemelor multiagent eterogene, care utilizeaz modele grafice derivate din
modele standard UML pentru a descrie tipurile de ageni dintr-un sistem i interfeele lor cu ali
ageni. De asemenea, MaSE furnizeaz o descriere detaliat a proiectrii interne a agenilor,
independent de arhitectura agent utilizat.
Un sistem multiagent este vzut ca fiind o abstractizare a paradigmei orientate pe obiecte, n
Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

91

care agenii sunt obiecte specializate. Coordonarea agenilor se realizeaz prin conversaii i
aciuni pro-active de realizare a scopurilor individuale sau globale.
Prezentm succint etapele de analiz i proiectare. Etapa de implementare este facilitat de
utilizarea platformei agentTool [15].
n cadrul etapei de analiz se stabilesc scopurile, se identific i se analizeaz diferite studii
de caz i se rafineaz rolurile. Un scop este o abstractizare a unor cerine detaliate. Un rol
descrie o entitate care execut o anumit funcie n cadrul sistemului. Scopurile sunt ndeplinite
de roluri. Pentru fiecare rol se definesc task-urile concurente pe care trebuie s le execute. Se
construiesc urmtoarele modele grafice: diagrama ierarhiei scopurilor, modelul rol, modelul
task-uri concurente i diagrama secvenelor pentru studiile de caz (diagrame de interaciune).
Proiectarea sistemului multiagent presupune asignarea de roluri claselor agent, identificarea
conversaiilor, construirea conversaiilor, adugarea de mesaje i stri pentru robustee, definirea
arhitecturii interne a fiecrui agent i definirea structurii finale a sistemului cu ajutorul
diagramelor de dezvoltare. Se construiesc urmtoarele modele grafice: diagrama claselor agent,
diagrame de conversaie, diagrame de arhitecturi agent, diagrame de dezvoltare.
n figura 5 este prezentat schematic metodologia MaSE.

ANALIZ

PROIECTARE

Diagrama
Ierarhiei
Scopurilor

Modelul
Rol

Modelul
Task-uri
Concurente

Diagrama
Secvenelor

Diagrama
Claselor
Agent

Diagrame
de
Conversaie

Diagrame
Arhitecturi
Agent

Diagrame
de
Dezvoltare

Studii de caz

Metodologia MaSE

Figura 5. Metodologia MaSE reprezentare schematic

Avantajul major al metodologiei MaSE este dat de proiectarea detaliat pentru care sunt
furnizate modele i suport tehnic.
Principalele concepte utilizate n metodologia MaSE sunt: scop, rol, agent, tip agent,
conversaie, task, reguli de organizare.

4.4 Prometheus
Metodologia Prometheus [1], [16] a fost realizat cu scopul de a facilita dezvoltarea
sistemelor bazate pe ageni att n mediul academic, ct mai ales n mediul industrial, de ctre
persoane fr cunotine anterioare n domeniul agenilor inteligeni. Prometheus este o
metodologie detaliat i complet, fiind n acelai timp i general, cu un suport tehnic bine pus
la punct. Astfel, instrumentul de proiectare PDT [16] asist dezvoltatorul sistemului multiagent
n toate etapele de analiz i proiectare.
Etapele metodologiei Prometheus sunt: analiza (specificaia sistemului), proiectarea
arhitectural i proiectarea detaliat. Implementarea se poate realiza pe orice platform agent. n
particular, dezvoltatorii metodologiei Prometheus au utilizat JACK.
Etapa de analiz const n determinarea specificaiei sistemului. n cadrul acestei etape sunt
definite scopuri, funcionaliti, scenarii i interfee cu mediul de lucru sub form de aciuni i
percepii.
Proiectarea arhitectural utilizeaz elementele definite n cadrul etapei anterioare pentru a
determina care sunt agenii din sistem i care sunt interaciunile dintre ageni. Se construiesc
92

Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

urmtoarele diagrame: diagrama de cuplare a datelor, diagrama cunotinelor fiecrui agent


(coninnd relaiile cu agenii cunoscui de respectivul agent), diagrama general a sistemului,
diagrame i protocoale de interaciune.
n cadrul proiectrii detaliate se determin structura intern a fiecrui agent din sistem i se
specific modul n care agenii i ndeplinesc task-urile. Fiecare agent este descris n termeni de
capabiliti, evenimente interne, planuri i structuri de date. Se construiesc diagrame generale
ale agenilor i ale capabilitilor. De asemenea, sunt furnizai descriptori de plan, date,
evenimente i capabiliti i specificaiile procesului (prin rafinarea protocoalelor de
interaciune).
n figura 6 este prezentat schematic metodologia Prometheus.

Definire scopuri, funcionaliti, scenarii, interfee


(aciuni / percepii)

ANALIZ

PROIECTARE
ARHITECTURAL

Diagrama de
cuplare a datelor

Diagrama
cunotinelor agenilor
Diagrame de
interaciune

Diagrama general a agenilor


PROIECTARE
DETALIAT

Descriptori de plan, date,


evenimente, capabiliti

IMPLEMENTARE

Diagrama
general a
sistemului

Diagrama general a
capabilitilor
Specificaiile procesului

Platforma JACK

Metodologia Prometheus

Figura 6. Metodologia Prometheus reprezentare schematic

Metodologia Prometheus este similar cu metodologia Gaia n ceea ce privete realizarea


etapelor de analiz trzie i proiectare arhitectural. Dezvoltatorii metodologiei i-au propus
includerea unei etape de analiz timpurie a cerinelor i utilizarea unor instrumente software
performante pentru verificarea funcionrii sistemului bazat pe ageni.
Principalele concepte utilizate n metodologia Prometheus sunt: percepii, aciuni, scopuri,
funcionaliti (echivalentul rolurilor din alte metodologii), agent, plan, task, tipuri agent,
capabiliti, protocol.

4.5 ZEUS
Metodologia ZEUS [17], [18] este o metodologie specific mediului ZEUS de dezvoltare a
sistemelor multiagent [7]. n general, ZEUS este utilizat pentru dezvoltarea rapid a unor
sisteme prototip.
Etapele metodologiei sunt: analiza domeniului, proiectarea, implementarea i testarea sistemului.
Scopul etapei de analiz a domeniului de aplicaie este de a nelege corect problema i de a
o modela corespunztor. Metodologia nu impune utilizarea unei anumite metode de analiz.
Metoda recomandat este modelarea rolurilor [18], care este independent de alegerea softwareRevista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

93

ului pentru implementarea sistemului bazat pe ageni. Problema este gndit n termeni de roluri
pe care le poate avea un agent i de responsabiliti asociate fiecrui rol. Un model de rol este
un ablon al celei mai simple soluii pentru o anumit aplicaie. Un rol descrie poziia i lista de
responsabiliti ale agentului n cadrul unui anumit context sau model de rol. Rolurile asociate
agenilor i modelele de roluri furnizeaz un vocabular pentru descrierea sistemelor multiagent.
Prima activitate din etapa de proiectare este alocarea rolurilor identificate la etapa anterioar
unor ageni din sistemul multiagent. Dezvoltatorul sistemului transpune problema din termeni
de roluri i responsabiliti n termeni de ageni i task-uri / servicii, modelnd problema i soluia
acesteia sub forma unui sistem multiagent. A doua activitate a etapei de proiectare a aplicaiei
const n modelarea cunoaterii declarative care va fi utilizat de rolurile agenilor. Se vor
identifica i defini conceptele cheie ale domeniului aplicaiei. Conceptele ZEUS sunt denumite
fapte ZEUS i sunt de dou categorii: abstracte i entitate, fiind organizate sub forma unei
ierarhii de fapte. Fiecare concept are un nume i o list de atribute identificate prin nume, tip de
date, restricii i valoare implicit. Conceptele cheie definite de ctre dezvoltatorul aplicaiei vor
forma ontologia sistemului multiagent, adic vocabularul de termeni cunoscui de ageni
(termeni care se vor regsi n mesajele schimbate ntre ageni, ale cror valori vor fi modificate
eventual de task-uri sau n funcie de valorile crora se vor declana anumite task-uri).
Implementarea sistemului bazat pe ageni presupune parcurgerea urmtoarelor sub-etape:
creare ontologie, crearea fiecrui agent task (definire agent, descriere task-uri, organizare agent,
coordonare agent), configurare ageni utilitari, configurare ageni task, implementare ageni
(scrierea codului surs Java specific aplicaiei). Toate aceste sub-etape sunt realizate cu ajutorul
Generatorului de Ageni, un instrument software ncorporat n ZEUS. Dezvoltatorul sistemului
bazat pe ageni va implementa doar task-urile specifice aplicaiei, resursele externe (de obicei,
baze de date) i programele externe (de exemplu, interfee utilizator). Exceptnd programele
care trebuie scrise manual, codul surs este generat automat n ZEUS.
Testarea sistemului bazat pe ageni este realizat cu ajutorul unui agent facilitator predefinit,
Visualiser, care are rolul de depanare a sistemului, permind analiza mesajelor transmise,
analiza evoluiei agenilor, analiza executrii task-urilor i a ndeplinirii scopurilor etc.
n figura 7 este prezentat schematic metodologia ZEUS.

ANALIZ

PROIECTARE

IMPLEMENTARE

Diagrame de rol, modele de rol, descrieri de rol,


diagrame de colaborare, tabel cu interaciuni
(roluri i responsabiliti asociate)

Proiectarea problemei

Modelarea cunoaterii
Creare Ontologie

Implementarea ontologiei, agenilor, task-urilor


Generarea automat a codului surs
Implementarea programelor externe i a resurselor externe
Generatorul de Ageni ZEUS
Platforma ZEUS

TESTARE

Agentul facilitator Visualiser

Metodologia ZEUS

Figura 7. Metodologia ZEUS reprezentare schematic

94

Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

Dezavantajul major al acestei metodologii este dat de riscul modificrii unor componente
predefinite, n condiiile n care codul nu este documentat.
Principalele concepte utilizate n metodologia ZEUS sunt: fapt, scop, agent, task.

5. Concluzii
Dezvoltarea sistemelor bazate pe ageni inteligeni presupune utilizarea unei metodologii
specifice, orientate pe ageni, mult mai potrivit dect o metodologie orientat pe obiecte. O
astfel de metodologie utilizeaz concepte specifice agenilor inteligeni i modelrii multiagent.
n literatura de specialitate au fost prezentate diferite analize comparative ale metodologiilor
orientate pe ageni (de exemplu, [1], [19], [20]), care au evideniat avantaje i dezavantaje i au
formulat direcii viitoare de dezvoltare a acestora.
Scopul studiului realizat i prezentat n aceast lucrare a fost de a sintetiza i analiza succint
un numr de metodologii reprezentative, orientate pe ageni, care s-au impus n ultimii ani pe
plan mondial, Gaia, Tropos, MaSE, Prometheus i ZEUS. Astfel, metodologiile selectate au fost
descrise succint i reprezentate schematic ntr-o form unitar, structurat pe etapele modelului
cascad de dezvoltare a unui produs software. De asemenea, s-au identificat conceptele utilizate
n cadrul fiecrei metodologii.
Din studiul prezentat n lucrare se desprind urmtoarele concluzii:
-

nici una din metodologii nu este general i nici complet (nu acoper toate etapele
dezvoltrii software-ului, pornind de la analiza timpurie a cerinelor i pn la testarea i
ntreinerea acestuia);

fiecare metodologie utilizeaz un numr de concepte a cror semnificaie sau denumire


poate diferi;

toate metodologiile analizate utilizeaz modelul cascad de dezvoltare a unui produs


software.

Alegerea unei metodologii potrivite dezvoltrii unei anumite aplicaii depinde de domeniul
aplicaiei, de complexitatea acesteia i de caracteristicile specifice ce pot fi furnizate de anumite
metodologii orientate pe ageni. Metodologiile Gaia (variantele mbuntite, ROADMAP i
Gaia v.2), Tropos i Prometheus sunt printre cele mai utilizate metodologii orientate pe ageni.

BIBLIOGRAFIE
1. BERGENTI, F., M.-P. GLEIZES, F. ZAMBONELLI: Methodologies and Software
Engineering for Agent Systems The Agent-Oriented Software Engineering Handbook,
Kluwer Academic Publishers, 2004.
2. RAO, A. S., M. P. GEORGEFF: Modelling rational agents within a BDI-architecture. n:
Proc. of Knowledge Representation and Reasoning Conference KRR-91, San Mateo,
CA, 1991.
3. WEISS, G.: Multiagent Systems A Modern Approach to Distributed Artificial
Intelligence, The MIT Press, Cambridge, 1999.
4. FIPA: http://www.fipa.org, 1997.
5. YU, E.: Modelling Strategic Relationships for Process Reengineering, PhD Thesis, University
of Toronto, 1995.
6. AUML: http://www.auml.org, 2005.
Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010

95

7. ZEUS: http://sourceforge.net/projects/zeusagent, 2005.


8. AGENTBUILDER: http://www.agentbuilder.com, 2006.
9. WOOLDRIDGE, M., N. R. JENNINGS, D. KINNY: The Gaia Methodology for AgentOriented Analysis and Design. n: International Journal of Autonomous Agents and MultiAgent
Systems, 3(3), 2000, pp. 285-312.
10. ZAMBONELLI, F., N. R. JENNINGS, M. WOOLDRIDGE.: Developing Multiagent
Systems: The Gaia methodology. n: ACM Transactions on Software Engineering and
Methodology, 12(3), 2003, pp. 417-470.
11. JUAN, T., A. PIERCE, L. STERLING: ROADMAP: Extending the Gaia methodology
for Complex Open Systems. n: Proc. of the 1st ACM Joint Conference on Autonomous
Agents and Multi-Agent Systems, ACM Press, 2002.
12. BRESCIANI, P., A. PERINI, P. GIORGINI, F. GIUNCHIGLIA, J. MYLOPOULOS:
Tropos: An Agent-Oriented Software Development Methodology. n: Autonomous Agents
and Multi-Agent Systems, 8(3), 2004, pp. 203-236.
13. UML: http://www.omg.org/uml, 2001.
14. JACK: http://www.agent-software.com, 2005.
15. DELOACH, S.: Analysis and design using MaSE and agentTool. n: Proc. of the 12th
Midwest Artificial Intelligence and Cognitive Science Conference MAICS-01, Miami
University Press, 2001.
16. PADGHAM, L., M. WINIKOFF: Developing Intelligent Agent Systems: A Practical
Guide, John Wiley and Sons Ltd, 2004.
17. COLLIS, J., D. NDUMU: The Application Realisation Guide ZEUS Methodology
Documentation Part III, Intelligent Systems Research Group, BT Labs, 1999.
18. COLLIS, J., D. NDUMU: The Role Modelling Guide ZEUS Methodology
Documentation Part I, Intelligent Systems Research Group, BT Labs, 1999.
19. DAM, K. H., M. WINIKOFF: Comparing Agent-Oriented Methodologies. n: P. Giorgini
et al. (Eds), AOIS-03, LNAI 3030, Springer-Verlag, 2004, pp. 78-93.
20. OPREA, M.: Agent-Oriented Software Engineering. n: Proc. of the 24th IASTED
International Multi-Conference Software Engineering SE-06, Innsbruck, Austria, 2006,
pp. 1-6.

96

Revista Romn de Informatic i Automatic, vol. 20, nr. 1, 2010