24 de setembro de 2007 Inteligência Artificial 1
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
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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 …
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…
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
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...
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???
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.
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.
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);
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
24 de setembro de 2007 Inteligência Artificial 22
Gaia – Modelo de Papéis
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.
24 de setembro de 2007 Inteligência Artificial 24
Gaia – Modelo de Interação
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.
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.
24 de setembro de 2007 Inteligência Artificial 27
Modelo de Agentes
24 de setembro de 2007 Inteligência Artificial 28
Modelo de Serviços
24 de setembro de 2007 Inteligência Artificial 29
Modelo de Conhecimento
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
24 de setembro de 2007 Inteligência Artificial 31
AUML: Representação do protocolo Contract Net
24 de setembro de 2007 Inteligência Artificial 32
Uso de Pacotes
aquisição
fornecimentocorretor
varejista atacadista
requisição
informação
Solicita Proposta
proposta
24 de setembro de 2007 Inteligência Artificial 33
TEMPLATE
DO CENÁRIO
COMPRADOR
/VENDEDOR
24 de setembro de 2007 Inteligência Artificial 34
NOVO
PACKAGE
USANDO O
TEMPLATE
PAPÉIS
RESTRIÇÕES
AÇÕES
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.
24 de setembro de 2007 Inteligência Artificial 36
AUML: interação entre agentes
24 de setembro de 2007 Inteligência Artificial 37
AUML: Concorrência
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).
24 de setembro de 2007 Inteligência Artificial 39
Agente e Papéis
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>>
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.
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
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
24 de setembro de 2007 Inteligência Artificial 44
AUML: Diagramas de Colaboração
24 de setembro de 2007 Inteligência Artificial 45
AUML: Diagramas de Atividade
24 de setembro de 2007 Inteligência Artificial 46
AUML: Diagramas de Estado
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
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.
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
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)
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
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