• Nenhum resultado encontrado

CARLOS EDUARDO PANTOJA UMA METODOLOGIA PARA APOIO AO DESENVOLVIMENTO SEMI-AUTOMÁTICO DE SISTEMAS MULTI-AGENTES

N/A
N/A
Protected

Academic year: 2021

Share "CARLOS EDUARDO PANTOJA UMA METODOLOGIA PARA APOIO AO DESENVOLVIMENTO SEMI-AUTOMÁTICO DE SISTEMAS MULTI-AGENTES"

Copied!
114
0
0

Texto

(1)

MINIST´

ERIO DA DEFESA

EX´

ERCITO BRASILEIRO

DEPARTAMENTO DE CIˆ

ENCIA E TECNOLOGIA

INSTITUTO MILITAR DE ENGENHARIA

CURSO DE MESTRADO EM SISTEMAS E COMPUTAC

¸ ˜

AO

CARLOS EDUARDO PANTOJA

UMA METODOLOGIA PARA APOIO AO DESENVOLVIMENTO

SEMI-AUTOM ´

ATICO DE SISTEMAS MULTI-AGENTES

Rio de Janeiro

2012

(2)

INSTITUTO MILITAR DE ENGENHARIA

CARLOS EDUARDO PANTOJA

UMA METODOLOGIA PARA APOIO AO

DESENVOLVIMENTO SEMI-AUTOM ´

ATICO DE SISTEMAS

MULTI-AGENTES

Disserta¸c˜ao de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computa¸c˜ao do Instituto Mili-tar de Engenharia, como requisito parcial para obten¸c˜ao do t´ıtulo de Mestre em Sistemas e Computa¸c˜ao.

Orientador: Ricardo Choren Noya - D.Sc.

Rio de Janeiro

2012

(3)

c2012

INSTITUTO MILITAR DE ENGENHARIA Pra¸ca General Tib´urcio, 80-Praia Vermelha Rio de Janeiro-RJ CEP 22290-270

Este exemplar ´e de propriedade do Instituto Militar de Engenharia, que poder´a inclu´ı-lo em base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento.

´

E permitida a men¸c˜ao, reprodu¸c˜ao parcial ou integral e a transmiss˜ao entre bibliotecas deste trabalho, sem modifica¸c˜ao de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadˆemica, coment´arios e cita¸c˜oes, desde que sem finalidade comercial e que seja feita a referˆencia bibliogr´afica completa.

Os conceitos expressos neste trabalho s˜ao de responsabilidade do autor e do orientador.

005.12 P 198a

Pantoja, Carlos Eduardo

Uma Metodologia Para Apoio ao Desenvolvimento Semi-autom´atico de Sistemas Multi-agentes/ Carlos Ed-uardo Pantoja; orientado por Ricardo Choren Noya. – Rio de Janeiro: Instituto Militar de Engenharia, 2012.

114 p.: il.

Disserta¸c˜ao (mestrado) – Instituto Militar de Enge-nharia – Rio de Janeiro, 2012.

1. Sistemas e computa¸c˜ao. 2. Sistemas Multi-Agentes. 3. Arquitetura Orientada a Modelos. I. Noya, Ricardo Choren. II. Uma Metodologia Para Apoio ao Desenvolvimento Semi-autom´atico de Sistemas Multi-Agentes. III. Instituto Militar de Engenharia.

(4)

INSTITUTO MILITAR DE ENGENHARIA

CARLOS EDUARDO PANTOJA

UMA METODOLOGIA PARA APOIO AO

DESENVOLVIMENTO SEMI-AUTOM ´

ATICO DE SISTEMAS

MULTI-AGENTES

Disserta¸c˜ao de Mestrado apresentada ao Curso de Mestrado em Sistemas e Com-puta¸c˜ao do Instituto Militar de Engenharia, como requisito parcial para obten¸c˜ao do t´ıtulo de Mestre em Sistemas e Computa¸c˜ao.

Orientador: Ricardo Choren Noya - D.Sc.

Aprovada em 9 de Novembro de 2012 pela seguinte Banca Examinadora:

Ricardo Choren Noya - D.Sc. do IME - Presidente

Prof. Paulo Fernando Ferreira Rosa - Ph.D, do IME

Prof. Anarosa Alves Franco Brand˜ao - D.Sc. da USP

Rio de Janeiro 2012

(5)
(6)

AGRADECIMENTOS

Agrade¸co a todas as pessoas que cooperaram com o desenvolvimento desta disserta¸c˜ao de mestrado, tenha sido por meio de cr´ıticas, ideias, apoio, incentivo ou qualquer outra forma de aux´ılio.

Por fim, a todos os professores e funcion´arios da Se¸c˜ao de Engenharia de Computa¸c˜ao do Instituto Militar de Engenharia.

(7)

E aqueles que foram vistos dan¸cando foram julgados insanos por aqueles que n˜ao podiam escutar a m´usica.

(8)

SUM ´ARIO

LISTA DE ILUSTRAC¸ ˜OES . . . 10

LISTA DE ABREVIATURAS . . . 12

1 INTRODUC¸ ˜AO . . . 15

1.1 Problema . . . 20

1.2 Objetivo e Contribui¸c˜oes Esperadas . . . 21

1.3 Estrutura do Texto . . . 23

2 CONCEITOS B ´ASICOS . . . 24

2.1 Desenvolvimento Orientado a Modelos . . . 24

2.2 FAME Agent-oriented Modeling Language (FAML) . . . 25

2.3 Jason . . . 31

2.4 Moise+ . . . 34

2.5 JaCaMo . . . 36

2.6 Representa¸c˜ao de Transforma¸c˜oes . . . 36

3 A METODOLOGIA PROPOSTA . . . 38

3.1 A Modelagem do Sistema (PIM) . . . 39

3.2 Transforma¸c˜ao do Modelo de Especifica¸c˜ao para o Modelo de Projeto . . . 41

3.2.1 Modifica¸c˜oes . . . 42

3.2.2 As Transforma¸c˜oes QVT . . . 42

3.2.3 Transforma¸c˜ao Pim To Psm . . . 44

3.2.4 Transforma¸c˜ao Faml To Geaplam . . . 44

3.2.5 Transforma¸c˜ao System To System . . . 46

3.2.6 Transforma¸c˜ao Role To Role . . . 47

3.2.7 Transforma¸c˜ao SystemGoal To Goal . . . 48

3.2.8 Transforma¸c˜ao Organization To Group . . . 48

3.2.9 Transforma¸c˜ao Task To Mission . . . 49

3.2.10 Transforma¸c˜ao Environment To Environment . . . 50

3.2.11 Transforma¸c˜ao Agent To Agent . . . 51

(9)

3.2.13 Transforma¸c˜ao MentalState To Goal . . . 53

3.2.14 Transforma¸c˜ao Facet To Percept . . . 54

3.2.15 Transforma¸c˜ao Plan To Plan . . . 54

3.2.16 Transforma¸c˜ao Action To Action . . . 56

3.2.17 Transforma¸c˜ao Action To InternalAction . . . 57

3.2.18 Transforma¸c˜ao Action To ExternalAction . . . 58

3.3 Transforma¸c˜ao do Modelo de Projeto para a Plataforma de Execu¸c˜ao . . . 59

3.3.1 Template Jason To Code . . . 59

3.3.2 Template System To Mas2j . . . 60

3.3.3 Template Environment To Class . . . 62

3.3.4 Template Percept To Attribute . . . 63

3.3.5 Template Agent To Asl . . . 64

3.3.6 Template Belief To Jason . . . 65

3.3.7 Template Goal To Jason . . . 66

3.3.8 Template Plan To Jason . . . 67

3.3.9 Template Action To Jason . . . 68

3.3.10 Template InternalAction To Jason . . . 70

3.3.11 Template Organization To Xml . . . 71 3.3.12 Template Structural To Xml . . . 72 3.3.13 Template Role To Xml . . . 73 3.3.14 Template Group To Xml . . . 74 3.3.15 Template GroupRole To Xml . . . 75 3.3.16 Template Link To Xml . . . 76 3.3.17 Template Functional To Xml . . . 77 3.3.18 Template Scheme To Xml . . . 77 3.3.19 Template SchemePlan To Xml . . . 78 3.3.20 Template Mission To Xml . . . 79 3.3.21 Template Goal To Xml . . . 80 3.3.22 Template Normative To Xml . . . 80 3.3.23 Template Norm To Xml . . . 80

3.4 Transforma¸c˜ao do Modelo de Projeto para a Plataforma de Execu¸c˜ao UAVAS 81 3.5 Discuss˜ao . . . 82

(10)

4 PROVA DE CONCEITO . . . 84

4.1 Sistema Gold Miners . . . 84

4.1.1 A Modelagem do Sistema . . . 85

4.1.2 A Gera¸c˜ao do Sistema . . . 90

4.2 Sistema UAVAS/Tropos . . . 92

4.2.1 A Modelagem do Sistema . . . 93

4.2.2 A Gera¸c˜ao do Sistema . . . 95

4.3 Sistema Write Paper . . . 97

4.3.1 A Modelagem do Sistema . . . 97

4.3.2 A Gera¸c˜ao do Sistema . . . 98

5 TRABALHOS RELACIONADOS . . . 104

5.1 INGENIAS Development Kit . . . 104

5.2 Prometheus Development Toolkit . . . 105

5.3 PASSI Toolkit . . . 106

5.4 Comparativo . . . 107

6 CONCLUS ˜AO . . . 108

6.1 Contribui¸c˜oes . . . 109

6.2 Trabalhos futuros . . . 110

(11)

LISTA DE ILUSTRAC¸ ˜OES

FIG.1.1 Vis˜ao tradicionalista de um SMA. . . 15

FIG.1.2 Um agente de software. . . 16

FIG.1.3 A arquitetura PRS. . . 19

FIG.1.4 A abordagem atual das plataformas de desenvolvimento SMA. . . 21

FIG.1.5 A abordagem proposta. . . 22

FIG.2.1 A Arquitetura Orientada a Modelos (OMG, 2003). . . 25

FIG.2.2 A Arquitetura de quatro camadas da OMG (OMG, 2012a). . . 26

FIG.2.3 O N´ıvel de Sistema (BEYDOUN et al., 2009). . . 27

FIG.2.4 O N´ıvel de Defini¸c˜ao do Agente (BEYDOUN et al., 2009). . . 28

FIG.2.5 O N´ıvel de Ambiente (BEYDOUN et al., 2009). . . 29

FIG.2.6 O N´ıvel do Agente (BEYDOUN et al., 2009). . . 31

FIG.2.7 O metamodelo JaCaMo (BOISSIER et al., 2011). . . 36

