1 desenvolvimento orientado a agentes. 2 o que é um procedimento/função? um procedimento é uma...
TRANSCRIPT
![Page 1: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/1.jpg)
1
Desenvolvimento Orientado a Desenvolvimento Orientado a AgentesAgentes
![Page 2: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/2.jpg)
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
![Page 3: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/3.jpg)
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
![Page 4: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/4.jpg)
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
![Page 5: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/5.jpg)
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?
![Page 6: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/6.jpg)
6
Um sistema concebido de forma orientada a objetos pode ser também concebido de forma
estruturada?
![Page 7: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/7.jpg)
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’
![Page 8: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/8.jpg)
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
![Page 9: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/9.jpg)
9
Caracterização de um sistema
• Abstração utilizada na modelagem?
• Linguagem de Implementação?
• Metodologia de desenvolvimento?
![Page 10: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/10.jpg)
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
![Page 11: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/11.jpg)
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.
![Page 12: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/12.jpg)
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);
![Page 13: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/13.jpg)
13
Sendo assim, temos...
Objeto Agente
Desenvolvimento OO Desenvolvimento OA
Metáfora para modelagem
Sistema “Multiobjetos” Sistema “Multiagentes”
![Page 14: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/14.jpg)
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”
![Page 15: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/15.jpg)
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
![Page 16: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/16.jpg)
16
Armadilhas
• Confundir “palavras badaladas” com conceitos• Esquecer que está desenvolvendo software• Não pesquisar a tecnologia relacionada
![Page 17: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/17.jpg)
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
![Page 18: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/18.jpg)
18
Armadilhas
• Utilizar muita IA• Não utilizar IA• Utilizar agentes para tudo• Utilizar agentes demais• Utilizar poucos agentes
![Page 19: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/19.jpg)
19
Uma metodologia para Análise Orientada a Agentes
Sistema
de segurança
protocolosresponsabilidadespermissões
de sobrevivência
Papel
![Page 20: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/20.jpg)
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é)
![Page 21: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/21.jpg)
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
![Page 22: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/22.jpg)
22
Exemplo: CoffeeFiller
• Permissões– leitura
• coffeeMaker (nome do coffee maker)• coffeeStatus (full or empty)
– escrita• coffeeStock (nível da garrafa de café)
![Page 23: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/23.jpg)
23
Exemplo: CoffeeFiller
• Protocolos– Fill– InformWorkers– CheckStock– AwaitEmpty
![Page 24: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/24.jpg)
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
![Page 25: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/25.jpg)
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
![Page 26: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/26.jpg)
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.
![Page 27: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/27.jpg)
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
![Page 28: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/28.jpg)
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?
![Page 29: 1 Desenvolvimento Orientado a Agentes. 2 O que é um procedimento/função? Um procedimento é uma abstração de um comando e é caracterizado por: –realizar](https://reader036.vdocuments.pub/reader036/viewer/2022070311/552fc10b497959413d8c2660/html5/thumbnails/29.jpg)
29
FIM