A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

André Drummond RA Danilo Benzatti RA

Apresentações semelhantes


Apresentação em tema: "André Drummond RA Danilo Benzatti RA"— Transcrição da apresentação:

1 André Drummond RA 992640 Danilo Benzatti RA 980942
Metodologia para o Desenvolvimento de Sistemas Baseados em Agentes Prometheus MO409 – Engenharia de Software Profa. Eliane Martins André Drummond RA Danilo Benzatti RA

2 Assuntos abordados Introdução Sistemas Baseados em Agentes
Metodologia Prometheus Fases Modelos Ferramentas Exemplo de Uso Dificuldades na Vida Real Conclusões

3 Sistemas Baseados em Agentes
O que são Agentes? Níveis de Complexidade Reflexivos, Comportamentais, Planejadores, Emocionais, Comunicativos, Semióticos, ... Tipos de Agentes Interfaces, Móveis, Multi-Agentes, Robóticos, ... A literatura apresenta muitas definições de agentes de forma que existem conceitos diferentes e até conflitantes sobre este mesmo tema. Assim, uma possível definição seria: Um agente é uma entidade capaz de perceber características do seu ambiente, processar essas informações percebendo as mudanças ocorridas e atuar neste ambiente afim de modificá-lo. Níveis: Reflexivos: Processo direto de percepção-ação. Os atuadores agem como função direta das entradas dos sensores. Geralmente não possuem estado interno. Comportamentais: Possuem processos independentes de ação e percepção. É o efeito de vários comportamentos reflexivos que atuam paralelamente podendo apresentar níveis de hierarquia e .... Planejadores: Efetuam um processamento das informações dos sensores comparando-as com sua representação interna do ambiente. Também utiliza seu modelo do ambiente para tentar prever as próximas mudanças e assim agir pro-ativamente. Emocionais: Além do modelo do ambiente, possuem um sistema de valores que pode influenciar em suas ações e sua comunicação com outros agentes ou humanos. Comunicativos: Possuem um canal ou protocolo de comunicação direta com os demais agentes do meio. Permitem que existam sistemas de coordenação e cooperação entre agentes para tomadas de decisões e troca de informações. Semióticos: Não possuem um canal de comunicação, sendo que o próprio ambiente funciona como um canal para troca de sinais. Tipos: Interface: Atuam na interface entre o homem e o computador auxiliando na execução de tarefas ou aprendizado. Móveis: Não são ligados ao sistema ou plataforma que os instanciaram. Podem se locomover através de redes de computadores, embarcados em sistemas de hardware ou mesmo em ambientes físicos (agentes robóticos) Multi-Agentes: Sistema constituído de vários agentes atuando e interagindo num mesmo ambiente. Possibilitam maior riqueza comportamental como cooperação, colaboração, competição e ainda resultados emergentes. Robóticos: Agentes que possuem hardware próprio auxiliando-os na execução de suas tarefas.

4 Metodologia Prometheus
Suporta o desenvolvimento de Agentes inteligentes; Suporta todo o processo de desenvolvimento; Evoluiu a partir de experiências práticas e pedagógicas; Tem sido utilizada tanto no meio acadêmico como industrial; Detalhada e Completa; Possui ferramentas que possibilitam o cross checking entre modelos. A metodologia Prometheus vem sendo desenvolvida a sete anos por Lin Padgham e Michael Winikoff (RMIT University, Austrália) em colaboração com o Grupo de Software Orientado a Agentes (AOS), e foi idealizada para se obter um processo que pudesse ser ensinado a funcionários na indústria bem como alunos de graduação, que não tivessem conhecimento prévio sobre agentes, e que pudesse ser utilizada para desenvolver agentes inteligentes. Prometheus é detalhada e completa, pois cobre todos os estágios de desenvolvimento de software aplicado a sistemas baseados em agentes. Links: (28/10/2004) (Site Oficial da Metodologia Prometheus) (28/10/2004) (Site do Grupo de Software Orientado a Agentes)