FIG.3.1 A metodologia proposta. . . 38

FIG.3.2 O metamodelo FAML adaptado (PANTOJA; CHOREN, 2012). . . 40

FIG.3.3 O metamodelo JaCaMo adaptado (PANTOJA; CHOREN, 2012). . . 43

FIG.4.1 Diagrama do agente Leader (BORDINI et al., 2007) . . . 85

FIG.4.2 Diagrama do agente Miner (BORDINI et al., 2007) . . . 86

FIG.4.3 Diagrama de atividades do sistema Gold Miners (BORDINI et al., 2007) . . . 87

FIG.4.4 Diagrama de atividades do sistema Gold Miners (BORDINI et al., 2007) . . . 87

FIG.4.5 O meta-modelo FAML instanciado para o sistema Gold Miners . . . 88

FIG.4.6 A instˆancia do meta-modelo JaCaMo ap´os as transforma¸c˜oes QVT para o sistema Gold Miners . . . 89

FIG.4.7 O codifica¸c˜ao semi-autom´atica gerada para o sistema Gold Miners . . . 90

FIG.4.8 O trecho de c´odigo gerado a partir do template System To Mas2j . . . 91 FIG.4.9 O trecho de c´odigo gerado a partir do template Percepts To Attribute

91

FIG.4.10 O trecho de c´odigo gerado a partir do template Environment To Environment 91

(12)

FIG.4.11 O trecho de c´odigo gerado a partir do template Belief To Jason . . . 92

FIG.4.12 O trecho de c´odigo gerado a partir do template Plan To Jason . . . 92

FIG.4.13 O diagrama geral do sistema UAVAS. . . 93

FIG.4.14 O diagrama de metas do agente plane do sistema UAVAS. . . 94

FIG.4.15 O diagrama de atividades dos planos toDestination, photograph e getBack. . . 94

FIG.4.16 A instˆancia do modelo FAML para o sistema UAVAS. . . 95

FIG.4.17 A instˆancia do meta-modelo JaCaMo ap´os as transforma¸c˜oes QVT para o sistema UAVAS. . . 96

FIG.4.18 O c´odigo gerado para o agente plane. . . 96

FIG.4.19 A estrutura do sistema Write Paper. . . 97

FIG.4.20 A estrutura do sistema Write Paper. . . 98

FIG.4.21 A instˆancia do meta-modelo JaCaMo ap´os algumas modifica¸c˜oes. . . 100

FIG.4.22 O c´odigo JASON para o agente Jaime . . . 101

FIG.4.23 O c´odigo Moise para especifica¸c˜ao estrutural. . . 101

FIG.4.24 O c´odigo Moise para especifica¸c˜ao funcional. . . 102

FIG.4.25 O c´odigo Moise para especifica¸c˜ao normativa. . . 103

FIG.5.1 O ambiente gr´afico do PDT para a plataforma Eclipse. . . 104

FIG.5.2 O ambiente gr´afico do PDT para a plataforma Eclipse. . . 105

(13)

LISTA DE ABREVIATURAS

ABREVIATURAS

AAII - Australian Artificial Intelligence Institute BDI - Belief, Desire e Intention

CIM - Computer Independent Model

dMARS - Distributed Multi-agent Reasoning System EMF - Eclipse Modeling Framework

FAML - FAME Agent Modeling Language JAM - Java Agents for Meta-Learning

M2M - Model-To-Model

M2T - Model-To-Text

MDA - Model-Driven Architecture OCL - Object Constraint Language OMG - Object Management Group PIM - Plataform Independent Model PRS - Practical Reasoning System PSM - Plataform Specific Model

QVT - Query, View e Transformations RUP - Rational Unified Process

SMA - Sistemas Multi-Agentes TAO - Taming Agent Objects UML - Unified Modeling Language

(14)

RESUMO

Este trabalho apresenta uma metodologia MDA de desenvolvimento de sistemas multi-agentes que utiliza de modelos em diferentes n´ıveis de abstra¸c˜ao, partindo da es-pecifica¸c˜ao do sistema, e ap´os um conjunto de regras de transforma¸c˜oes entre modelos, chegar at´e a codifica¸c˜ao da plataforma de execu¸c˜ao JASON/Moise+.

A metodologia utiliza o FAML como modelo independente de plataforma, que ´e um meta-modelo que re´une os conceitos de diversas metodologias de desenvolvimento de sis-temas multi-agentes em um ´unico modelo. Como modelo espec´ıfico de plataforma foi escolhido o modelo JaCaMo, que utiliza a linguagem de programa¸c˜ao orientada a agentes JASON, o modelo organizacional Moise+ e o Cartago para programa¸c˜ao de artefatos para o ambiente.

As transforma¸c˜oes entre o modelo independente de plataforma e o modelo espec´ıfico de plataforma s˜ao apresentadas na linguagem QVT. A linguagem QVT foi escolhida por ser uma linguagem de transforma¸c˜ao de modelos padronizadas pela OMG. As transforma¸c˜oes entre o modelo espec´ıfico de plataforma e a codifica¸c˜ao da plataforma de execu¸c˜ao s˜ao apresentadas na linguagem M2T, padronizada pela OMG, que consiste em um conjunto de templates para gera¸c˜ao de artefatos de texto.

Uma extens˜ao da metodologia ´e apresentada para a gera¸c˜ao de codifica¸c˜ao para a plataforma UAVAS. A plataforma ´e utilizada para programar agentes inteligentes em JASON e AgentSpeak para Ve´ıculos A´ereos N˜ao Tripulados. A extens˜ao consiste em adi¸c˜oes nas regras de transforma¸c˜oes M2T.

Este trabalho apresenta, tamb´em, um ambiente de desenvolvimento de sistemas-multi agentes, que consiste de um conjunto de plugins para a plataforma de desenvolvimento Eclipse. Os meta-modelos FAML e JaCaMo foram constru´ıdos utilizando o Eclipse Mo-deling Framework. As transforma¸c˜oes entre os modelo independente de plataforma e o modelo espec´ıfico de plataforma foram implementadas utilizando a ferramenta M2M e as transforma¸c˜oes entre o modelo espec´ıfico de plataforma para o plataforma de execu¸c˜ao foram implementadas utilizando a ferramenta Acceleo.

S˜ao apresentados trˆes exemplos de sistemas multi-agentes. O Sistema Gold Miners que foi modelado na metodologia Prometheus, o sistema UAVAS modelado em Tropos exemplificando a codifica¸c˜ao para VANT e o sistema Write Paper exemplificando a gera¸c˜ao do modelo organizacional.

(15)

ABSTRACT

This work presents a MDA methodology for MAS development that uses models in different abstraction levels, going from system specification, and after a transformation set between models, get to the especific platform JASON/Moise+ codification.

The methodology uses the FAML as platform independent model, which is a meta-model that englobes the concepts of several agent-oriented methodologies for MAS devel-opment into a single model. As platform specific model, the JaCaMo model was chosen. The JaCaMo uses the agent-oriented program language named JASON, the organiza-tional model Moise+ and the artefact-oriented program language for environments named Cartago.

The transformations between platform independent model and platform specific model are presented in QVT language. The QVT was chosen because it is a transformation lan-guage for models which is standardized by OMG. The transformations between platform specific model and the execution platform are presented in M2T language, standardized by OMG, that consists in a set of templates to code generation.

A methodology extension are presented for platform UAVAS code generation. The platform is used to program intelligent agents in Jason and AgentSpeak for Unmanned Aerial Vehicles. The extension consists of additions in M2T transformations.

This work presents a MAS development environment, which is a set of Eclipse plugins. The FAML and JaCaMO metamodels were constructed using the Eclipse Modeling Frame-work. The transformations between platform independent model and platform specific model were implemented using the M2M tool and the transformations between platform specific model and execution platform were implemented using the Acceleo tool.

Three MAS examples are presented. The Gold Miners system that was modeled using Prometheus, the UAVAS system that was modeled in Tropos exemplifying the Unmanned Aerial vehicles codification and the Write Paper system exemplifying the organizational model codification.

(16)

1 INTRODUC¸ ˜AO

Os Sistemas Multi-Agentes (SMA) consistem em um grupo de agentes de software interagindo uns com os outros atrav´es de troca de mensagens na mesma rede de computa-dores (WOOLDRIDGE, 2000). Os SMA introduzem a possibilidade de agentes terem ob-jetivos comuns e conflitantes e interagem entre si atrav´es de negocia¸c˜oes e comunica¸c˜oes para decidirem cooperar para benef´ıcio m´utuo ou competir para atingir suas metas (BEL-LIFEMINE et al., 2007).

Os SMA s˜ao desenvolvidos e projetados em termos de uma entidade autˆonoma de software que possa atingir seus objetivos interagindo com outros agentes atrav´es de uma linguagem de comunica¸c˜ao ou protocolo (ZAMBONELLI et al., 2003).

Um SMA contem um quantitativo de agentes que se comunicam entre si e podem agir em determinado ambiente. Diferentes agentes possuem esferas de influˆencia onde ter˜ao controle sobre o que ser´a percebido do ambiente e que podem coincidir em alguns casos. Os agentes ainda podem estar agrupados em organiza¸c˜oes com a finalidade de atingir objetivos e metas m´utuas (WOOLDRIDGE, 2009). A figura 1.1 ilustra um agente tradicional de SMA.

(17)

Conforme (WOOLDRIDGE, 2000), agentes s˜ao componentes autˆonomos e cognitivos, originados da inteligˆencia artificial, situados em um ambiente e n˜ao s˜ao receptores passivos de a¸c˜oes executadas por outras entidades, pois possuem uma biblioteca de planos com poss´ıveis a¸c˜oes em resposta aos est´ımulos percebidos com a finalidade de atingir seus objetivos de projeto e modificar o ambiente em que est˜ao inseridos. O ambiente em que o agente est´a situado pode ser f´ısico ou de software e ´e percebido atrav´es de sensores. A figura 1.2 ilustra o conceito de agentes de software.

Um agente possui as seguintes propriedades: autonomia, onde os agentes operam sem a interferˆencia direta de humanos e tem certo controle sobre suas a¸c˜oes e estado interno; habilidade social, no qual o agente interage, por meio de troca de informa¸c˜oes, com outros agentes atrav´es de uma linguagem de comunica¸c˜ao; e reativos, onde os agentes percebem o ambiente e respondem a mudan¸cas que ocorrem nele (WOOLDRIDGE; JENNINGS, 2000).

FIG. 1.2: Um agente de software.

