1 desenvolvimento orientado a agentes. 2 o que é um procedimento/função? um procedimento é uma...

Post on 17-Apr-2015

103 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related