52
24 de setembro de 2007 Inteligência Artificial 1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

Embed Size (px)

Citation preview

Page 1: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 1

Engenharia de Software Orientada a Agentes

Renata S. S. Guizzardi

Page 2: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 2

Resumo

Por que Engenharia de Software orientada a Agentes?

Agentes x ObjetosMetodologias de ESOAProgramação Orientada a Agentes

Page 3: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 3

Duas Visões

Inteligência Artificial: enfatiza o comportamento flexível e inteligente dos agentes, vistos como entidades autônomas, de comportamentos reativos e proativos, e capazes de interagir com outros agentes e aprender

Engenharia de Software: agentes são usados como modelo para desenvolver sistemas. Sistema Multiagentes: grupo de entidades ativas

(agentes), cada um tendo seus objetivos e comportamentos próprios. A soma dos comportamentos individuais dá ao sistema um comportamento mais complexo.

Page 4: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 4

O que é um agente?

Um sistema computacional encapsulado, situado em um ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus

objetivos.

Page 5: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 5

O que é um agente?Um sistema computacional encapsulado, situado em um

ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos.

É um componente com interface bem definida.

Page 6: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 6

O que é um agente?Um sistema computacional encapsulado, situado em um

ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos.

É um componente com interface bem definida. Interage com o ambiente, percebendo-o a partir de

sensores e agindo sobre ele para modificá-lo.

Page 7: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 7

O que é um agente?Um sistema computacional encapsulado, situado em um

ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos.

É um componente com interface bem definida. Interage com o ambiente, percebendo-o a partir de

sensores e agindo sobre ele para modificá-lo. Tem controle sobre seu estado e seu comportamento.

Page 8: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 8

O que é um agente?Um sistema computacional encapsulado, situado em um

ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos.

É um componente com interface bem definida. Interage com o ambiente, percebendo-o a partir de sensores e agindo

sobre ele para modificá-lo. Tem controle sobre seu estado e seu comportamento. É, ao mesmo tempo:

Reativo: reage a mudanças no ambiente; Proativo: toma iniciativas em busca de seus objetivos.

Page 9: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 9

O que é um agente?Um sistema computacional encapsulado, situado em um

ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos.

É um componente com interface bem definida. Interage com o ambiente, percebendo-o a partir de sensores e agindo sobre ele para

modificá-lo. Tem controle sobre seu estado e seu comportamento. É, ao mesmo tempo:

Reativo: reage a mudanças no ambiente; Proativo: toma iniciativas em busca de seus objetivos.

Projetados para realizar um conjunto de objetivos.

Page 10: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 10

Engenharia de Software Orientada a Agentes (ESOA)

Adotar uma abordagem orientada a agentes para a engenharia de software significa decompor o problema em múltiplos componentes autônomos e interativos que têm objetivos específicos a atingir.

As principais abstrações são: Agentes Interações Organizações

Page 11: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 11

Agentes x Objetos

Nível de autonomia: objetos: estado; agentes: estado e comportamento.

Mensagens: objetos: invocação de métodos; agentes: mensagens em uma linguagem de comunicação de

agentes (ACL – Agent Communication Language). Comportamentos:

objetos: reação a eventos; agentes: comportamentos + flexíveis (reativos, proativos e

sociais). Controle:

objetos: thread comum aos demais objetos do sistema; agentes: thread único.

Page 12: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 12

Agentes x Objetos (2/2) OA é uma evolução da OO? Há vantagens

efetivas em usar agentes ao invés de objetos? Visão conciliatória:

a OA é apenas um outro paradigma. OA//OO: desenvolvimentos paralelos Gastos exagerados de empresas com

mudança de paradigmas não se justificam. O domínio e/ou situação em que o paradigma

será aplicado precisam ser analisados. Pesquisas/desenvolvimentos em OO

influenciam a OA, ex. frameworks de desenvolvimento, metodologias etc.

Page 13: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 13

Principais Áreas de Aplicação Características do domínio: domínios

complexos, com distribuição de recursos, de controle etc. ambientes organizacionais telemedicina informática educativa …

Características do sistema sistemas distribuídos sistemas adaptativos sistemas com capacidade de raciocínio integração de sistemas legados …

Page 14: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 14

Áreas Menos Indicadas

Domínios restritos e bem definidosSistemas puramente reativos, com

funcionalidades bem conhecidasSistemas operacionaisSistemas standalone…

Page 15: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 15

Metodologias de Desenvolvimento OA

Gaia ROADMAP OperA Prometheus Tropos AORML Message/UML AUML Mas-CommonKADS …

Baseadas em UML

