André Drummond RA Danilo Benzatti RA

Slides:



Advertisements
Apresentações semelhantes
Projeto Qualified Curriculum
Advertisements

RUP – Rational Unified Process
Introdução a Algoritmos
Engenharia de Software
Identificando requisitos
Engenharia de Software
1 ZEUS Agentes Inteligentes e Sistemas Multi-agente Ferramentas de Contrução de Agentes IST- 2003/2004 Ana Paiva.
Adriano Teixeira João Vide Luís Silva Maria Pedroto
Valéria Maria Lauande Março/2010
FACULDADE DOS GUARARAPES
Metodologias Equipe do Curso de ES para SMA
Linguagens de Modelagem (cont.) (IV)
Amanda Meincke Melo RA:
Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA2.
Relatório do TCC Desenvolvimento do Trabalho: Deverá ser seguida uma Metodologia de Desenvolvimento (ciclo de vida) para sua categoria de trabalho; Requisitos.
Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física com auxílio de ferramentas.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Sistema de Gerenciamento Financeiro
S ISTEMA DE G ERENCIAMENTO F INANCEIRO. O S I NTEGRANTES Caio Mac Cord Fernando Bianchini Pessoa Joel Ferreira José Enes Mateus Mauricio Lederer.
S ISTEMA DE G ERENCIAMENTO F INANCEIRO. O S I NTEGRANTES Caio Mac Cord Fernando Bianchini Pessoa Joel Ferreira José Enes Mateus Mauricio Lederer.
Sistema de Gerenciamento Financeiro
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Metodologia Versão 2 FSRS.
RUP Prof.ª Elaine B. Figueiredo.
RUP - Cap. 2 – Os 4 P’s (Pessoas, Projeto, Produto e Processo)
Unibratec Análise e Gerencia de Projetos Profº Henrique Vila Nova
Visão Geral do RUP.
Supporting Use Case Based Requirements Engineering David Marques Filipe Garcês Ricardo Cruz.
Gerenciamento do Escopo: principais conceitos
Christien Lana Rachid6.1d.1 Técnica de BD - Dicionarização UNIPAC 2º SEMESTRE 2007.
Metodologias para construção de SMA
REQUIREMENTS DEVELOPMENT DESENVOLVIMENTO DE REQUISITOS
Observatório - EPT NÚCLEO DE TECNOLOGIA. Função: Gerar soluções estratégicas através da aplicação e desenvolvimento de ferramentas de TI. A coordenação.
Levantamentos de dados Desenho do Projeto
Pesquisa e Captação de Recursos Humanos nas áreas de Automação Industrial, Software para Dispositivos Móveis e TV Digital FOMENTO: SAMSUNG.
Pesquisa e Captação de Recursos Humanos nas áreas de Automação Industrial, Software para Dispositivos Móveis e TV Digital FOMENTO: SAMSUNG.
Metodologias (Parte II) Viviane Torres da Silva
Análise e Projeto Orientados a Objetos
Bruno Silva Desenvolvido a partir de
Engenharia de Software
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
METODOLOGIA, MÉTODOS E FERRAMENTAS
Processo de Desenvolvimento de Software – PDS C Construção - PAS
RUP - Cap. 3 – Processo Dirigido por Caso de Uso
Diagrama de Componentes
Processos de Software.
Maria Alice Grigas Varella Ferreira – EP-USP GERAÇÕES DE FERRAMENTAS (UIMS/UIDS) u segundo (Hix, 1990) u uma classificação por características comuns e.
Ferramenta de Modelagem de Requisitos e Agentes (TAOM4e) Laís Xavier Prof.: Jaelson Castro.
Engenharia de Software
Modelo de Análise e Projeto
Engenharia de Requisitos
Mestrando: Pedro Barbosa Cordeiro Orientador: Bernardo Lula Júnior
Modelos de Processo de Software eXtreme Programming André DrummondRA Danilo BenzattiRA MO409 – Engenharia de Software Profa. Eliane Martins.
METHONTOLOGY Sandro Rautenberg
Os projetos.
Arquitetando a Educação a Distância
Arquitetura de Software Projetos de Interface
Profa. Reane Franco Goulart. É uma representação de engenharia de algo que vai ser construído. Para a engenharia de software o projeto foca em quatro.
APSI II Análise e Projeto de Sistemas de Banco de Dados II.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
FP.AC Apresentação da Release 4 Sistema de Rastreamento Veicular para Auxilio no Atendimento de Ocorrências Policiais
SISTEMAS DE INFORMAÇÃO Projeto de Sistemas Análise Orientada a Objetos 2011/02 UNIPAC – Araguari FACAE - Faculdade de Ciências Administrativas e Exatas.
OCLE Object Constraint Language Environment Fábio Moura CIn-UFPE.
Projeto de Arquitetura de Software
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Mail++.  Objetivo ◦ Adicionar novas funcionalidades a um servidor de  Servidor de JES ◦ Implementado em Java ◦ Apenas funcionalidades.
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
Mauricio Barbosa e Castro.  A construção de um produto multimídia se faz através de um projeto.  O escopo e a complexidade de um projeto de multimídia.
/ de Abril de UFPE - Universidade Federal de Pernambuco Centro de Informática Pós-Graduação em Ciência da Computação Dissertação de Mestrado.
Transcrição da apresentação:

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 992640 Danilo Benzatti RA 980942

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

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.

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) http://www.cs.rmit.edu.au/agents/SAC2/methodology.html (Site Oficial da Metodologia Prometheus) (28/10/2004) http://www.agent-software.com/ (Site do Grupo de Software Orientado a Agentes)

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.

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.

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.

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.

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) http://www.agent-software.com/shared/products/index.html (Site do JDE)

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) http://www.cs.rmit.edu.au/agents/pdt/ (Site do PDT)

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.

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

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

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

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

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

Referências Sistemas Baseados em Agentes: http://www.csc.liv.ac.uk/~mjw/pubs/ker95/ker95-html.html Metodologia Prometheus: http://www.cs.rmit.edu.au/agents/SAC2/methodology.html L. Padgham, M. Winikoff. Prometheus: A Pragmatic Methodology for Engineering Intelligent Agents. L. Padgham, M. Winikoff. Prometheus: A Methodology for Developing Intelligent Agents.