5 Metodologia Prometheus Fases (I)
Fase de Especificação de Sistema Identificar objetivos; Desenvolver cenários de casos de uso; Identificar a interface do sistema; Identificar funcionalidades; Identificar as informações de entrada e saída das funcionalidades; Preparar esquemas das funcionalidades (nome, descrição, ações, dados, etc). A metodologia Prometheus inclui três fases de desenvolvimento, onde os artefatos são produzidos e são utilizados tanto na produção do código básico, como para “debugar” e testar o sistema. A fase de Especificação de Sistema foca na identificação das funcionalidades básicas do sistema juntamente com as entradas, saídas e qualquer fonte de dados compartilhados que seja importante. Esta fase consiste das seguintes atividades: Identificar objetivos: definição dos objetivos e sub-objetivos do sistema; Identificar funcionalidades: as funcionalidades se referem a aspectos particulares do sistema e devem estar relacionadas aos objetivos e sub-objetivos. As informações de entrada e saída de cada funcionalidade devem ser explicitadas; Desenvolver cenários de casos de uso: os cenários nos dão uma visão mais ampla do sistema. A parte central de um cenário é composta de uma seqüência de passos descrevendo um exemplo do sistema em operação; Identificar a interface do sistema: definição da interface do sistema com o ambiente em termos de ações, percepts e dados externos; Preparar esquemas: tanto para as funcionalidades como para os objetivos, esquemas devem ser criados incluindo suas características e informações sobre interação com outras funcionalidades e objetivos.

6 Metodologia Prometheus Fases (II)
Fase de Desenvolvimento da Arquitetura Agrupar funcionalidades para determinar os tipos de agentes; Definir os tipos de agentes e desenvolver os descritores de agentes; Produzir um diagrama do sistema com uma visão geral de sua estrutura; Desenvolver protocolos de interação a partir dos casos de uso. A fase de Desenvolvimento da Arquitetura utiliza os resultados da fase anterior e determina quais agentes deverão existir e como eles irão interagir. Esta fase consiste das seguintes atividades: Agrupar funcionalidades para determinar os tipos de agentes: este processo envolve a análise das razões favoráveis e contra o agrupamento de funcionalidades em particular. Funcionalidades que lidam com os mesmos dados podem candidatas a comporem um agente. Já funcionalidades claramente exclusivas ou que pertençam a partes de hardware diferentes não deverão se agrupar. Definir os tipos de agentes e desenvolver os descritores de agentes: ao definir os tipos de agentes deve-se buscar uma forte coesão interna e um baixo acoplamento com os outros tipos. Com os tipos definidos deve-se escrever os descritores dos tipos contendo informações de alto nível como: número de agentes deste tipo; tempo de vida; requisitos de inicialização; requisitos de terminação; dados que devem ser monitorados; a quais eventos o agente irá reagir; e mais algumas informações extraídas das funcionalidades que compõe o agente como: objetivos, eventos, etc. Produzir um diagrama do sistema com uma visão geral de sua estrutura: este diagrama relaciona os agentes, eventos e objetos de dados compartilhados. Através deste diagrama pode-se obter uma compreensão geral de como o sistema como um todo irá funcionar, incluindo as interações entre os agentes. Desenvolver protocolos de interação a partir dos casos de uso: o aspecto final do Desenvolvimento da Arquitetura é a especificação completa das interações entre os agentes. Diagramas de interação devem ser criados, e a partir destes, protocolos de interação são definidos.