Forte Influência de sistemas baseados em conhecimento (IA)

Forte Influência de OO + métodos formais

Forte Influência de análise organizacional

Page 16: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 16

Novos Conceitos, nova maneira de pensar sobre desenvolvimento...

Gaia/Roadmap/OperA: papéis, responsabilidades, permissões...

Tropos: ator, objetivo, plano, recurso...Message/UML: agente, organização,

papel, recurso, interaçãoAORML: agente, objeto, relacionamento,

crença, evento, mensagem...

Page 17: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 17

Tendências

O projeto detalhado é frequentemente feito em OO.

Comparar metodologias existentes para especificar em que domínios ou situações são adequadas.

Combinar diferentes abordagens (method engineering, MDA) ex. Roadmap+Prometheus, ARKnowD, Open etc.

Talvez uma linguagem/metodologia unificada para OA???

Page 18: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 18

Combinando Agentes e Objetos

Entidades ativas vs. entidades passivas do domínio.

Objetos também podem representar crenças dos agentes.

Combinação de técnicas apropriadas a cada paradigma.

Passagem mais suave para o projeto detalhado, caso uma tecnologia OO seja escolhida para implementação.

Page 19: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 19

Metodologia Gaia

O sistema multiagentes pode ser visto como uma organização, em que os agentes

assumem diferentes papéis, que têm um certo relacionamento, uns com os outros,

e que participam em interações sistemáticas com os demais papéis.

Page 20: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 20

Gaia - Análise

A fase de análise dedica-se à compreensão dessa organização:

modelo de papéis modelo de interação.

Três passos:1. identificar os papéis do sistema (resultado: protótipo

do modelo de papéis); 2. para cada papel, identificar e documentar os

protocolos associados (resultado: um modelo de interação);

3. usando o modelo de protocolos como uma base, elaborar o modelo de papéis (resultado: um modelo de papéis completamente elaborado);

Page 21: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 21

Gaia – Modelo de Papéis

Atributos de um papel: Responsabilidades: determinam a funcionalidade

Propriedades vitais: indicam o que o agente deve fazer. Propriedades de segurança: tratam as exceções.

Permissões: direitos associados a um papel

Atividades: ações privadas, i.e., não há interações com outros

agentes Protocolos:

definem as formas de interação do papel

Page 22: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 22

Gaia – Modelo de Papéis

Page 23: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 23

Gaia – Modelo de Interação

Atributos de um protocolo: proposta - descrição textual breve da natureza da

interação; iniciador - papel (ou papéis) responsáveis por iniciar a

interação; respondedor - papel (ou papéis) com que o iniciador

interage; entradas - informação utilizada pelo iniciador ao realizar

o protocolo; saídas - informação suprida pelo/para o respondedor

durante o curso de interação; processamento: descrição textual breve de qualquer

processamento que o iniciador do protocolo realiza durante o curso da interação.

Page 24: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 24

Gaia – Modelo de Interação

Page 25: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 25

Gaia - Projeto

O objetivo é transformar os modelos da análise em modelos que tenham um nível

suficientemente baixo nível de abstração que permita que técnicas tradicionais de projeto (incluindo técnicas da orientação a objetos)

possam ser aplicadas para implementar agentes.

Page 26: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 26

Gaia – Modelos de Projeto

Três modelos: Modelo de agentes:

documenta os vários tipos de agentes que serão usados no sistema (i.e. que papéis ele representa), e as instâncias desses tipos de agentes.

Modelo de serviços: identifica os serviços associados a cada papel,

especificando suas propriedades. Modelo de conhecimento:

define os links de comunicação existentes entre os tipos de agentes.

Page 27: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 27

Modelo de Agentes

Page 28: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 28

Modelo de Serviços

Page 29: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 29

Modelo de Conhecimento

Page 30: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 30

AUML: Agent UML Por que estender UML para MAS? Modificações propostas na UML padrão:

Suporte para expressar linhas de interação concorrentes (ex: broadcast) visando permitir a modelagem de protocolos de agentes

Uma noção de papel que estende a que é fornecida na UML, permitindo a um agente desempenhar vários papéis

Grupo Agent UML: http://www.auml.org

Page 31: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 31

AUML: Representação do protocolo Contract Net

Page 32: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 32

Uso de Pacotes

aquisição

fornecimentocorretor

varejista atacadista

requisição

informação

Solicita Proposta

proposta

Page 33: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 33

TEMPLATE

DO CENÁRIO

COMPRADOR

/VENDEDOR

Page 34: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 34

NOVO

PACKAGE

USANDO O

TEMPLATE

PAPÉIS

