Agentes Inteligentes Metodologias para Sistemas de Software Baseados em Agente Rosa Candida Pinto Complexidade do Software ... muitas partes ... ... com muitas interações... Engenharia de Software É uma disciplina que se preocupa com os problemas práticos inerentes ao desenvolvimento de sistemas de grande porte. Seu papel Fornecer métodos, ferramentas e procedimentos que facilitem a manipulação da complexidade do software. Engenharia de Software Ciclo de Vida do Software Refere-se à progressão dos projetos de software, ao desenvolvimento e manutenção, e eventualmente à sua substituição. Especificação Projeto Validação Evolução Engenharia de Requisitos É o processo de: Aquisição Refinamento Verificação das necessidades do cliente Com o objetivo de obter uma especificação correta e completa dos requisitos. Atividades do Processo Estudo de viabilidade Análise de requisitos Definição de requisitos Especificação de requisitos Eng. de Software X Eng. de Requisitos Objetivos do Sistema Engenharia de Requisitos Documentos de Requisito Especificação de Software Metodologia de Análise e Projeto Projeto Engenharia de Software Pedaços de Código Metodologias de Análise e Projeto Responsabilidades Suportar o processo de elicitação dos requisitos e do sistema Analisar o ambiente organizacional Projetar o sistema de informação Fases e Modelos Fase de Requisitos Iniciais e Análise Fase de Projeto MAP: Fase de Análise Trata com a especificação do sistema Modela o domínio da aplicação usando noções abstratas e gera o modelo conceitual - organizacional Envolve a engenharia de requisito, a modelagem estratégica e a modelagem empresarial Modelo Conceitual descreve ... O processo organizacional As entidades organizacionais Relacionamentos entre as entidades organizacionais MAP: Fase de Projeto Trata como o sistema realizará os requisitos Modela o sistema de informação Usando conceitos concretos que descrevem componentes de software diretamente . . . ... Gerando o modelo de projeto Modelo de Projeto fornece ... Informações detalhadas de com o que o sistema parece . . . . . . Sem fornecer instruções de como implementar o projeto É similar a um plano de arquitetura: descreve a forma exata do produto final sem especificação das técnicas e métodos que devem ser usados para realizar o plano. Metodologias de Análise e Projeto Paradigmas Orientada a Função : Top-dow [Yord,1992] Orientada a Dados : Relacional [Cood,1970] Orientada a Objetos : Booch/Rambough/ Jacobson [Booc, 1999] Orientada a Agentes : Shalon [Shoh,1993] Orientada a Requisitos : Tropos [Mylo,2000] MAP Orientada a Agente - MAPOA Cobre as fases iniciais - especificação e projetodo ciclo de vida de uma aplicação baseada em agente. Agentes do Ponto de vista da ES É o sistema de computador encapsulado que se encontra situado em algum ambiente e é capaz de ter ações flexíveis e autônomas naquele ambiente a fim de alcançar seus objetivos de projeto [Wool,1995]. Esse é o conceito de agente fraco definido em [Wool,1995] (i.e., tem autonomia, habilidade social, reativos e pró-ativos) MAP Orientada a Agente - MAPOA - Abordagens da 1a. Geração de MAPOA Expansão de metodologias existentes Metodologia Orientada a Objeto Engenharia do Conhecimento MAPOA: Extensão OO Vantagens Há similaridade entre os paradigmas - OO e OA Linguagens OO são usadas comumente para implementar sistemas baseados em agentes Popularidade da metodologia OO As visões de sistemas em metodologias OO são úteis na descrição de agentes. - estática, dinâmica e funcional - MAPOA: Extensão OO OA X OO Comunicam-se por passagem de mensagem OO: é só uma invocação de método; Sempre executa a ação solicitada. OA: distingue diferentes tipos de mensagens; Modela as mensagens com ato-de-fala; Usa protocolos complexos para negociar; Pode ou não executar a ação solicitada. MAPOA: Extensão OO OA X OO Estado Mental OA: agentes podem ser caracterizados pelo seu estado mental OO: não define técnicas para modelagem de como o agente executa suas inferências, seus processos de planejamento, etc. Dimensão Social OA: agentes são caracterizados pelas suas dimensões sociais OO: não define procedimentos para modelagem desses relacionamentos sociais entre agentes. MAPOA: Extensão OO Soluções Existentes Metodologia Orientada a Agente Baseada em BDI - Beliefs, Desires and Intentions [Kinn,1996] AUML Agente [Odel,2000] Metodologia Gaia para Análise e Projeto Orientado a Agente [Wool,2000] MAPOA: Extensão EC Vantagens Fornece as técnicas para modelagem do conhecimento do agente. A definição de conhecimento do agente pode ser considerada como um processo de aquisição de conhecimento Popularidade Experiência já adquirida nessa metodologia MAPOA: Extensão EC Vantagens É possível reusar: Ferramentas existentes Bibliotecas de Ontologias desenvolvidas; Biblioteca de Métodos de Resolução de Problemas MAPOA: Extensão EC OA X EC Aspecto Distribuído EC: concebem um sistema baseado em conhecimento como algo centralizado. OA: os agentes possuem: Aspectos sociais ou distribuídos; Atitudes refletidas e orientadas a objetivos. MAPOA: Extensão EC Soluções Existentes CoMoMAS: CommonKADS para modelagem MAS MAS-CommonKADS MAPOA: Extensão EC Soluções Existentes CoMoMAS X MAS-CommoKADS Construídos sobre técnicas e modelos do CommonKADS Estendidos para capturar aspectos relevantes de sistemas multiagentes CoMoMAS: é uma MAP para desenvolvimento de sistemas multiagentes MAS-CommonKADS: é um ambiente para suportar o desenvolvimento de descrições conceituais de sistemas multiagentes MAP Orientada a Agente Um Estudo de Caso Sistema de Gerenciamento de Tráfego Aéreo Metodologia: Técnicas de Modelagem de Agentes para Sistemas de Agentes BDI MAP Orientada a Agente Um Estudo de Caso Metodologia: Técnicas de Modelagem de Agentes para Sistemas de Agentes BDI - MOA/BDI - MOA/BDI: Níveis Principais Ponto de Vista Externo Consiste da decomposição do sistema em agentes e das definições de suas interações A decomposição é executada usando dois modelos de Agentes / de Interações Ponto de Vista Interno Executa a modelagem de cada classe do agente BDI A modelagem é executada usando três modelos de Crença / de Objetivo / de Plano MOA/BDI: Ponto de Vista Externo Modelos de Execução Modelo de Agente Descreve os relacionamentos hierárquicos entre as diferentes classes de agentes Identifica as instâncias do agente que podem existir no sistema Modelo de Interação Descreve as responsabilidades, serviços e interações entre agentes e o sistema externo Inclui a sintaxe e a semântica das mensagens usadas para a comunicação MOA/BDI: Ponto de Vista Externo Processo de Desenvolvimento 1. Identifica os papéis do domínio da aplicação para encontrar os agentes e organiza-los em classes hierárquicas Para cada papel: identifica as responsabilidades junto com os serviços fornecidos e usados para cumprir-la 2. Identifica as interações necessárias para cada serviço, o conteúdo de informação e o ato da fala de todas elas 3. Introduz as instâncias dos agentes baseados em considerações de tempo de vida e multiplicidade. MOA/BDI: Ponto de Vista Interno Modelos de Execução Modelo de Crença - belief Descreve: O conjunto de crenças do agente sobre o ambiente O estado interno do agente As ações que o agente pode executar Consiste em um ou mais estado de crença que pode ser definido e usado para especificar o estado inicial do agente MOA/BDI: Ponto de Vista Interno Modelos de Execução Modelo de Objetivo - goal Descreve os: Objetivos e ... ... Eventos que o agente pode responder e adotar Consiste em: Um conjunto de objetivos que especificam as metas e o domínio de eventos Um ou mais estados de objetivos usados para especificar o estado mental inicial do agente MOA/BDI: Ponto de Vista Interno Modelos de Execução Modelo de Plano - plan Descreve os planos usados para que os agentes alcancem os seus objetivos Consiste em um conjunto de planos que descrevem: As propriedades e as estruturas de controle de planos individuais MOA/BDI: Ponto de Vista Interno Processo de Desenvolvimento 1. Analisa os diferentes planos para encontrar os objetivos do agente seguindo os passos: Para cada objetivo, analisa os diferentes contextos nos quais o objetivo tem que ser encontrado; Para cada um desses contextos, decompõe os objetivos em atividades representados por subobjetivos e ações; Para cada objetivo, analisar em que ordem e sobre que condições essas atividades e ações necessitam ser executadas, como falhas devem ser conduzidas e gerar um plano para encontrar o objetivo. MOA/BDI: Ponto de Vista Interno Processo de Desenvolvimento 2. Constrói as crenças do sistema, seguindo os passos: Analisa os vários contextos e condições que controlam a execução das atividades e das ações; Analisa os dados de entradas e saídas requeridos por cada sub-objetivo no plano e assegura-se que essa informação seja disponível tanto como crença ou como saída de sub-objetivos anteriores no plano. MAP Orientada a Agente Um Estudo de Caso Sistema de Gerenciamento de Tráfego Aéreo Sistema de Gerenciamento de Tráfego Aéreo Estrutura do Sistema GTA Responsabilidade Auxiliar o controlador de fluxo de tráfego aéreo a: Determinar a seqüência de aterrissagem de uma aeronave num aeroporto com múltiplas pistas; Manter a segurança e outras restrições; Minimizar atrasos e congestionamentos. Sistema de Gerenciamento de Tráfego Aéreo Estrutura do Sistema GTA Agentes Permanentes: Coordenador Sequenciador Modelador do tempo - windmodel. Variáveis Aeronaves onde cada uma delas: 1. Está associada a um vôo particular e 2. Só existe durante o tempo que está sob controle do controlador de fluxo. Estrutura do Sistema GTA Responsabilidades dos Agentes Permanentes Coordenador Criar e remover os agentes aeronave Distribuir os planos de vôo iniciais das aeronaves Sequenciador Determinar o tempo de aterrissagem Interage com os agentes aeronaves e o controlador de vôo para executar essa tarefa. Modelador do Tempo - windmodel. Manter um modelo 4-dimensional das condições de clima passada, presente e futura no espaço aéreo controlado Estrutura do Sistema GTA Agentes Variáveis Aeronaves Consistes de três componentes ativos Preditor Monitor Planejador Agregados num agente concreto simples Tempo de vida são comuns Interações close Estrutura do Sistema GTA Responsabilidades dos Preditor Executar vários serviços entre eles há o principal que: Computa o tempo esperado de chegada - TC Especifica as escalas - waypoints - no plano de vôo incluindo o pondo final de aterrissagem Entradas para execução do serviço principal Plano de vôo: pode ser modificado durante o vôo Profile de performance da aeronave, a qual é determinada pelo tipo da aeronave e pelas condições climáticas para determinar os últimos usa o agente windmodel Estrutura do Sistema GTA Responsabilidades dos Preditor A computação do tempo de chegada produz: Tempos estimados e envelopes de performance os quais ... ... São anteriores e posteriores aqueles que a aeronave pode chegar ao ponto de escala enquanto ... ... Permanece dentro do seu perfil de operação permitido. Fornece as informações encontradas ao Monitor e o Planejador Estrutura do Sistema GTA Responsabilidades dos Monitor Recebe uma informação tri-dimensional derivada dos dados do radar e da comparação do TC atual com aquele predito. Se ocorre desvios significativos ele analisa a razão para a ocorrência e notifica o Preditor e o Planejador. Causas de desvio do vôo: Não seguir o plano de vôo : detectado pelo radar Não voou na altitude planejada : detectado pelo radar Não manteve a velocidade planejada : análise global Informações imprecisas do tempo : análise global Estrutura do Sistema GTA Responsabilidades dos Monitor Análise Global: Comparar o comportamento de várias aeronaves O Monitor pede ao Windmodel para executar a análise global Estrutura do Sistema GTA Responsabilidades do Planejador É solicitado pelo Sequenciador para construir um conjunto de planos que permitirão a aeronave aterrizar no horário. Chamado quando o Sequenciador atribui, ou revisa, a indicação de tempo de pouso da aeronave Plano é : A Trajetória futura A Velocidade aérea e O Profile de altitude da aeronave Estrutura do Sistema GTA Responsabilidades dos Planejador O Planejador usa diferentes estratégias, algoritmos e heurísticas para produzir essas planos. A escolha do melhor plano depende do estágio do vôo. O Planejador envia o conjunto de planos para o controlador de vôo o qual adota um de sua escolha O Planejador responde as divergências detectadas pelo Monitor determinando se a aeronave pode ainda alcançar o seu tempo de aterrissagem ou não. Se sim os planos atuais são modificados como requeridos Se não, o Planejador notifica o Sequenciador o qual computa um novo tempo de aterrissagem e repete o ciclo. Aplicando a Técnica de Modelagem ao GTA Diagrama de Classes e Instâncias A Profile Dados do Tempo Preditor A A A Plano de Vôo Planejador A A Dados Radar Monitor A A Aeronave Genérica S Modelo Tempo B737 B747 Windmodel B737 B747 S A320 Coordenador A320 Coordenador Diagrama de Classes de Crença Predicados Derivados e Funções Classe Predicado Função Envelope Time gen-time {static} Time-list toas Time-list e-toas Time-list l-toas Integer segment Waypoint next Boolean deviated = false gen-time (Envelope, Time) toas (Envelope, Time-list) e-toas (Envelope, Time-list) l-toas (Envelope, Time-list) segment (Envelope, Integer) next (Envelope, Waypoint) deviated(Envelope) Time gen-time (Envelope) Time-list toas (Envelope) Time-list e-toas (Envelope) Time-list l-toas (Envelope) Integer segment (Envelope) Waypoint next (Envelope) Boolean devialed (Envelope) on-time (Loen, Time) {eval} Time eta (Wayponit) {eval} on-time (Envelope, Loen, Time) Time eta (Envelop, Wayponit) envelope (Flightplan, Envelope) flightplan (Envelope, Flightplan) Envelope envelope (Flightplan) Flightplan flightplan (Envelop) Name flight {static} Name profile-name {static} Boolean verified Integer priority = 2 Altitude cruise-alt Loen origin Waypoint-list path Time lta flight (Flightplan, Name) profile-name (Flightplan, Name) verified (Flightplan) priority (Flightplan, Integer) cruise-alt (Flightplan,Alttidude) origin (Flightplan, Loen) path (Flightplan, Waypoint-list) lta (Flightplan, Timr) Name flight (Flightplan) Name profile-name (Flightplan) Boolean verified (Flightplan) Integer priority(Flightplan) Altitude cruise-alt (Flightplan) Loen origin (Flightplan) Waypoint-list path (Flightplan) on-path (Loen) {eval} on-path (Flight, Loen) envelope {inverse = flightplan Flight Plan Aplicando a Técnica de Modelagem ao GTA Gráfico de Planos Plan Name Plan Graph activation event [ activatrion condition ] / activation action Plan Body activy formula evento/ action event [ condition ] / action evento/ [ condition ] [ condition ] / action any [ abort condition ] /abort action fail / fail action Documentatiosn pass / pass action Metodologias para Sistemas de Software Baseados em Agente MSS - Baseadas em Agentes MSS - Baseados em Agente Conclusões Várias metodologias vem surgindo normalmente extensões de modelos já existentes – OO e EC Várias características não estão sendo tratadas nessas metodologias – Ex.: projeto de agentes móveis e de interface do usuário Pode-se concluir que a área encontra-se aberta o suficiente para vários pesquisadores encontrem soluções para os problemas não resolvidos. MSS - Baseados em Agente Bibliografias [Booc-1999] Booch, G., Rumbaugh and Jacobson, I. The Unified Modeling Language User Guide Ed. Addison-Wesley - 1999. [Buss-1999] Busetta, Paolo, Rönnquist, Ralph, Hodgson, Andrew and Lucas , Andrew. JAKE Intelligent Agents – Components for Intelligent Agents in Java.AgentLink Newsletter. [Cood-1970] Cood, E. F. A relational Model of Data for Large Shared Data Banks. Communication of the ACM, 13 (06) June 1970. [Gene-1994] Genesereth, M. R. e Ketchpel, S.P. Softwares Agents. Communications od the ACM, 37(7):48-53, 1994. [Kinn-1996] Kinny, D., Georgeff, M. and Rao, A. A Methodology and Modelling Technique for Systems of BDI Agents, in W. Van Der Velde and J. Perram, editors., Agents Breaking Away: Proceedings of the Seventh European Workshop on Modelling Autonomous Agents in a Multi-Agent World MAAMAW’96, (LNAI Volume 1038). Springer-Verlag: Heidelberg, Germany, 1996. MSS - Baseados em Agente Bibliografias [Mylo-2000] Mylopoulos, J. e Castro J. Tropos: A Framework for Requirements-Driven Software Development. Brinkkemper, J. and Solvberg, A. (eds.), Information Systems Engineering: State of the Art and Research Themes, Springer-Verlag, June 2000, pp. 262273. [Odel-2000] Odell, J., Parunak, H. and Bauer, B. Representing Agents in UML, Proceedings of the AAAI Agents 2000 Conference, (paper submitted), Barcelona, Spain, June 3-7, 2000. [Somm-1996] Sommerville, I., Software Engineering – Addison-Wesley – England, 1996. [Shoh-1993] Shoham, Y. Agent-Oriented Program .Artificial Intelligence, 60(1):51-92, 1993. MSS - Baseados em Agente Bibliografias [Wool-2001] Wooldridge M. and Ciancarini , P. Agent-Oriented Software Engineering: The State of the Art In P. Ciancarini and M. Wooldridge, editors, AgentOriented Software Engineering. Springer-Verlag Lecture Notes in AI Volume 1957, January 2001. [Wool-2000] Wooldridge, M., Jennings, N. and Kinny D. The Gaia Methodology for Agent-Oriented Analyis and Design, Journal of Autonomous Agents and Multi-Agent Systems, (to appear) 2000. [Wool-1995] Wooldrige, M. and Jennings, N. R. Intelligent Agents: Theory and Practice, Knowledge Engineering Review 10 (2) (1995) 115-152. [Your-1992] Yourdon, E. Análise Estrutrada Moderna – Ed. Campos - 1992