7 Metodologia Prometheus Fases (III)
Fase de Desenvolvimento Detalhado Produzir diagramas de visão geral dos agentes; Refinar habilidade; Introduzir planos para tratar eventos; Definir detalhes dos eventos; Definir detalhes dos planos; Definir detalhes dos dados. A fase de Desenvolvimento Detalhado define os detalhes de cada agente bem como de que forma eles irão resolver as tarefas a eles designadas no sistema. Esta fase consiste das seguintes atividades: Produzir diagramas de visão geral dos agentes: estes diagramas são comparados aos diagramas de visão geral do sistema, mas ao invés de mostras agentes dentro de um sistema, ele mostra as habilidades dentro de um agente. Refinar habilidade: um processo para definir as habilidades do agente se segue podendo surgir novas habilidades até que estas habilidades estejam expressas em termos de planos, eventos e dados. Introduzir planos para tratar eventos: um plano é acionado por um evento e define como o comportamento do agente frente ao evento. Definir detalhes dos eventos, planos e dados: deve-se definir os detalhes para os eventos, planos e dados para que se possa partir então para a implementação do sistema.

8 Metodologia Prometheus Modelos
Diagramas: Objetivos; Funcionalidades; Visão Geral do Sistema; Visão Geral dos Agentes; Reconhecimento entre Agentes (diagrama de classes UML); Visão Geral das Habilidades; Acoplamento de Dados; Interação de agentes (diagramas de seqüência UML); Descritores Textuais Digramas: Objetivos: Contém os objetivos e sub-objetivos do sistema; Funcionalidades: relaciona os objetivos com as funcionalidades e ações no sistema; Visão Geral do Sistema: relaciona os agentes, evento e dados compartilhados; Visão Geral de Agentes: similar ao de Visão Geral de Sistema, mas mostra a interação entre as habilidades dentro de um agente; Reconhecimento entre Agentes: define as conexões entre diferentes agentes; Visão Geral das Habilidades: similar ao do Sistema e de Agentes, e mostra interação planos e habilidades dentro de um agente; Acoplamento de Dados: define a interação entre as funcionalidades e os dados; Interação de Agentes: mostra a comunicação entre os agentes no sistema. Descritores Textuais: Prometheus utiliza descritores textuais para especificar detalhes dos elementos modelados. Existem descritores para listas de objetivos, funcionalidades, cenários, ações, percepções, agentes, entre outros.

9 Ferramentas (I) Jack Development Environment (JDE)
Ferramenta comercial (USD $15,000 por ano); Desenvolvido em Java; Interface “drag and drop”; Previne a ocorrência de certos erros; Informa sobre informações que são necessárias; Integra múltiplos arquivos; Interface textual para elaboração do planos; Interface gráfica para Compilar e Executar. Links: (08/11/2004) (Site do JDE)

10 Ferramentas (II) Prometheus Design Tool (PDT)
Protótipo criado pelos criadores (Freeware); Desenvolvido em Java; Faz a checagem de inconsistências; Gera automaticamente vários diagramas; Gera automaticamente uma descrição do desenvolvimento (HTML): descritores, dicionário e diagramas. Links: (08/11/2004) (Site do PDT)

11 Exemplo de Uso (Rede de Hotéis)
Foco na Interação entre o Usuário e o Sistema de Verificação de Vagas O usuário escolhe a localização da hospedagem (estado/cidade) e a faixa de custo O sistema retorna os tipos de quartos disponíveis nos hotéis mais próximos a localidade escolhida. No exemplo apresentado iremos mostrar a utilização dos principais diagramas com o estudo de caso da Rede de Hotéis. Dentre os casos de uso existentes, iremos utilizar o “Verificar Disponibilidade” que se refere a interação entre o usuário (web) e a página da Rede de Hotéis, onde o usuário está em busca de informações quanto a disponibilidade de quartos vagos em algum hotel da região que lhe interessa. No contexto de Sistemas de Agentes Inteligentes, propomos a idéia de o usuário definir apenas a região onde gostaria de se hospedar, e a faixa de custo que está disposto a pagar. O sistema então lhe retorna a informação dos tipos de quartos vagos em hotéis próximos a localidade que o usuário escolheu, isso se houverem quartos vagos nos hotéis que se situam nas proximidades do local escolhido. Caso contrário o sistema informa que não há quartos vagos.