RESTRIÇÕES

AÇÕES

Page 35: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 35

Interações entre Agentes

AUML utiliza os Diagramas de Interação para modelar a natureza dinâmica da interação entre agentes: Diagrama de Seqüência

• Seqüência cronológica da comunicação

Diagrama de Colaboração• Associação entre agentes

Diagrama de Atividades e StateCharts• Fluxo do processo de comunicação dos agentes.

Page 36: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 36

AUML: interação entre agentes

Page 37: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 37

AUML: Concorrência

Page 38: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 38

Agente e Papéis

PAPÉIS diferentes para um agente é: satisfazer propriedades distintas (crenças) ter interfaces distintas(comunicação) comportamento distintos(pergunta, resposta)

Dentro de um protocolo de interação um agente pode executar papéis distintos que estão especificados no contrato de interação do protocolo(contract-net).

Page 39: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 39

Agente e Papéis

Page 40: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 40

Diagramas de Colaboracão

Agentes

D/Devedor

D/Fornecedor

A/Cliente

B/Fornecedor

C/Concorrente

B/ Analizador

do concorrente

C/Fornecedor1

A/Negociador

C/Fornecedor2

13: entrega

8: confirma 11: entrega

1.3: requisita

1.2: requisita

1.1: requisita4:

<<troca de papel>>

5: proposta 7: confirma

12: requisita

14:

6:

9: falha

10: recusa

2: questiona

3:

<<troca de papel>>

<<troca de papel>>

Page 41: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 41

Diagramas de Atividade

Expressa operações e eventos disparados pela atividade.

Representa de maneira explícita o controle sobre linhas de execução.

Útil para complexas interações entre protocolos que envolvem processamento concorrente.

Page 42: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 42

Diagramas de Atividade

Cliente Vendedor

Solicita Pedido

ProcessaPedido

Rede de Comércio Eletrônico

Fabricante

Cria CotaçãoAceita

PedidoAceita

Cotação

Compara Pedido e Cotação

Fecha Pedido

Pagar Pedido

AtualizarCotação

Page 43: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 43

Diagramas de Estado

Aberto Fechado

Proposto Requerido confirmado entregue

A: requisita B: confirma

A: falha

B: entrega

Rejeitado

Cancelado

Fracassado

Pago

A: paga

B: recusa

B: recusa A: falha

B: cancela

A: falha

A: falha

Page 44: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 44

AUML: Diagramas de Colaboração

Page 45: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 45

AUML: Diagramas de Atividade

Page 46: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 46

AUML: Diagramas de Estado

Page 47: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 47

Metodologias Baseadas em Engenharia de Conhecimento

Agentes possuem características cognitivas e EC pode ser usada para modelar o conhecimento do agente

Bibliotecas de ontologias e métodos de solução de problemas podem ser reutilizadas

Não englobam os aspectos de distribuição e socialização dos agentes

Não englobam os comportamentos reativo e pró-ativo dos agentes

Page 48: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 48

Metodologia MAS-CommonKADS

Extensão de CommonKADS para Sistemas Multiagentes.

Fase de Conceitualização: Coleta informal de requisitos Casos de Uso

Fases de Análise e Projeto: compostas de vários modelos, cada um modelando uma visão do sistema.

Page 49: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 49

MAS-CommonKADS - Análise

Modelo de Agentes: descreve as características principais dos

agentes incluindo capacidades cognitivas, habilidades(sensores/efetuadores), serviços, objetivos

Modelo de Tarefas: descreve as tarefas e sua decomposição

Page 50: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 50

MAS-CommonKADS - Análise

Modelo de Perícia: descreve o conhecimento necessário para os

agentes atingirem seus objetivos, utilizando a abordagem do KADS

Modelo de Coordenação: descreve as conversações entre agente, seus

protocolos e capacidades requeridas; utiliza técnicas de descrição formal MSC(Message Sequence Charts) e SDL(Specification and Description Language)

Page 51: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 51

MAS-CommonKADS - Análise

Modelo de Organização: descreve o ambiente em que o SMA será

introduzido e a sociedade de agentes utiliza uma extensão do modelo OMT

Modelo de Comunicação: detalha as interações homem-software

Page 52: 24 de setembro de 2007Inteligência Artificial1 Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi

24 de setembro de 2007 Inteligência Artificial 52

MAS-CommonKADS - Projeto

Projeto de aplicação: composição/decomposição dos agentes da

fase de análiseProjeto de Arquitetura:

projeto de aspectos relevantes da rede de agentes

Projeto de plataforma: seleção da plataforma de desenvolvimento

para cada arquitetura