A arquitetura BDI (Belief, Desire e Intention) permite que programas de computa-dores possuam estado mental (BRATMAN, 1987). Um agente ´e considerado racional se escolher agir em busca dos seus interesses e baseado nas cren¸cas que possuir do mundo (WOOLDRIDGE, 1999). O BDI se refere ao uso de programas de computadores com analogias a cren¸cas (beliefs), desejos (desires) e inten¸c˜oes (intentions). A defini¸c˜ao de cren¸cas, desejos e inten¸c˜oes ´e descrita como se segue (BORDINI et al., 2007):

(18)

• Cren¸cas s˜ao informa¸c˜oes que o agente tem sobre o mundo.

• Desejos s˜ao todas as possibilidades de estados de neg´ocio que o agente deve querer atingir. Por´em, ter um desejo n˜ao significa que o agente ir´a atuar sobre ele, mas este ´e uma potencial influˆencia nas a¸c˜oes do agente.

• Inten¸c˜oes s˜ao todos os estados de neg´ocios em que o agente decidiu trabalhar. Conforme (WOOLDRIDGE, 2009), a abordagem SMA permite a modelagem desde sistemas simples a complexos e s˜ao usados em uma variedade de aplica¸c˜oes como ind´ustria, gest˜ao da informa¸c˜ao, Internet, transporte, telecomunica¸c˜oes, medicina e rob´otica.

Existem diversas ferramentas orientadas a agentes que auxiliam o desenvolvimento de um SMA. Entre elas encontram-se as metodologias e as linguagens de modelagens. As metodologias de desenvolvimento de SMA consistem em uma cole¸c˜ao de modelos para formalizar e entender o sistema modelado antes de sua implementa¸c˜ao. Esses mode-los come¸cam com uma tentativa de abstra¸c˜ao at´e atingirem um n´ıvel mais pr´oximo da implementa¸c˜ao. As principais metodologias s˜ao Gaia (ZAMBONELLI et al., 2003), Tro-pos (BRESCIANI et al., 2003), Prometheus (PADGHAM; WINIKOFF, 2004), Adelfe (BERNON et al., 2003), INGENIAS (GASCUE ˜NA; FERN ´ANDEZ-CABALLERO, 2007) e PASSI (COSSENTINO, 2005). J´a as linguagens de modelagem mais conhecidas s˜ao Agent UML (BAUER et al., 2000) e MAS-ML (SILVA; LUCENA, 2003).

A metodologia Gaia permite que o designer desenvolva sistematicamente um sistema SMA at´e um n´ıvel de design que possa ser diretamente implementado e ´e constitu´ıda de duas categorias: abstrata e concreta. Os conceitos de pap´eis, permiss˜oes, responsabili-dades, protocolos, atividades fazem parte da categoria abstrata enquanto os conceitos de tipo de agentes, servi¸cos e conhecimento fazem parte da categoria concreta.

A metodologia Tropos prove um modelo conceitual para modelagem de sistemas orientados a agentes baseados nos conceitos de atores, objetivos, planos, recursos, de-pendˆencias, capacidades e cren¸cas. Os modelos de atores e dependˆencias s˜ao os primeiros a serem desenvolvidos , em seguida o modelo de objetivos ´e desenvolvido e por ´ultimo o modelo de planos identifica as a¸c˜oes para se atingir os objetivos.

A metodologia Prometheus se baseia em trˆes fases de especifica¸c˜ao do sistema: especi-fica¸c˜ao do sistema, design de arquitetura e design detalhado. A primeira ´e respons´avel por identificar as funcionalidades b´asicas e os objetivos do sistema, a segunda identifica

(19)

os tipos de agentes e a estrutura do sistema, enquanto que a ´ultima refina as capacidades dos agentes.

A metodologia INGENIAS ´e baseada em cinco meta-modelos com diferentes vis˜oes e conceitos que podem descrever um SMA: Organiza¸c˜ao, Ambiente, Tarefas/Objetivos, Agente e Intera¸c˜oes. A utiliza¸c˜ao de meta-modelos permite maior flexibilidade em decor-rentes altera¸c˜oes na nota¸c˜ao.

A linguagem de modelagem Agent UML utiliza os conceitos da Unified Modelling Language (UML) e da orienta¸c˜ao a objetos para modelagem de SMA, adicionando suporte para concorrˆencia e pap´eis. Adelfe ´e uma metodologia que tamb´em ´e baseada nas nota¸c˜oes da orienta¸c˜ao a objetos como a UML e o Rational Unified Process (RUP), e ainda, utiliza o Agent UML para expressar as intera¸c˜oes entre agentes. A metodologia PASSI utiliza uma t´ecnica passo-a-passo para desenvolvimento de SMA, atrav´es cinco modelos e ´e baseado nos conceitos da orienta¸c˜ao a objetos. A linguagem de modelagem MAS-ML estende a nota¸c˜ao da UML baseada no modelo conceitual Taming Agent Objects (TAO) (SILVA, 2003), que ´e dividido em conceitos est´aticos e suas rela¸c˜oes; e em conceitos dinˆamicos.

Caso um modelo computacional de agentes precise ser implementado, utiliza-se o mo-delo de racioc´ınio pr´atico fazendo o uso da delibera¸c˜ao e o racioc´ınio fins-meio. Exis-tem diversas linguagens e plataformas que implementam o conceito de BDI como o PRS (BRATMAN, 1987), JAM (HUBER, 1999), dMARS (D’INVERNO et al., 1998), JACK (WINIKOFF, 2005), JASON (BORDINI, 2007) e JADEX (BELLIFEMINE et al., 2007). O PRS (Procedural Reasoning System) foi a primeira arquitetura de agentes a envolver explicitamente os conceitos de cren¸ca, inten¸c˜ao e desejo, e tem provado ser a abordagem mais duradoura de desenvolvimento de agentes (BORDINI et al., 2007).

Em PRS, um agente n˜ao faz planos, ao inv´es disso, ele esta equipado com uma bi-blioteca de planos pr´e-compilados que s˜ao programados manualmente pelo programador do agente. Os planos em PRS contˆem os seguintes componentes: metas (goals), contexto (context); e o corpo (body). No momento de sua inicializa¸c˜ao, um agente PRS ter´a uma cole¸c˜ao de planos, e cren¸cas iniciais sobre o ambiente. As cren¸cas s˜ao representadas como formulas atˆomicas da linguagem de primeira ordem e, al´em disso, um agente tamb´em possuir´a uma meta principal (BORDINI et al., 2007). A arquitetura PRS pode ser vista na figura 1.3.

A linguagem JAM combina os conceitos do BDI e do PRS e cada agente ´e composto de cinco componentes: um modelo do mundo, uma biblioteca de planos, um interpretador,

(20)

FIG. 1.3: A arquitetura PRS.

uma estrutura de inten¸c˜ao e um observador. A linguagem dMARS foi criada no AAII e ´e implementado em C++, onde cada agente ´e caracterizado por uma biblioteca de planos; trˆes fun¸c˜oes para sele¸c˜ao da inten¸c˜ao a ser executada, o plano a ser adotado e o evento que est´a sendo gerido, al´em fun¸c˜oes auxiliares que s˜ao executadas durante o ciclo de vida do agente.

A plataforma JACK Intelligent Agents estende a sintaxe da linguagem Java com constru¸c˜oes espec´ıficas para agentes permitindo que os desenvolvedores definam carac-ter´ısticas do BDI e comportamentos como: agentes, capacidades, cren¸cas, vis˜oes, eventos e planos.

O JASON ´e um framework baseado em AgentSpeak e Java que utiliza as principais caracter´ısticas do PRS. Em JASON um agente ´e composto de cren¸cas, metas, planos e a¸c˜oes e ´e programado utilizando o AgentSpeak. Os agentes em JASON est˜ao inseridos em um ambiente, que estende a classe Environment, onde as percep¸c˜oes e rea¸c˜oes a est´ımulos do ambiente s˜ao programadas em Java (BORDINI et al., 2007).

A plataforma JADEX ´e um extens˜ao BDI para a linguagem JADE (BELLIFEMINE et al., 2007) e possuem cren¸cas que podem ser qualquer objeto java armazenados em uma base de cren¸cas; metas que s˜ao descri¸c˜oes dos estados a serem atingidos pelo agente; e planos que s˜ao procedimentos codificados em Java.

(21)

1.1 PROBLEMA

