Engenharia de Software
Orientada a Agentes
Renata S. S. Guizzardi
24 de setembro de 2007
Inteligência Artificial
1
Resumo
Por que Engenharia de Software orientada
a Agentes?
Agentes x Objetos
Metodologias de ESOA
Programação Orientada a Agentes
24 de setembro de 2007
Inteligência Artificial
2
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
3
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
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.
 É um componente com interface bem definida.
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.
 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
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.
 Tem controle sobre seu estado e seu comportamento.
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.
 É, 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
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.
 Projetados para realizar um conjunto de objetivos.
24 de setembro de 2007
Inteligência Artificial
9
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
10
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
11
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
12
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
13
Áreas Menos Indicadas
Domínios restritos e bem definidos
Sistemas puramente reativos, com
funcionalidades bem conhecidas
Sistemas operacionais
Sistemas standalone
…
24 de setembro de 2007
Inteligência Artificial
14
Metodologias de Desenvolvimento OA
 Gaia
 ROADMAP
 OperA
 Prometheus
 Tropos
 AORML
 Message/UML
 AUML
 Mas-CommonKADS
…
24 de setembro de 2007
Forte Influência de OO +
métodos formais
Forte Influência de
análise organizacional
Baseadas
em UML
Forte Influência de
sistemas baseados em
conhecimento (IA)
Inteligência Artificial
15
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ção
AORML: agente, objeto, relacionamento,
crença, evento, mensagem...
24 de setembro de 2007
Inteligência Artificial
16
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
17
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
18
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
19
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
20
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
21
Gaia – Modelo de Papéis
24 de setembro de 2007
Inteligência Artificial
22
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
23
Gaia – Modelo de Interação
24 de setembro de 2007
Inteligência Artificial
24
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
25
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
26
Modelo de Agentes
24 de setembro de 2007
Inteligência Artificial
27
Modelo de Serviços
24 de setembro de 2007
Inteligência Artificial
28
Modelo de Conhecimento
24 de setembro de 2007
Inteligência Artificial
29
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
30
AUML: Representação do protocolo
Contract Net
24 de setembro de 2007
Inteligência Artificial
31
Uso de Pacotes
aquisição
corretor
fornecimento
varejista
atacadista
Solicita Proposta
requisição
proposta
24 de setembro de 2007
informação
Inteligência Artificial
32
TEMPLATE
DO CENÁRIO
COMPRADOR
/VENDEDOR
24 de setembro de 2007
Inteligência Artificial
33
NOVO
PACKAGE
PAPÉIS
USANDO O
RESTRIÇÕES
TEMPLATE
AÇÕES
24 de setembro de 2007
Inteligência Artificial
34
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
35
AUML: interação entre agentes
24 de setembro de 2007
Inteligência Artificial
36
AUML: Concorrência
24 de setembro de 2007
Inteligência Artificial
37
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
38
Agente e Papéis
24 de setembro de 2007
Inteligência Artificial
39
Diagramas de Colaboracão
Agentes
<<troca de papel>>
B/
Fornecedor
<<troca de papel>>
4:
1.1: requisita
2: questiona
B/
Analizador
do
concorrente
5: proposta
7: confirma
C/
Fornecedor1
12: requisita
14:
3:
<<troca de papel>>
1.2: requisita
A/
Cliente
C/
Concorrente
9: falha
A/
Negociador
6:
C/
Fornecedor2
10: recusa
1.3: requisita
13: entrega
D/
Devedor
24 de setembro de 2007
D/
Fornecedor
8: confirma
11: entrega
Inteligência Artificial
40
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
41
Diagramas de Atividade
Cliente
Vendedor
Solicita
Pedido
Processa
Pedido
Rede de Comércio
Eletrônico
Aceita
Pedido
Aceita
Cotação
Fabricante
Cria
Cotação
Compara
Pedido e
Cotação
Pagar
Pedido
24 de setembro de 2007
Fecha
Pedido
Atualizar
Cotação
Inteligência Artificial
42
Diagramas de Estado
A: falha
Aberto
A: requisita
Proposto
Fechado
B: confirma
Requerido
A: paga
confirmado
entregue
B: entrega
A: falha
Pago
A: falha
Fracassado
B: cancela
Cancelado
B: recusa
A: falha
B: recusa
24 de setembro de 2007
Rejeitado
Inteligência Artificial
43
AUML: Diagramas de Colaboração
24 de setembro de 2007
Inteligência Artificial
44
AUML: Diagramas de Atividade
24 de setembro de 2007
Inteligência Artificial
45
AUML: Diagramas de Estado
24 de setembro de 2007
Inteligência Artificial
46
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
47
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
48
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
49
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
50
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
51
MAS-CommonKADS - Projeto
Projeto de aplicação:
composição/decomposição dos agentes da
fase de análise
Projeto de Arquitetura:
projeto de aspectos relevantes da rede de
agentes
Projeto de plataforma:
seleção da plataforma de desenvolvimento
para cada arquitetura
24 de setembro de 2007
Inteligência Artificial
52
Download

slides