1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma...
Transcript of 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma...
1
Desenvolvimento Orientado a Desenvolvimento Orientado a AgentesAgentes
2
O que é um procedimento/função?
• Um procedimento é uma abstração de um comando e é caracterizado por:– realizar operações que modificam o estado do sistema;
• Uma função é uma abstração e uma expressão e é caracterizada por:– Realizar alguma operações sobre ‘valores’ e devolver um
‘resultado’• Ambos são metáforas de modelagem
3
O que significa dizer que um sistema é estruturado? Como reconhecemos um sistema
estruturado?
• Utiliza como metáfora de modelagem procedimentos e funções
• Utiliza metodologia de desenvolvimento estruturadas
4
O que é um objeto?
• É uma entidade de abstração caracterizada por:– Encapsulamento/information hidding;– Capacidade de relacionamentos com outros objetos de
herança/agregação– Comunica-se através do envio de mensagens
• É uma junção das abstrações de comando, expressão e declaração
5
• Utiliza objetos como metáfora de modelagem • Utiliza metodologia de desenvolvimento orientada à objetos;• Utiliza ferramentas implementação orientadas à objetos
O que significa dizer que um sistema é orientado a objetos? Como reconhecemos um sistema
orientado a objetos?
6
Um sistema concebido de forma orientada a objetos pode ser também concebido de forma
estruturada?
7
O que é um agente?
• É uma entidade de abstração caracterizada por:– Autonomia;– Capacidade social (interação com outros agentes);– Reatividade; – Pro-atividade;– Mobilidade;– Racionalidade (busca sempre atingir seus objetivos);
• Regras de ‘consistência’
8
O que significa dizer que um sistema é “orientado a agentes”? Como reconhecemos um sistema
“orientado a agentes”?
• Utiliza o agente como metáfora de modelagem • Utiliza metodologia de desenvolvimento orientada à
agentes
9
Caracterização de um sistema
• Abstração utilizada na modelagem?
• Linguagem de Implementação?
• Metodologia de desenvolvimento?
10
POO X POA
POO POA
Unidade básica Objeto AgenteParâmetrosdefinindo oestado daunidade básica
Nenhum Crenças,compromissos,capacidades,...
Processocomputacional
Envio demensagens eresposta amétodos
Envio demensagens eresposta amétodos
Tipo demensagem
Sem restrições Com restrições(informar,requerer,perguntar,...)
Restrição nosmétodos
Nenhuma Consistência
11
Desenvolvimento orientado a objetos
• Busca:– Definição das entidades que serão representadas no sistema;– Definição das funcionalidades que estão associadas a cada entidade;– Definição dos objetos e relacionamentos de agregação e herança;– Definição de atributos e métodos.
12
Desenvolvimento orientado a agentes
• Busca:– Definição das entidades que serão representadas no sistema (domínio);– Definição das percepções e ações que cada agente pode realizar;– Definição de crenças e objetivos. – Definição dos relacionamentos de comunicação entre os agentes
(estabelecer protocolos);
13
Sendo assim, temos...
Objeto Agente
Desenvolvimento OO Desenvolvimento OA
Metáfora para modelagem
Sistema “Multiobjetos” Sistema “Multiagentes”
14
Armadilhas no Desenvolvimento Orientado a Agentes
• Pouco esforço dedicado ao entendimento de como desenvolver sistemas baseados em agentes
• Tecnologia imatura e ainda não testada suficientemente• Desenvolvedores tendem a cair nas mesmas “armadilhas”
15
Armadilhas
• Achar que os agentes resolvem tudo• Não saber para que agentes• Querer construir soluções gerais para problemas específicos• Confundir protótipos com sistemas
16
Armadilhas
• Confundir “palavras badaladas” com conceitos• Esquecer que está desenvolvendo software• Não pesquisar a tecnologia relacionada
17
Armadilhas
• Não explorar concorrência• Ignorar os padrões ‘de fato’• Decidir criar sua própria arquitetura de agentes• Pensar que sua arquitetura é genérica
18
Armadilhas
• Utilizar muita IA• Não utilizar IA• Utilizar agentes para tudo• Utilizar agentes demais• Utilizar poucos agentes
19
Uma metodologia para Análise Orientada a Agentes
Sistema
de segurança
protocolosresponsabilidadespermissões
de sobrevivência
Papel
20
Modelagem dos Papéis
• Os papéis identificam as principais funções do sistema• Na fase de projeto, cada papel será associado a um ou mais agentes• Exemplo:
– Num escritório, alguns papéis seriam:• Secretária• CofeeFiller (Preenchedor de café)
21
Papéis (Roles)
• São caracterizados por três tipos de atributos:– Permissões
• informações ou conhecimento disponível ao agente– Protocolos
• ações que o agente é capaz de executar– Responsabilidades
• o que o agente deve fazer e manter como invariante
22
Exemplo: CoffeeFiller
• Permissões– leitura
• coffeeMaker (nome do coffee maker)• coffeeStatus (full or empty)
– escrita• coffeeStock (nível da garrafa de café)
23
Exemplo: CoffeeFiller
• Protocolos– Fill– InformWorkers– CheckStock– AwaitEmpty
24
Exemplo: CoffeeFiller
• Responsabilidades– de sobrevivência (liveness)
• sempre que o café acabar, preencha• sempre que preencher informe os empregados• CofeeFiller=(Fill.InformWorkers.CheckStock.AwaitEmpty)
– de segurança (safety)• coffeeStock 0
25
Expressões de Sobrevivêmcia
• Define o ciclo de vida de um papel• São essencialmente expressões regulares
x.y x seguido de y x|y x ou y ocorrex* x ocorre 0 ou mais vezes x+ x ocorre 1 ou mais vezesx x ocorre infinitamente [x] x é opcionalx||y x e y se sobrepõem
26
Esquema do Papel
ROLE SCHEMA: CoffeeFiller
PROTOCOLS: Fill, InformWorkers, CheckStock, AwaitEmptyPERMISSIONS: reads coffeeMaker //name of the coffee maker
coffeeStatus //full or empty changes coffeeStock // stock level of coffee
RESPONSABILITIES
LIVENESS: CofeeFiller=(Fill.InformWorkers.CheckStock.AwaitEmpty)
SAFETY: coffeeStock 0
DESCRIPTION: This role involves ensuring that coffee is kept filled, and informing the workers when fresh coffee has been brewed.
27
Processo de Análise
• Identificar os papéis do sistema• Para cada papel, identificar e documentar os protocolos• Elaborar o modelo de cada papel
28
• Utilizando linguagens OO convencionais + Bibliotecas adicionais – Para comunicação: JATLite (KQML), FIPA;– Para raciocínio
• Motores de inferência lógica: JEOPS, ABE, JESS, CLIPS• Motores de inferência bayesiana: Hugin, MSBN;• Redes neurais;
– Para mobilidade: Aglets, Telescript, etc.• Utilizar ambientes de desenvolvimento
– Agent Builder• Utilizar linguagens orientadas a agentes:
– Agents0, Jackal, etc.
Como implementar?
29
FIM