No desenvolvimento de SMA, ao se utilizar de uma metodologia existente para modelar um sistema orientado a agentes e implementa-lo usando uma linguagem de programa¸c˜ao espec´ıfica, de forma n˜ao autom´atica, uma s´erie de problemas podem ser gerados relaciona-dos `a engenharia de software, como o de produtos n˜ao confi´aveis, a lentid˜ao no processo de desenvolvimento dos produtos de software, a n˜ao-confiabilidade na transforma¸c˜ao da modelagem para o c´odigo-fonte e o desenvolvimento pass´ıveis de erros humanos.

Al´em disso, os SMA s˜ao sistemas complexos em quest˜ao de design e implementa¸c˜ao e a ausˆencia de um ambiente de modelagem compromete o projeto, an´alise e codifica¸c˜ao do software orientado a agentes. A realiza¸c˜ao da modelagem de forma manual pode ser uma tarefa longa que gere retrabalho na implementa¸c˜ao do sistema porque os desenvolvedores tem que lidar com a diferen¸ca entre os conceitos usados na especifica¸c˜ao e na plataforma de implementa¸c˜ao (NUNES et al., 2011).

Portanto, para auxiliar na an´alise e desenvolvimento de SMA, existem diversas platafor-mas de desenvolvimento que geram codifica¸c˜ao automatizada para determinada linguagem de programa¸c˜ao orientada a agentes a partir de uma linguagem de modelagem ou metodolo-gia espec´ıfica como Prometheus Development Toolkit (PDT) (SUN et al., 2010), INGE-NIAS Development Kit (IDK) (GOMEZ-SANZ et al., 2008) e PASSI Toolkit (PTK) (COSSENTINO; POTTS, 2002). Contudo, tais plataformas geram um atrelamento entre a linguagem de modelagem e a linguagem de programa¸c˜ao utilizadas, limitando o desen-volvedor na escolha da metodologia e linguagem para o desenvolvimento do sistema, e ainda, algumas tecnologias n˜ao permitem o agregamento de novas funcionalidades por n˜ao utilizarem arquiteturas reutiliz´aveis. A figura 1.4 demonstra o funcionamento das plataformas descritas anteriormente.

A plataforma PDT gera codifica¸c˜ao autom´atica utilizando o Prometheus como lin-guagem de modelagem e gera codifica¸c˜ao autom´atica apenas para JACK apesar de per-mitir a integra¸c˜ao com outras linguagens de modelagens. O IDK gera c´odigo em JADE utilizando a metodologia INGENIAS, que apesar de utilizar o desenvolvimento orientado a modelos, n˜ao utiliza um meta-modelo gen´erico para outras metodologias. Por ´ultimo, a plataforma PTK gera apenas codifica¸c˜ao em JADE utilizando a metodologia PASSI.

Para superar os problemas de geradores de c´odigo para linguagens de modelagens espec´ıficas ´e importante a utiliza¸c˜ao de meta-modelos. A Arquitetura Orientada a

(22)

Mo-FIG. 1.4: A abordagem atual das plataformas de desenvolvimento SMA.

delos (Model Driven Architecture - MDA) ´e uma arquitetura padronizada pela OMG que permite a cria¸c˜ao de solu¸c˜oes de software utilizando meta-modelos que separam a especifica¸c˜ao independente de modelo computacional da implementa¸c˜ao em plataformas espec´ıficas (OMG, 2003).

Existem diversos meta-modelos para orienta¸c˜ao a agentes como Islander (ESTEVA, 2002), TAO e FAML (BEYDOUN et al., 2009). O meta-modelo gen´erico FAME Agent-oriented Modeling Language (FAML) ´e uma tentativa de unificar os componentes do pro-duto de trabalho das metodologias SMA, de forma que o mesmo seja referˆencia para o desenvolvimento da ´area e venha a ser utilizado para descrever qualquer SMA mod-elado, independente da metodologia de modelagem empregada e ´e um candidato para padroniza¸c˜ao no desenvolvimento de SMA.

1.2 OBJETIVO E CONTRIBUIC¸ ˜OES ESPERADAS

O objetivo desse trabalho ´e a cria¸c˜ao de uma metodologia para desenvolvimento de SMA que utiliza a abordagem de desenvolvimento orientado a modelos para a gera¸c˜ao de c´odigo semi-autom´atico para as linguagens de programa¸c˜ao orientada a agentes JASON e o modelo organizacional Moise+ (HUBNER et al., 2002). A abordagem utiliza o FAML como o modelo independente de plataforma e o modelo baseado no JaCaMo (BOISSIER et al., 2012), formado pelas linguagens JASON e Moise+, como modelo espec´ıfico de plataforma.

A Arquitetura Orientada a Modelos ´e uma abordagem de desenvolvimento de soft-ware dirigida por modelos em diversos n´ıveis de abstra¸c˜ao, onde um sistema ´e modelado usando um modelo independente de plataforma, no qual ser´a transformado em um

(23)

mo-delo espec´ıfico de plataforma, dado um momo-delo de plataforma. A arquitetura tamb´em provˆe linguagens de transforma¸c˜oes entre modelos como o Query-View-Transformations (QVT) da Object Management Group (OMG) para a instancia¸c˜ao do modelo espec´ıfico de plataforma, e a linguagem de transforma¸c˜ao de modelos em artefatos de texto Model-To-Text (M2T) da OMG, para gera¸c˜ao de c´odigo.

A abordagem proposta permitir´a a utiliza¸c˜ao de uma linguagem de modelagem que seja aderente ao FAML, e atrav´es de um conjunto de transforma¸c˜oes em QVT, realizar a transi¸c˜ao da especifica¸c˜ao para a plataforma espec´ıfica de desenvolvimento SMA. Ap´os o modelo da plataforma espec´ıfica for instanciado, um conjunto de transforma¸c˜oes uti-lizando o M2T realizar´a a transi¸c˜ao da plataforma espec´ıfica de desenvolvimento SMA para a codifica¸c˜ao semi-autom´atica da plataforma JASON/Moise+. A abordagem ainda utilizar´a a linguagem Object Constraint Language (OCL) da OMG, para restri¸c˜ao e val-ida¸c˜ao dos modelos FAML e JaCaMo utilizados na transi¸c˜ao entre a especifica¸c˜ao e imple-menta¸c˜ao do sistema. A abordagem tende a garantir uma maior portabilidade, qualidade, manutenibilidade e agilidade no processo de desenvolvimento de software e pode ser vista na figura 1.5.

FIG. 1.5: A abordagem proposta.

As contribui¸c˜oes previstas neste trabalho s˜ao: (i) a cria¸c˜ao de uma metodologia de desenvolvimento SMA, onde os meta-modelos baseados no FAML e no JaCaMo ser˜ao uti-lizados como modelos independentes e espec´ıficos de plataforma respectivamente; um con-junto de transforma¸c˜oes entre modelos usando o QVT; um conjunto de regras utilizando o Object Constraint Language (OCL), da OMG, para a valida¸c˜ao dos meta-modelos FAML

(24)

e JaCaMo; e um conjunto de transforma¸c˜oes em M2T para gera¸c˜ao de c´odigo semi-autom´atica para JASON e Moise+; (ii) a cria¸c˜ao de uma ferramenta para gera¸c˜ao de c´odigo semi-autom´atico para a linguagem de programa¸c˜ao orientada a agentes JASON em conjunto com o Moise+. Os meta-modelos FAML e JaCaMo ser˜ao implementados pela ferramenta de meta-modelagem chamada ECORE e as transforma¸c˜oes entre mode-los ser˜ao implementadas usando a ferramenta Model-To-Model (M2M) do Eclipse Mod-eling Framework (EMF) (FOUNDATION, 2012); as transforma¸c˜oes para o c´odigo ser˜ao implementadas utilizando o Acceleo (OBEO, 2012). O ambiente ser´a um conjunto de plug-ins para o ambiente de desenvolvimento Eclipse; (iii) uma extens˜ao da metodologia proposta para gera¸c˜ao de c´odigo semi-autom´atica para o modelo Unmanned Aerial Vehi-cles AgentSpeak (UAVAS) (HAMA, 2012), que ´e um modelo que utiliza o JASON para programa¸c˜ao de Ve´ıculos A´ereos N˜ao-Tripulados (VANT) em simuladores e hardware.

1.3 ESTRUTURA DO TEXTO

Este trabalho est´a estruturado da seguinte forma: a se¸c˜ao 2 apresentar´a os conceitos b´asicos de desenvolvimento orientado a modelos, do meta-modelo gen´erico FAML, das linguagens orientadas a agentes JASON e Moise+, do meta-modelo baseado no JaCaMo e as linguagens de transforma¸c˜oes e valida¸c˜oes QVT, M2T e OCL; a se¸c˜ao 3 apresentar´a a abordagem proposta, a modelagem do modelo independente de plataforma, as trans-forma¸c˜oes entre o modelo de especifica¸c˜ao para o modelo de projeto, e as transforma¸c˜oes do modelo de projeto para o modelo de execu¸c˜ao; a se¸c˜ao 4 apresentar´a duas provas de conceitos utilizando a abordagem; a se¸c˜ao 5 apresentar´a os trabalhos relacionados; e por ´

(25)

2 CONCEITOS B ´ASICOS

Este cap´ıtulo apresenta os conceitos necess´arios ao entendimento da constru¸c˜ao do am-biente de desenvolvimento SMA orientado a modelos. A se¸c˜ao 2.1 apresenta os conceitos relacionados a Arquitetura Orientada a Modelos (Model Driven Architecture - MDA); a se¸c˜ao 2.2 apresenta o meta-modelo gen´erico para desenvolvimento de SMA conhecido como FAML; a se¸c˜ao 2.3 descreve as linguagens de programa¸c˜ao SMA JASON e o modelo organizacional Moise+; a se¸c˜ao 2.4 apresenta as linguagens de transforma¸c˜ao de modelos Model-To-Model e Model-To-Text, al´em da linguagem para restri¸c˜ao de modelo Object Constraint Language (OCL).

2.1 DESENVOLVIMENTO ORIENTADO A MODELOS

O Desenvolvimento Orientado a Modelos ´e uma abordagem de desenvolvimento de soft-ware que utiliza modelos para especifica¸c˜ao das partes e conectores de um sistema e as regras de intera¸c˜ao entre eles (OMG, 2003). A utiliza¸c˜ao de modelos direciona o en-tendimento, design, constru¸c˜ao, teste, opera¸c˜ao, manuten¸c˜ao e modifica¸c˜ao do sistema (MELLOR, 2004).

O MDA permite aos desenvolvedores construir modelos de projeto sem o conhecimento de outros modelos de aplica¸c˜ao, para depois, combin´a-los e criar a aplica¸c˜ao. O uso das t´ecnicas de MDA permite que a aplica¸c˜ao seja independente de plataforma aumentando a interoperabilidade do projeto e facilitando sua manuten¸c˜ao. A OMG ´e respons´avel pela padroniza¸c˜ao do MDA (OMG, 2003).

A utiliza¸c˜ao do MDA come¸ca com os requisitos do sistema sendo modelados de forma independente de determinado modelo computacional. Esse modelo de dom´ınio ´e conhecido como Modelo Independente de Computa¸c˜ao (Computation Independent Model - CIM) e ser´a transformado para um Modelo Independente de Plataforma (Platform Independent Model - PIM), e atrav´es de um conjunto de transforma¸c˜oes, ser´a instanciado o Modelo Espec´ıfico de Plataforma (Platform Specific Model - PSM) (OMG, 2003).

O CIM ´e uma vis˜ao independente de computa¸c˜ao do sistema que n˜ao mostra os de-talhes da estrutura do sistema e ´e o modelo de dom´ınio da solu¸c˜ao. O PIM ´e constru´ıdo baseado nas opera¸c˜oes do sistema com independˆencia de plataforma de implementa¸c˜ao e

(26)

em seguida um modelo espec´ıfico de plataforma ´e escolhido para permitir a implanta¸c˜ao do sistema. O PSM ´e um modelo do sistema com o ponto de vista da plataforma uti-lizada, que combina as especifica¸c˜oes do PIM com como o sistema utiliza as tecnologias da plataforma, enquanto as regras de mapeamento provˆem a especifica¸c˜ao necess´aria para a transforma¸c˜ao do PIM no PSM. A Arquitetura Orientada a Modelos pode ser vista na figura 2.1

FIG. 2.1: A Arquitetura Orientada a Modelos (OMG, 2003).

A OMG padronizou a terminologia em uma arquitetura de quatro camadas para fa-cilitar a comunica¸c˜ao entre objetos, modelos e meta-modelos. A camada M0 cont´em os dados do aplicativo em suas respectivas instˆancias. A camada M1 cont´em o aplicativo em si, com suas classes de um sistema orientado a objetos ou as defini¸c˜oes de um banco de dados relacional. Nessa camada ´e onde a modelagem do sistema ou aplicativo ´e realizada. A camada M2 cont´em os meta-modelos que capturam a linguagem de modelagem. A camada M3 ´e o meta-modelo que descreve outro meta-modelo e as propriedades que o meta-dado pode exibir (MELLOR, 2004). A figura 2.2 mostra um exemplo utilizando a arquitetura de quatro camadas.

O Meta-Metamodelo MOF descreve uma meta-metalinguagem abstrata utilizada para descrever outras metalinguagens para diferentes dom´ınios e tamb´em descreve um reposit´orio de metadados para suportar metadados dos metamodelos baseados no pr´oprio Meta-Metamodelo MOF.

2.2 FAME AGENT-ORIENTED MODELING LANGUAGE (FAML)

O FAME Agent-oriented Modeling Language (FAML) ´e um meta-modelo gen´erico para desenvolvimento e especifica¸c˜ao de SMA, baseado no (BEYDOUN, 2006), que combina diferentes linguagens de modelagem orientadas a agentes dentro do mesmo dom´ınio da

(27)

FIG. 2.2: A Arquitetura de quatro camadas da OMG (OMG, 2012a).

engenharia de software. O meta-modelo gen´erico foi validado passando por refinamen-tos para garantir os conceirefinamen-tos promovidos pelas mais recentes metodologias orientadas a agentes. A inten¸c˜ao ´e que o FAML forne¸ca um conjunto de conceitos gen´ericos ´uteis para qualquer linguagem de modelagem. A valida¸c˜ao foi composta por quatro passos mapeando-se diversas linguagens de modelagem orientadas a agentes e metodologias, e.g., TAO, Islander, Adelfe, PASSI, Gaia, INGENIAS e Tropos (BEYDOUN et al., 2006).

O FAML ´e composto por duas camadas, a de design-time, onde o conceito central ´e o sistema orientado a agentes, incluindo suas defini¸c˜oes, e a de runtime, onde o conceito central ´e o ambiente e os agentes que ali est˜ao situados. A divis˜ao dessas camadas permite que os conceitos de modelagem do SMA tanto quanto os conceitos em tempo de execu¸c˜ao sejam considerados pelo engenheiro de software no momento da especifica¸c˜ao do sistema. O conceito de agente tamb´em possui um papel central no FAML onde algumas classes desse meta-modelo est˜ao relacionadas ao escopo interno, enquanto outras est˜ao rela-cionadas ao escopo externo de um agente (BEYDOUN et al., 2009). Portanto ´e poss´ıvel identificar quatro categorias de classes para o FAML: n´ıvel do Agente, n´ıvel de Defini¸c˜ao

(28)

do Agente, n´ıvel do Ambiente e n´ıvel do Sistema.

O escopo externo de um agente na camada de design-time ´e chamado de n´ıvel de Sistema e pode ser visto na figura 2.3. Nesse n´ıvel, um sistema ´e o produto final de um projeto de desenvolvimento de software orientado a agente. Um sistema ´e composto de pap´eis, tarefas, organiza¸c˜oes e rela¸c˜oes, que um sistema orientado a agentes pode ter. Um papel ´e um comportamento que um agente assume em determinado momento e ´e respons´avel pela realiza¸c˜ao de um conjunto de tarefas, que auxiliam no atingimento de determinada meta de sistema. Os pap´eis podem ter relacionamentos dos tipos de compa-tibilidade e dependˆencia entre si e est˜ao hierarquicamente estruturadas. As organiza¸c˜oes s˜ao compostas por agentes e pap´eis que estes podem assumir no sistema, onde eles atuam em conjunto para atingir uma meta de sistema em comum.

FIG. 2.3: O N´ıvel de Sistema (BEYDOUN et al., 2009).

O escopo interno de um agente na camada de design-time ´e chamado de n´ıvel de Defini¸c˜ao do Agente e descreve as defini¸c˜oes e especifica¸c˜oes do agente. A figura 2.4

(29)

apresenta as classes associadas ao n´ıvel de Defini¸c˜ao do Agente.

FIG. 2.4: O N´ıvel de Defini¸c˜ao do Agente (BEYDOUN et al., 2009).

Todos os conceitos relacionados ao design-time do FAML podem ser vistos na tabela 2.1.

TAB. 2.1: Defini¸c˜oes dos conceitos dos n´ıveis do FAML

Conceito Defini¸c˜ao

Action Specification A especifica¸c˜ao de uma a¸c˜ao

Agent Definition Especifica¸c˜ao inicial do agente ap´os ele ser criado

Facet Action Specification Especifica¸c˜ao da defini¸c˜ao da faceta em termos de valores e visibilidade Facet Definition Especifica¸c˜ao da estrutura de uma faceta

Functional Requirement Requisito funcional do sistema

Interaction Protocol Especifica¸c˜ao de padr˜oes de comunica¸c˜ao ocorrentes no sistema Mental State Specification Especifica¸c˜ao das cren¸cas e metas iniciais do estado mental do agente

Message Schema Defini¸c˜ao da estrutura e semˆantica das mensagens que ocorrem no sistema Non-Functional Requirement Requisito n˜ao-funcional do sistema

Ontology Modelo estrutural de determinado dom´ınio Organization Definition Defini¸c˜ao da organiza¸c˜ao

Plan Resource Specification Especifica¸c˜ao de recursos utilizados em um plano Plan Specification Especifica¸c˜ao de um plano

Policy Regras que especificam um conjunto de eventos esperados no sistema

Requirement Requisito do sistema

Resource Specification Especifica¸c˜ao de um recurso

Role Compability Compatibilidade entre os pap´eis representados pelo agente Role Dependency Dependˆencia entre os pap´eis representados pelo agente Role Relationship Rela¸c˜ao entre os pap´eis representados pelo agente

Service Um bloco de atividades que o agente pode assumir System Goal A especifica¸c˜ao do estado do ambiente em que o sistema deseja atingir

Task Uma parte de comportamento que o sistema pode realizar

O escopo externo de um agente na camada de runtime ´e chamado de n´ıvel de Ambiente, e descreve os agentes que est˜ao situados no ambiente, os recursos e facetas que um agente pode usar e modificar. Este n´ıvel ainda mantem um hist´orico de eventos e o sistema do qual foi gerado (BEYDOUN et al., 2009).

O ambiente ´e o local onde est˜ao situados os agentes, que ´e gerado a partir de um sistema, e utiliza as defini¸c˜oes de ontologia, agentes, facetas, recursos, organiza¸c˜ao e um hist´orico de ambiente. A ontologia ´e um modelo estrutural de um dom´ınio de aplica¸c˜ao.

(30)

Uma faceta ´e a propriedade do ambiente em que o agente pode interagir e ´e inicializada a partir de uma defini¸c˜ao de faceta, que ´e a especifica¸c˜ao de sua estrutura, incluindo o seu nome, tipo de dado e modo de acesso. O hist´orico do ambiente ´e a sequˆencia de eventos que ocorreram no ambiente desde seu in´ıcio at´e determinado instante e pode ser do tipo evento de faceta ou evento de mensagem. Um evento de mensagem ´e o evento que acontece quando uma mensagem ´e enviada. A classe evento de mensagem se refere a um esquema de mensagem e possui os atributos agente de origem, agentes destinat´arios e parˆametros. O n´ıvel de Ambiente pode ser visto na figura 2.5.

FIG. 2.5: O N´ıvel de Ambiente (BEYDOUN et al., 2009).

O escopo interno de um agente na camada de runtime ´e chamado de n´ıvel do Agente (BEYDOUN et al., 2009) e descreve o estado mental de um agente, seus planos e a¸c˜oes para atingir objetivos em que esteja comprometido, pap´eis que um agente pode assumir, e suas comunica¸c˜oes. Nesse n´ıvel, um agente ´e uma entidade racional direcionada e autˆonoma baseado no modelo BDI que pode possuir um estado mental, que representa pap´eis, que pode utilizar recursos, pode possuir obriga¸c˜oes e que se comunica com outros agentes.

O estado mental de um agente ´e a composi¸c˜ao de cren¸cas e metas que o mesmo detˆem em determinado momento, onde a cren¸ca ´e uma afirmativa do ambiente em que o agente est´a inserido e que este acredita ser verdade em determinado per´ıodo de tempo. Um

(31)

re-curso ´e alguma coisa que possua nome, representa¸c˜oes racionais e que possa ser adquirida, compartilhada ou produzida e a obriga¸c˜ao s˜ao as atividades esperadas do comportamento de um agente em determinado cen´ario.

Uma meta ´e a representa¸c˜ao de um estado do ambiente em que o agente busca atingir e realizar atrav´es de, no m´ınimo, um plano. Uma meta possui ainda dois atributos: committed e o PlanDescriptors. O primeiro atributo determina se a meta ´e um desejo ou uma inten¸c˜ao, e caso o valor do atributo committed seja verdadeiro, ent˜ao a meta ´

e considerada uma inten¸c˜ao, caso contrario a meta ser´a um desejo. O PlanDescriptors especifica quando os planos devem estar prontos para serem usados no momento em que a meta ocorre.

Os planos s˜ao uma cole¸c˜ao organizada de a¸c˜oes que podem ser executadas para atingir determinada meta de um agente. Os planos possuem dois atributos, FailureCondition e a SuccessCondition. O primeiro atributo expressa quando um plano n˜ao alcan¸car´a a meta pretendida, enquanto a condi¸c˜ao de sucesso descreve quando um plano pode ser considerado bem sucedido. Um plano ´e gerado a partir de uma especifica¸c˜ao de planos e pode possuir a¸c˜oes, que s˜ao as unidades fundamentais do comportamento de um agente. As a¸c˜oes s˜ao divididas em dois tipos: a¸c˜ao de faceta, que ´e toda a¸c˜ao que resulta na mudan¸ca de uma faceta do ambiente; e a¸c˜ao de mensagem, que ´e toda e qualquer a¸c˜ao que resulte em envio de mensagens, e s˜ao geradas a partir da especifica¸c˜ao da a¸c˜ao de mensagem.

Uma mensagem ´e uma unidade de comunica¸c˜ao entre agentes. A classe mensagem ´e uma instˆancia de um esquema de mensagem, que contˆem uma comunica¸c˜ao e o atributo parˆametros. A comunica¸c˜ao ´e uma composi¸c˜ao de sequˆencias de mensagens continuadas e que utiliza um protocolo de intera¸c˜ao, que ´e a especifica¸c˜ao de padr˜oes de comunica¸c˜ao que ocorrem um sistema. Um esquema de mensagem ´e a especifica¸c˜ao da estrutura e semˆanticas de dado tipo de mensagem que pode ocorrer no sistema e est´a associada a uma performativa. A figura 2.6 apresenta as classes associadas ao n´ıvel do Agente.

Todos os conceitos relacionados ao runtime do FAML podem ser vistos na tabela 2.2. A utiliza¸c˜ao do FAML como um modelo independente de plataforma possibilita a utiliza¸c˜ao da abordagem orientada a modelos, pois o FAML ´e um metamodelo onde os conceitos de diversas linguagens de modelagens para SMA est˜ao definidos. A utiliza¸c˜ao do MDA, em conjunto com o FAML, permite a automatiza¸c˜ao do processo de desenvolvi-mento de SMA, atrav´es de um conjunto de transforma¸c˜oes partindo da especifica¸c˜ao at´e

(32)

FIG. 2.6: O N´ıvel do Agente (BEYDOUN et al., 2009).

a implementa¸c˜ao efetiva do sistema.

2.3 JASON

O JASON ´e um framework baseado em AgentSpeak e Java para desenvolvimento de SMA criado por (BORDINI et al., 2007). A linguagem AgentSpeak, representa uma tentativa de refinar as caracter´ısticas principais do PRS em uma simples e unificada linguagem de programa¸c˜ao e ´e baseada na arquitetura BDI.

Em JASON um agente pode ser implementado baseado em cren¸cas, metas, planos e a¸c˜oes. Um agente possui uma base de cren¸cas que pode ser modificada de acordo com suas percep¸c˜oes sobre o ambiente; planos que s˜ao sequˆencias de a¸c˜oes a serem executadas quando uma cren¸ca ´e modificada; e o agente, em JASON, tamb´em possui metas que s˜ao respons´aveis pelos objetivos de projeto. A defini¸c˜ao de um agente em JASON ´e dada pela cria¸c˜ao de um arquivo com a extens˜ao .asl.

A base de cren¸cas ´e uma cole¸c˜ao de literais representados como na l´ogica tradicional. Um agente adquire cren¸cas atrav´es de sua percep¸c˜ao do ambiente, atrav´es da comunica¸c˜ao com outros agentes e pela adi¸c˜ao de notas mentais. As cren¸cas existentes na base de

(33)

TAB. 2.2: Defini¸c˜oes dos conceitos dos n´ıveis do FAML

Conceito Defini¸c˜ao

Action Unidade fundamental do comportamento de um agente

Agent Uma entidade altamente autˆonoma e racional

AgentGoal O estado no ambiente em que o agente deseja atingir

Belief Uma afirmativa do ambiente em que um agente acredita ser verdade em determinado per´ıodo de tempo

Communication Um conjunto de mensagens

Environment O ambiente em que o agente est´a situado

Environment History Hist´orico de eventos acontecidos desde a cria¸c˜ao do ambiente

Environment Statement Uma afirmativa sobre o ambiente

Event Alguma atividade que altera o hist´orico do ambiente

Facet Propriedade do ambiente em que o agente pode interagir

Facet Action A¸c˜ao que resulta na modifica¸c˜ao de uma faceta Facet Event Evento que acontece quando uma faceta ´e modificada

Mental State Cren¸cas e metas de um agente

Message Unidade de comunica¸c˜ao entre agentes

Message Action A¸c˜ao que resulta em uma mensagem sendo enviada Message Event Evento que acontece quando uma mensagem ´e enviada

Organization Uma cole¸c˜ao de agentes com pap´eis definidos e agindo em conjunto para atingir determinado meta Plan Uma cole¸c˜ao organizada de a¸c˜oes a serem executadas para perseguir determinada meta Resource Alguma recurso que tenha uma representa¸c˜ao razo´avel e possa ser adquirido, produzido ou compartilhado

Role Padr˜ao comportamental que o agente pode assumir em um sistema System O produto final do desenvolvimento de software orientado a agentes

cren¸cas do agente servem para lembr´a-lo de alguma coisa que ele fez no passado, algo que precisa ser resumido mais a frente ou um compromisso que ele tenha assumido. As metas expressam as propriedades dos estados do ambiente em que um agente deseja tornar real. Em JASON, pode-se representar uma meta de duas formas: atrav´es de um achievement goal ou test goal. As cren¸cas e metas s˜ao duas atitudes mentais que podem ser expressas no c´odigo fonte de um agente.

Em JASON um plano ´e composto de trˆes diferentes partes, o evento gatilho, o contexto e o corpo do plano. O evento gatilho ´e respons´avel pela ativa¸c˜ao do plano. ´E poss´ıvel que dois ou mais planos tenham o mesmo evento gatilho, sendo a diferencia¸c˜ao feita pelo contexto de aplica¸c˜ao do plano. O contexto ´e usado para definir quando um plano dever´a ser considerado aplic´avel, satisfazendo a determinada condi¸c˜ao. Quando um plano n˜ao consegue ser ativado, ´e gerada uma falha que pode ser tratada atrav´es de planos contingenciais e quando a condi¸c˜ao de sucesso ´e atingida, o plano entra em execu¸c˜ao. O corpo do plano ´e um conjunto de a¸c˜oes que o agente tem que executar para atingir a sua meta.

Os planos podem ser dos tipos de cren¸ca, verifica¸c˜ao ou realiza¸c˜ao. Os planos de cren¸cas s˜ao ativados quando uma cren¸ca ´e inserida ou removida da base de cren¸cas do agente; os planos de verifica¸c˜ao s˜ao ativados quando o agente precisa recuperar alguma informa¸c˜ao de sua base de cren¸cas; e por ´ultimo, os planos de realiza¸c˜ao s˜ao respons´aveis por atingir um estado desejado pelo agente e s˜ao ativados quando o plano for para a base de inten¸c˜oes do agente.

Os planos podem ser ativados de duas maneiras: por adi¸c˜ao ou por dele¸c˜ao. O plano de adi¸c˜ao s˜ao ativados quando inten¸c˜oes ou cren¸cas s˜ao adicionados ao agente durante

(34)

seu ciclo de vida, enquanto os planos de dele¸c˜ao podem ser planos contingenciais ou de remo¸c˜ao de cren¸cas de um agente.

Em JASON uma a¸c˜ao ´e executada quando um plano ´e ativado e ´e representada por dois tipos: as que mudam o ambiente e s˜ao executadas fora do agente; e a¸c˜oes internas ao agente, que podem ser fun¸c˜oes pr´e-definidas, express˜oes aritm´eticas, metas e sub-metas.

As a¸c˜oes internas s˜ao um conjunto de a¸c˜oes pr´e-definidas que o agente realiza para auxili´a-lo a atingir determinado objetivo. Al´em das fun¸c˜oes internas pr´e-definidas, ´e poss´ıvel a personaliza¸c˜ao e cria¸c˜ao de novas fun¸c˜oes internas. Uma express˜ao aritm´etica ´

e uma a¸c˜ao para unifica¸c˜ao de dois termos para obten¸c˜ao de um novo valor. Uma sub-meta ´e uma meta que o agente executa dentro de um plano, onde o agente espera a sua realiza¸c˜ao e caso a mesma n˜ao seja finalizada, o plano atual n˜ao ´e continuado; e as a¸c˜oes que geram uma nova meta, ou seja, o agente se compromete com outra meta e a meta atual continua em andamento.

As a¸c˜oes externas s˜ao a¸c˜oes que modificam o ambiente em que o agente est´a inserido atrav´es de m´etodos em Java que s˜ao implementados para representar a a¸c˜ao do agente no ambiente. Estes m´etodos verificam as pr´e-condi¸c˜oes, modificam as percep¸c˜oes no ambiente e retornam um valor booleano para indicar se a¸c˜ao foi realizada ou n˜ao no ambiente.

Em JASON a comunica¸c˜ao ´e realizada atrav´es de troca de mensagens, que s˜ao enviadas com o uso de uma a¸c˜ao interna pr´e-definida para comunica¸c˜ao entre agentes utilizando os seguintes parˆametros: o destinat´ario; o conte´udo proposicional; e as for¸cas ilocucion´arias. O destinat´ario ´e o nome dado ao agente no arquivo que define o agente e a quem a mensagem deve ser entregue. O conte´udo proposicional ´e um termo que pode representar um conte´udo literal, um plano, uma meta, uma cren¸ca ou uma lista das op¸c˜oes anteriores. As for¸cas ilocucion´arias s˜ao as performativas que devem ser executadas pelo agente.

As performativas em JASON s˜ao similares ao Knowledge Query and Manipulation Lan-guage (KQML) (MAYFIELD et al., 1996), que ´e uma linguagem designada para suportar intera¸c˜oes entre os agentes inteligentes de software. Os agentes possuem uma caixa de mensagens onde um m´etodo chamado SocAcc pode ser sobrescrito e retorna um booleano para especificar quando um agente est´a ou n˜ao autorizado a enviar mensagem, ou seja, quando a mensagem deve ou n˜ao ser descartada. O KQML foi a primeira tentativa de se definir uma linguagem de comunica¸c˜ao de alto n´ıvel baseada na teoria Speech-Act para a inteligˆencia artificial. Em JASON as performativas KQLM que podem ser executadas s˜ao: tell; untell; achieve; unachieve; askOne; askAll; tellHow; untellHow; e askHow.

(35)

Em JASON o sistema ´e representado pelo arquivo de extens˜ao .mas2j, um conjunto de arquivos de extens˜ao asl e classes em java. O sistema ainda ´e respons´avel pela con-figura¸c˜ao das caracter´ısticas do SMA, como por exemplo, nome e infraestrutura, que pode ser de trˆes tipos centralised, centralised pool e jade. Em JASON um ambiente ´e imple-mentado estendendo a classe Environment que mant´em as estruturas de dados usadas para armazenar as percep¸c˜oes em que cada agente tem acesso, assim como as percep¸c˜oes globais a todos agentes. Essas percep¸c˜oes s˜ao representadas pelos atributos privados glob-alPercepts e agPercepts do tipo Literal. A arquitetura do agente, quando este deseja realizar alguma a¸c˜ao no ambiente, invoca o m´etodo executeAction alterando o ambiente e as cren¸cas atrav´es dos m´etodos addPercept, removePercept e clearPercepts.

Todos os conceitos relacionados ao JASON podem ser vistos na tabela 2.3.

TAB. 2.3: Defini¸c˜oes dos conceitos do JASON

Conceito Defini¸c˜ao

A¸c˜ao A¸c˜ao realizada pelo agente a fim de atingir suas metas e objetivos A¸c˜ao Interna A¸c˜ao pr´e-definida interna do JASON

A¸c˜ao Externa A¸c˜ao executada pelo agente no ambiente

Agente Arquivo de extens˜ao asl

Ambiente Conjunto de arquivos em Java que estendem a classe Environment Cren¸ca Afirmativa em que o agente acredita ser verdade Contexto Conjunto de condi¸c˜oes para ativa¸c˜ao do plano

Corpo Conjunto de a¸c˜oes de um plano

Evento Gatilho Evento de ativa¸c˜ao do plano Infraestrutura Tipo de infraestrutura do SMA

Mensagem Mensagem enviada atrav´es da a¸c˜ao interna .send

Meta Meta em que o agente busca atingir

Operador Operador da a¸c˜ao executada

Percep¸c˜ao Atributo definido na classe do ambiente

Performativa Perfomativas baseadas no KQML

Plano Plano para atingir determinada meta do agente Sistema Arquivo mas2j contendo todas os componentes do SMA Tipo de Altera¸c˜ao Os planos podem ser de adi¸c˜ao ou dele¸c˜ao

Tipo de Plano Os planos podem ser de Teste, adi¸c˜ao de cren¸ca e de realiza¸c˜ao

O JASON pode ser utilizado como um PSM de SMA, onde este modelo ser´a resultante de um o conjunto de transforma¸c˜oes entre modelos padronizadas pela OMG. Do ponto de vista de uma abordagem MDA, ´e necess´ario para implementa¸c˜ao de um sistema que v´arios n´ıveis de abstra¸c˜ao sejam modelados atrav´es de modelos desde a especifica¸c˜ao at´e a implementa¸c˜ao. A utiliza¸c˜ao do modelo JASON atrav´es das t´ecnicas de MDA permite que a codifica¸c˜ao do sistema modelado seja gerado semi-automaticamente, facilitando o trabalho de analistas e desenvolvedores de softwares.

2.4 MOISE+

O modelo Moise+ ´e um modelo organizacional respons´avel pela especifica¸c˜ao de orga-niza¸c˜oes em SMA e dividido em trˆes dimens˜oes. A primeira dimens˜ao, a especifica¸c˜ao estrutural, os conceitos de pap´eis, rela¸c˜oes de pap´eis e grupos s˜ao utilizados para

(36)

cons-truir os n´ıveis estrutural individual, social e coletivo da organiza¸c˜ao. A especifica¸c˜ao funcional ´e baseada no conceito de miss˜oes, que s˜ao um conjunto de metas globais, e planos globais. A especifica¸c˜ao deˆontica sugere um relacionamento entre as especifica¸c˜oes estrutural e funcional de forma que seja representada atrav´es de permiss˜oes e obriga¸c˜oes de um papel (HUBNER et al., 2002).

A especifica¸c˜ao estrutural ´e constru´ıda em trˆes n´ıveis: o n´ıvel individual, que s˜ao os comportamentos que um agente se torna respons´avel quando assume um papel; Os relacionamentos de conhecimento, comunica¸c˜ao e autoridade entre pap´eis no n´ıvel social; e a agrega¸c˜ao de pap´eis em grupos no n´ıvel coletivo. A especifica¸c˜ao funcional ´e um conjunto de esquemas no qual representam como um SMA atinge suas metas globais, e como estes est˜ao decompostos em planos e distribu´ıdos em miss˜oes para os agentes. Um esquema pode ser visto atrav´es de uma ´arvore onde a meta global ´e a raiz e as folhas s˜ao as metas que o agente deve atingir para realizar a meta global. Cada miss˜ao possui uma cardinalidade que ´e a quantidade de agentes que devem se comprometer com ela (HUBNER et al., 2002). A especifica¸c˜ao deˆontica garante a autonomia dos agentes atrav´es do que ´e permitido ou obrigado dentro das organiza¸c˜oes. As especifica¸c˜oes descrevem as permiss˜oes de pap´eis e obriga¸c˜oes para as miss˜oes (HUBNER et al., 2002).

Com a utiliza¸c˜ao do modelo organizacional Moise+ em conjunto com o framework JASON, os conceitos de pap´eis, relacionamentos de pap´eis, tarefas, organiza¸c˜oes e metas de sistemas podem ser constru´ıdos atrav´es de um arquivo XML, permitindo o mapeamento das regras de transforma¸c˜ao das classes que o JASON n˜ao implementa por si s´o.

Todos os conceitos relacionados ao Moise+ podem ser vistos na tabela 2.4.

TAB. 2.4: Defini¸c˜oes dos conceitos do Moise+

Conceito Defini¸c˜ao

Esquema Decomposi¸c˜ao global das metas

Grupo Organiza¸c˜ao de agentes

Link Rela¸c˜ao entre pap´eis

Miss˜ao Tarefa dos grupos

Norma Norma que o agente deve estar de acordo e obedecer no sistema Papel Papel que um agente pode assumir no sistema

O modelo Moise+ refor¸ca os conceitos organizacionais que n˜ao est˜ao presentes na linguagem de programa¸c˜ao a agentes JASON, permitindo que o mesmo possa contar com estruturas de pap´eis, tarefas e organiza¸c˜oes a n´ıvel de sistema e ambiente. Com isso, as t´ecnicas MDA para o desenvolvimento de SMA utilizando o JASON em conjunto com o Moise+ permitem uma abrangˆencia maior de conceitos presentes tanto na especifica¸c˜ao quanto na implementa¸c˜ao.

(37)

2.5 JACAMO

O projeto JaCaMo ´e um plataforma para desenvolvimento de SMA que utiliza o Moise+ para defini¸c˜ao da dimens˜ao organizacional do agente, que s˜ao programados utilizando o JASON, e trabalham em conjunto utilizando ambientes constru´ıdos baseados em artefatos que s˜ao programados em CArtAgO (BOISSIER et al., 2011).

O JaCaMo integra as trˆes plataformas definindo as jun¸c˜oes entre os conceitos das diferentes dimens˜oes de programa¸c˜ao das tecnologias utilizadas (agente, ambiente e orga-niza¸c˜ao), atrav´es de um meta-modelo, para obter um modelo de programa¸c˜ao consistente e uniforme visando simplificar a combina¸c˜ao das dimens˜oes para programa¸c˜ao de SMA (BOISSIER et al., 2011). O meta-modelo relacionado ao JaCaMo pode ser visto na figura 2.7.

FIG. 2.7: O metamodelo JaCaMo (BOISSIER et al., 2011).

2.6 REPRESENTAC¸ ˜AO DE TRANSFORMAC¸ ˜OES

A transforma¸c˜ao de modelos ´e o processo de converter um modelo para outro de um mesmo sistema e a Arquitetura Orientada a Modelos prove especifica¸c˜oes para as transforma¸c˜oes de um PIM para PSM, onde o modelo da plataforma determinar´a o tipo do mapeamento. O mapeamento entre meta-modelos, ´e um exemplo de transforma¸c˜ao onde tanto o PIM quanto o PSM s˜ao especificados como meta-modelos MOF (OMG, 2003).

(38)

O mapeamento ´e especificado utilizando alguma linguagem para descrever a trans-forma¸c˜ao de um modelo para outro e, esta, deve ser em linguagem natural ou em lin-guagem de mapeamento de modelos. O MOF Query/View/Trasformation (QVT) (OMG, 2011) ´e uma linguagem da OMG para descrever transforma¸c˜oes entre modelos e pode ser usada para a cria¸c˜ao de um PSM.

A especifica¸c˜ao define trˆes linguagens de transforma¸c˜oes: Relations que permite a transforma¸c˜ao entre modelos candidatos e ´e especificado como um conjunto de rela¸c˜oes que precisam ser executadas com sucesso; Operational Mappings que representa a defini¸c˜ao unidirecional que ´e expressa imperativamente indicando os modelos envolvidos na trans-forma¸c˜ao; e o Core que ´e um modelo que suporta valida¸c˜ao de condi¸c˜oes em conjunto de vari´aveis e trata os elementos do modelo como origem, destino e tra¸co.

O Model-To-Text (M2T) (OMG, 2008) ´e um especifica¸c˜ao da OMG, que utiliza tem-plates para transformar modelos PSM em representa¸c˜oes linearizadas de textos, como c´odigos e relat´orios. A abordagem de utiliza¸c˜ao de templates atrav´es do uso de opera¸c˜oes queries, utiliza espa¸cos pr´e-definidos para sele¸c˜ao e extra¸c˜ao de informa¸c˜ao provenientes dos meta-modelos.

As transforma¸c˜oes M2T precisam ser repet´ıveis para que as mudan¸cas nos modelos reflitam no texto. Tamb´em devem ser rastre´aveis, de forma que seja poss´ıvel determinar de que elementos do modelo de destino a por¸c˜ao de texto foi gerada, al´em de manter um aspecto leg´ıvel levando em conta a identa¸c˜ao do texto produzido.

A linguagem Object Constraint Language (OCL) ´e uma linguagem formal usada para descrever express˜oes em modelos (OMG, 2012b). Essas express˜oes geralmente s˜ao condi¸c˜oes invariantes que o sistema modelado deve satisfazer ou buscas de objetos em um modelo descrito. A OCL ´e uma linguagem de especifica¸c˜ao que, quando suas express˜oes s˜ao validadas, n˜ao alteram o estado correspondente do sistema executado, simplesmente re-tornando um valor.

A OCL tamb´em pode ser utilizada para especificar um estado de mudan¸ca de um sistema atrav´es de p´os-condi¸c˜oes e, por n˜ao ser uma linguagem de programa¸c˜ao, n˜ao ´e poss´ıvel escrever l´ogicas de controle ou invocar processos atrav´es da linguagem. A OCL permite restringir os modelos de forma a garantir a consistˆencia da modelagem do sistema (OMG, 2012b).

(39)

3 A METODOLOGIA PROPOSTA

Este cap´ıtulo apresenta a metodologia de desenvolvimento de SMA proposta por (PANTOJA; CHOREN, 2012) que utiliza a Arquitetura Orientada a Modelos e divide o desenvolvimento de um SMA em diferentes n´ıveis de abstra¸c˜ao, partindo de um mo-delo de especifica¸c˜ao para uma plataforma espec´ıfica de desenvolvimento atrav´es de um conjunto de transforma¸c˜oes. A figura 3.1 ilustra os n´ıveis de abstra¸c˜ao propostos na metodologia.

FIG. 3.1: A metodologia proposta.

Na se¸c˜ao 3.1, ser´a apresentada a modelagem do sistema do n´ıvel independente de plataforma utilizando o FAML; na se¸c˜ao 3.2 ser˜ao apresentadas as transforma¸c˜oes entre o modelo de especifica¸c˜ao do sistema para o modelo de projeto utilizando a linguagem M2M e as regras de valida¸c˜ao do modelo de especifica¸c˜ao usando a OCL; na se¸c˜ao 3.3

(40)

ser˜ao apresentadas as transforma¸c˜oes do modelo de projeto para a plataforma espec´ıfica utilizando a linguagem M2T e as regras de valida¸c˜ao do modelo de projeto usando a OCL.

3.1 A MODELAGEM DO SISTEMA (PIM)

O n´ıvel de design independente de plataforma descreve uma aplica¸c˜ao de SMA das pers-pectivas tanto do n´ıvel interno (agente) quanto do n´ıvel externo (organiza¸c˜ao). O modelo de destino consiste da implementa¸c˜ao de conceitos do FAML, derivados do modelo de especifica¸c˜ao, onde um meta-modelo composto dos n´ıveis de ambiente, agente, sistema e defini¸c˜ao do agente, baseado no FAML, foi constru´ıdo. O FAML, meta-modelo uti-lizado como modelo independente de plataforma na metodologia, permite a utiliza¸c˜ao de diferentes linguagens de modelagem orientadas a agentes, adicionando flexibilidade a especifica¸c˜ao e, consequentemente, ao desenvolvimento do SMA. No entanto, para que a modelagem adequada seja feita, um conjunto de conceitos devem ser instanciados para que a metodologia funcione. Os conceitos de modelo, sistema, ambiente e agentes, devem estar presentes na modelagem.

A classe FamlMM, figura 3.2, ´e respons´avel pela instˆancia do modelo e ´e composto do sistema modelado que ´e representado pela classe System. Al´em disso, a classe System apresenta atributos relacionados ao comportamento do sistema, como o caminho de origem das classes do ambiente e seus agentes. Um sistema tamb´em ´e composto dos objetos da classe Requirements, Policy, Role e Organization e gera o ambiente modelado que ´e representado pela classe Environment.

A classe Role representa os pap´eis que um agente pode assumir no sistema modelado e a classe Organization ´e um conjunto de pap´eis estruturados hierarquicamente. Cada papel modelado ´e respons´avel por um objetivo de sistema que ´e representado pela classe AgentGoal e colabora em tarefas que s˜ao tarefas espec´ıficas para atingir as metas do agente. A tarefa ´e representada pela classe Task. Os pap´eis possuem rela¸c˜oes entre si que indicam se essa rela¸c˜ao ´e de compatibilidade ou dependˆencia e s˜ao representados pelas classes RoleRelationship, RoleCompability e RoleDependency. Esta parte do modelo de especifica¸c˜ao do sistema ´e respons´avel pela modelagem organizacional do SMA.

O ambiente ´e composto dos objetos das classes Facet, Resource, EnvironmentHistory, Ontology e Agent que representam os conceitos de Facetas, Recursos, Hist´orico do Ambi-ente e Ontologia. As facetas e os recursos podem ser modificados ou usados pelo agAmbi-ente que estiver atuando sobre o ambiente enquanto o hist´orico do ambiente registra os eventos

(41)

FIG. 3.2: O metamodelo FAML adaptado (PANTOJA; CHOREN, 2012).

de mensagens e facetas, representados pela classe Event, que ocorreram no ambiente. Um agente ´e composto de um estado mental, tem obriga¸c˜oes e assumem pap´eis no

(42)

sistema a fim de atingir o estado desejado no ambiente. Os conceitos de estado mental e obriga¸c˜ao s˜ao representados pelas classes MentalState e Obligation. O estado mental de um agente ´e composto de metas e cren¸cas que um agente pode ter em determinado per´ıodo de tempo na inicializa¸c˜ao e execu¸c˜ao do sistema enquanto a classe Obligation ´e respons´avel pelas especifica¸c˜oes das obriga¸c˜oes dos agentes. As cren¸cas s˜ao representadas pela classe Belief e s˜ao afirmativas que o agente acredita ser verdade. J´a as metas s˜ao representadas pela classe AgentGoal, que ´e respons´avel pelas metas que um agente deseja atingir. Se um agente estiver comprometido com a meta, ent˜ao essa ser´a classificada como uma Inten¸c˜ao, caso contr´ario a meta ser´a considerada um desejo.

Um plano ´e representado pela classe Plan, que ´e composta de a¸c˜oes e persegue uma meta que dever´a ser atingida ao final de sua execu¸c˜ao. O plano possui condi¸c˜oes de sucesso e falhas para determinar o momento para in´ıcio de sua execu¸c˜ao. As a¸c˜oes s˜ao representadas pela classe Action, que podem ser de dois tipos: mensagem e faceta. A a¸c˜ao de faceta ´e representada pela classe FacetAction e ´e respons´avel pela modifica¸c˜ao das facetas encontradas no ambiente, enquanto a a¸c˜ao de mensagem ´e representada pela classe MessageAction, que resulta em uma mensagem que ´e parte da comunica¸c˜ao entre um agente emissor e outro receptor. As classes envolvidas na troca de mensagens s˜ao a Message e Communication.

3.2 TRANSFORMAC¸ ˜AO DO MODELO DE ESPECIFICAC¸ ˜AO PARA O MODELO DE PROJETO

As transforma¸c˜oes QVT, representadas por t1 na figura 3.1, recebem como entrada o mo-delo FAML instanciado e retornam o momo-delo JaCaMo (BOISSIER et al., 2011) instanciado de acordo com o modelo de especifica¸c˜ao do SMA. O meta-modelo JaCaMo adaptado, utilizado como modelo espec´ıfico de plataforma na metodologia, re´une os conceitos tanto da dimens˜ao da programa¸c˜ao do agente quanto da programa¸c˜ao organizacional, utilizando o Jason e Moise+.

A metodologia proposta neste trabalho utiliza a dimens˜ao organizacional, atrav´es do modelo organizacional Moise+, e a dimens˜ao do agente, atrav´es da linguagem de pro-grama¸c˜ao orientada a agentes Jason. A dimens˜ao ambiental utiliza a programa¸c˜ao em Java padr˜ao do Jason para a codifica¸c˜ao dos ambientes onde os agentes estar˜ao inseridos. Portanto, algumas modifica¸c˜oes foram realizadas no meta-modelo JaCaMo para adapt´a-lo a metodologia.

(43)

3.2.1 MODIFICAC¸ ˜OES

As modifica¸c˜oes realizadas no meta-modelo adaptado deste trabalho consistem na simpli-fica¸c˜ao da dimens˜ao ambiental e da extens˜ao da dimens˜ao organizacional do meta-modelo inicial do JaCaMo. Na dimens˜ao ambiental do JaCaMo foi necess´ario simplificar o mo-delo, j´a que a metodologia proposta utiliza apenas as classes java para implementa¸c˜ao do ambiente do agente, n˜ao fazendo o uso de artefatos. A simplifica¸c˜ao consistiu em manter a classe Environment, para representar o ambiente, e a classe Percept pra representa¸c˜ao das percep¸c˜oes. Desta forma, n˜ao se faz necess´ario a utiliza¸c˜ao do CArtAgO.

Na dimens˜ao organizacional uma extens˜ao de relacionamentos entre as classes s˜ao in-seridas de forma que a codifica¸c˜ao do arquivo organizacional do Moise+ seja estruturado levando em considera¸c˜ao as especifica¸c˜oes funcionais, estruturais e normativas. A classe Link foi adicionada ao meta-modelo para representar as rela¸c˜oes entre grupos e pap´eis da especifica¸c˜ao de grupos do modelo estrutural. Um auto-relacionamento nomeado super-type foi adicionado a classe Role de forma que a hierarquia de pap´eis possa ser represen-tada. Um auto-relacionamento, nomeado de monitoringScheme foi adicionado na classe Scheme de forma que possa ser identificado o esquema de monitora¸c˜ao de cada esquema. Outro auto-relacionamento nomeado subGoal foi adicionado a classe Goal com o objetivo de identificar a hierarquia de metas da especifica¸c˜ao funcional. O meta-modelo proposto da metodologia pode ser visto na figura 3.3.

3.2.2 AS TRANSFORMAC¸ ˜OES QVT

A transforma¸c˜ao t1, entre o Design Independente de Plataforma e o Design Espec´ıfico de Plataforma, consiste de um conjunto de mapeamentos de conceitos observados entre o meta-modelo gen´erico FAML para modelagem de SMA e o meta-modelo espec´ıfico de plataforma de desenvolvimento JaCaMo.

Alguns conceitos s˜ao mapeados diretamente do modelo independente de plataforma para o modelo espec´ıfico de plataforma. Os conceitos diretos s˜ao: Action, Agent, Be-lief, Environment, Plan, Role e System. As especifica¸c˜oes de cada conceito s˜ao mapeados como atributos para o modelo de destino. Os conceitos de defini¸c˜ao s˜ao:Action Speci-fication,Agent Definition,Facet Action Specification,Resource Specification,Plan Resource Specification,Organization Definition ePlan Specification. Os conceitos Task e Organiza-tion s˜ao mapeados para os conceitos Mission e Group respectivamente.

(44)

FIG. 3.3: O metamodelo JaCaMo adaptado (PANTOJA; CHOREN, 2012).

Os conceitos Agent Goal e System Goal s˜ao mapeados para o conceito Goal do modelo de destino pois na plataforma espec´ıfica n˜ao existe a diferencia¸c˜ao entre os objetivos de

Referências

Documentos relacionados

Portanto, mesmo percebendo a presença da música em diferentes situações no ambiente de educação infantil, percebe-se que as atividades relacionadas ao fazer musical ainda são

forficata recém-colhidas foram tratadas com escarificação mecânica, imersão em ácido sulfúrico concentrado durante 5 e 10 minutos, sementes armazenadas na geladeira (3 ± 1

No âmbito da Década da Educação para o Desenvolvimento Sustentável (2005-2014) ambiciona-se uma escola renovada, capaz de direccionar a humanidade para um caminho

Trata-se de uma mudança epistemológica que solicita uma prática científica mais aberta, capaz de favorecer a convergência de conhecimentos para que se configure

4) Extensão e intensidade de violência - Imagens e sons de violên- cia repetidos à exaustão ou mostrados de forma explícitos tornam o processo de recepção mais traumático,

Para a liga 30%Fe65Nb70%Cu foi possível observar uma distribuição de partículas de Fe65Nb ao longo de toda a matriz de Cu e não foi possível notar o processo difusão entre

Esta pesquisa tem como finalidade analisar como a cultura popular esta sendo trabalhada na formação profissional de Educação Física no Brasil, a partir de uma pesquisa

Dando continuadad a los cambios políticos que ocurrierón en Venezuela a partir de 1999. El Plan de Desarrollo Económico y Social de la Nación 2007-2013 contiene