12 Diagrama de Funcionalidades
Fase de Especificação: Neste diagrama podemos ver o objetivo principal do sub-sistema (Informar Vagas Disponíveis), as funcionalidades relacionadas a este objetivo (Interação Inicial com o Usuário; Verificação de Disponibilidade; Interação Final com o Usuário) e as ações tomadas decorrentes das funcionalidades (MostrarPagina; PesquisaRedeHoteis; DefineListaHoteis; RetornarListaHoteis). Por exemplo, quando o usuário estabelece uma interação com o sistema (abre a página da Rede de Hotéis no seu browser), o sistema nada mais faz do que lhe mostrar a página inicial. Outra funcionalidade está relacionada a verificação da disponibilidade de quartos na rede, o que envolve uma pesquisa e posterior geração de uma lista, sendo que esta pode ser vazia no caso de não haverem quartos disponíveis. Ao final o usuário recebe os dados da lista retornada pelo sistema. © The Prometheus Design tool is copyrighted by RMIT

13 Diagrama de Visão Geral do Sistema
Fase de Desenvolvimento da Arquitetura: Neste diagrama vemos o agentes já definidos (Gerente de Hotel; Gerente da Rede; Recepcionista Virtual) e as mensagens que trocam entre eles (Localização e Custo; Quartos Disponíveis; Lista de Quartos; Lista Global). Vemos também as percepções ligadas ao agente recepcionista (UsuarioAcessouPagina; UsuarioSelecionouLocalizaçãoCusto), e as bases de dados acessadas pelos agentes (BancoDadosHotel; BaseDadosLocalizações); Podemos observar os tipos de informações que geram as reações dos sistema, e as mensagens trocadas pelos agentes para a obtenção dos resultados. O agente recepcionista acessa a base de dados de localização para montar a págin inicial com as informações das possíveis localizações e faixas de custo consideráveis. Em seguida a decisão de quais Hotéis serão contatados cabe ao Gerente de Rede que, a partir da base de dados de localizações define quais Hotéis estão próximos a localização requerida. Ao final o gerentes de cada Hotel são indagados sobre quartos disponíveis dentro da faixa de preço definida pelo usuário, e então retornam para o gerente da rede uma lista de quartos (que pode ser vazia). Todas as listas retornadas são então agregadas em uma única lista que é retornada ao agente recepcionista que, por sua vez, gera a página com os dados para o usuário. © The Prometheus Design tool is copyrighted by RMIT

14 Diagrama de Visão Geral do Agente
Agente Gerente de Hotel Fase de Desenvolvimento Detalhado: Neste diagrama vemos em maiores detalhes o interior do agente “Gerente de Hotel” onde está definida uma habilidade (Avalia Custo Requisitado) que interage com as mensagens e bases de dados. Nesta fase todos os detalhes referentes ao interior dos agentes devem ser analisados, todas as entidades que interagiam com o agente em questão no diagrama de Visão Geral do Sistema, devem aparecer neste diagrama como entidades externas ao agente, e todas as habilidades, planos e mensagens internas são definidas. Neste caso a habilidade “Avalias Custo Requisitado” representa o algoritmo que, a partir da base de dados do Hotel e da faixa de custo almejada pelo usuário, gera uma lista com os tipos de quartos disponíveis cujo preço esta compreendido na faixa de custo. © The Prometheus Design tool is copyrighted by RMIT

15 Dificuldades na Vida Real
Utilização concentrada entre os autores Pouca documentação na Internet Não existe uma ferramenta freeware completa Critérios subjetivos para a definição dos agentes

16 Conclusões A metodologia facilita o aprendizado de sistemas baseados em agentes Flexível quanto ao tipo de agentes Ferramentas que possibilitam a validação e geração de código Poucos artigos sobre a metodologia publicados

17 Referências Sistemas Baseados em Agentes: Metodologia Prometheus: L. Padgham, M. Winikoff. Prometheus: A Pragmatic Methodology for Engineering Intelligent Agents. L. Padgham, M. Winikoff. Prometheus: A Methodology for Developing Intelligent Agents.


Carregar ppt "André Drummond RA Danilo Benzatti RA"

Apresentações semelhantes


Anúncios Google