660 likes | 855 Views
Engenharia de Software Orientada a Agentes. Marco Simões (macs3) Jacques Robin (jr). Sistema Baseado em Agentes. Abstração principal: Agente Sistemas Multi-Agentes(SMAs): agentes com capacidade de socialização Agente: Autonomia Reatividade Pró-Atividade Capacidade de Socialização.
E N D
Engenharia de Software Orientada a Agentes Marco Simões (macs3) Jacques Robin (jr)
Sistema Baseado em Agentes • Abstração principal: Agente • Sistemas Multi-Agentes(SMAs): agentes com capacidade de socialização • Agente: • Autonomia • Reatividade • Pró-Atividade • Capacidade de Socialização
Agentes x Objetos • Objetos= entidades computacionais que encapsulam algum estado, são capazes de executar ações sobre este estado e comunicam-se através de passagem de mensagens • Diferenças entre Agentes e Objetos: • Grau de Autonomia • Comportamento reativo, pró-ativo e social • Sistemas Multi-Agentes são inerentemente multithreaded
Requisitos Básicos de um Ambiente de Desenvolvimento de SMAs • Linguagem de Comunicação entre Agentes • FIPA • KQML • Protocolos de Comunicação • Forma de comunicação (passagem de mensagens, invocação de métodos, etc) • Modo de passagem de mensagens: unicast, broadcast ou multicast • Protocolo de Transporte/Rede – Ex: TCP/IP • Protocolos de Coordenação • Interação Homem-Agente
Requisitos Desejáveis em um Ambiente de Desenvolvimento de SMAs • Atitudes Mentais (crenças, desejos e intenções) • Capacidade de Raciocínio • Planejamento • Meta-Gerenciamento • Modelo interno do próprio agente e de outros agentes • Comportamento Emocional • Adaptabilidade • Aprendizagem
SMAs e Engenharia de Software • Metodologias • Análise Ontológica • Especificações • Linguagens e Notações • Verificação • Prototipação • Simulação
Metodologias para Engenharia de Sistemas Multi-Agentes • São baseadas em metodologias e paradigmas existentes: • Orientação a Objetos • Engenharia de Conhecimentos • Métodos Formais
Metodologias baseadas em Orientação a Objetos • Semelhança entre os paradigmas orientados a Agentes e orientados a Objetos • É comum o uso de LPOO para implementar sistemas multi-agentes • Popularidade das metodologias OO • Mensagens entre Agentes podem ser de vários tipos e não apenas invocação de métodos • Metodologias OO não especificam como modelar o estado mental e comportamento social necessários para os agentes
OMT – Object Modeling Technique • Um dos predecessores dos métodos baseados em UML • 4 estágios • Análise • Modelo de objetos • Modelo dinâmico • Modelo funcional • Projeto do Sistema • Projeto dos Objetos • Implementação
OMT: Diagramas • Modelo de Objetos • Diagrama de Classes • Modelo Dinâmico • Diagrama de Estados • Modelo Funcional • Diagrama de Fluxo de Dados
Cartões CRC(Class, Responsibility, Collaborator) • Ferramenta utilizada para modelar as classes durante a modelagem OO de um sistema • São uma espécie de Cartão de Índice contendo as seguintes informações: • Nome: o nome da classe • Responsabilidades: o que as instâncias da classe devem saber ou fazer • Colaboradores: Outras classes envolvidas na satisfação das responsabilidades • Descrição: descrição textual sobre a classe e detalhes de implementação • Ancestral: descrição das superclasses
IDEF - Integration Definition for Function Modelling 1/2 • É uma abordagem estruturada para modelagem e análise corporativa • Padronizada pelo NIST(National Institute of Standards and Technology) • Modelos: • IDEF0- modelagem das decisões e ações de uma organização ou sistema • IDEF1 – modelagem da informação e seus relacionamentos
IDEF - Integration Definition for Function Modelling 2/2 • Modelos (cont.) • IDEF1x – método para projeto de bases de dados relacionais • IDEF3 • Modelo de processos • Captura relações de precedência e causalidade • IDEF4 – projeto de sistemas OO • IDEF5 – descrição de ontologias
CIMOSA - Computer Integrated Manufacturing Open System Architeture
Projeto e Análise Orientada a Agentes por Burmeister • Três Modelos: • Modelo de Agente: • identifica os agentes(estrutura interna) e seus ambientes utilizando uma extensão dos cartões CRC para incluir atributos referentes a crenças, motivações, planejamento e cooperação • Modelo Organizacional: • descreve os relacionamentos(herança e papéis na organização) entre os agentes através de diagramas na notação OMT(Object Modelling Technique) • Modelo de Cooperação: • interações entre os agentes são identificadas e incluindo os parceiros de cooperação e os tipos de mensagens e protocolos utilizados
Técnica de Modelagem de Agentes para Sistemas de Agentes BDI 1/2 • Baseada na experiência de desenvolvimento de SMAs no AAII(Australian AI Institute) • Visão Externa: • Decomposição do sistema em agentes e suas respectivas interações • Modelo de Agentes: • descreve a hierarquia e relacionamentos entre classes de agentes e define as instâncias destas classes • Modelo de Interação: • descreve as responsabilidades, serviços e interações entre agentes e sistemas externos • Utiliza notação OMT para modelar hierarquia
Técnica de Modelagem de Agentes para Sistemas de Agentes BDI 2/2 • Visão Interna: • Modelagem de cada classe de agente BDI • Modelo de Crenças: • descreve as crenças sobre o ambiente • Modelo de Objetivos: • descreve os objetivos que um agente pode adotar e os eventos aos quais pode responder • Modelo de Planos: • descreve os planos que um agente pode utilizar para atingir seus objetivos • Notação OMT para modelar Crenças sobre cada objeto do ambiente
MASB: Multi-Agent Scenario-Based Method 1/3 • Aplica-se a SMAs no campo de trabalho cooperativo • Análise: • Descrição do Cenário: • identificação, usando linguagem natural, dos papéis desempenhados pelos agentes humanos e de software, dos objetos do ambiente e os cenários típicos • Descrição Funcional de Papéis: • descrição dos papéis utilizando diagramas de comportamento que descrevem os processos, as informações relevantes e as interações entre agentes • Modelo Conceitual: • modelagem dos dados e do conhecimento utilizado pelo agente utilizando diagramas entidade-relacionamento(ou diagramas OO) e diagramas de ciclo de vida
MASB: Multi-Agent Scenario-Based Method 2/3 • Análise: • Modelo de Interação: • simulação e definição das diferentes interfaces para interação homem-máquina em cada cenário • Projeto: • Descrição da Arquitetura e Cenário: • seleção dos cenários que serão implementados e os papéis desempenhados pelos agentes nestes cenários • Modelo de Objetos: • refinamento do modelo conceitual definindo hierarquias, atributos e procedimentos
MASB: Multi-Agent Scenario-Based Method 3/3 • Modelo de Agentes: • especificação dos elementos definidos no modelo conceitual como estruturas de crenças utilizando uma notação gráfica proposta para representar o processo de decisão do agente
Metodologia Orientada a Agentes para Modelagem Corporativa 1/3 • Propõe a integração de metodologias OO (OOSE – Object Oriented Software Engineering) com metodologias de modelagem corporativa • Metodologias de modelagem corporativa: • IDEF – Integration Definition for Function Modelling • CIMOSA - Computer Integrated Manufacturing Open System Architeture
Metodologia Orientada a Agentes para Modelagem Corporativa 2/3 • Modelo Funcional: • descreve as funções(entradas, saídas, mecanismos e controle) utilizando diagramas IDEF0 • Modelo de Casos de Uso: • descreve os atores envolvidos em cada função utilizando a notação de casos de uso da OOSE • Modelo Dinâmico: • análise das interações entre objetos em que os casos de uso são representados como diagramas de eventos
Metodologia Orientada a Agentes para Modelagem Corporativa 3/3 • Sistema Orientado a Agentes: • Identificação dos Agentes: • agentes são os atores dos casos de uso, suas funções principais são os objetivos e as possibilidades representadas como diagramas IDEF0 • Protocolos ou scripts de Coordenação: • descritos como diagramas de estado • Invocação de Plano: • diagramas de seqüência estendem os diagramas de eventos para incluir condições indicativas de quando um plano é invocado • Crenças, Sensores e Efetuadores: • entradas das funções são modeladas como crenças ou obtidas por sensores e objetivos atingidos são modelados como alterações nas crenças ou ações via efetuadores
Metodologia GAIA • Parte de um conjunto de requisitos para um projeto suficientemente detalhado para ser implementado • Refinamentos sucessivos • Conceitos Abstratos: • utilizados durante a fase de análise para conceitualizar o sistema • Conceitos Concretos: • utilizados na fase de projeto, correspondem a elementos que estarão presentes na implementação
GAIA: Conceitos Abstratos1/2 • Organização do Sistema: • É um conjunto de papéis • Existem relacionamentos e interações entre os papéis • Vários agentes podem desempenhar um mesmo papel, assim como um agente pode desempenhar vários papéis
GAIA: Conceitos Abstratos2/2 • Atributos de um papel: • Responsabilidades: determinam a funcionalidade • Propriedades liveness: provocar a ocorrência de “alguma coisa boa” • Propriedades de segurança: garantir a não-ocorrência de “alguma coisa ruim” • Permissões: • direitos associados a um papel • Atividades: • ações privadas, i.e., não há interações com outros agentes • Protocolos: • definem as formas de interação do papel
GAIA: Conceitos Concretos • Tipos de Agentes • Serviços • Conhecimento
AUML: Agent UML • Modificações propostas na UML padrão: • Suporte para expressar linhas de interação concorrentes(ex: broadcast) visando permitir a modelagem de protocolos de agentes • Uma noção de papel que estende a que é fornecida na UML, permitindo a um agente desempenhar vários papéis • A OMG(Object Management Group) e a FIPA(Foundation for Intelligent Physical Agents) estão trabalhando no desenvolvimento de notações baseadas em UML para modelagem de Agentes • Grupo Agent UML: http://www.auml.org
Metodologias Baseadas em Engenharia de Conhecimento • Agentes possuem características cognitivas e EC pode ser usada para modelar o conhecimento do agente • Experiência prévia • Bibliotecas de ontologias e métodos de solução de problemas podem ser reutilizadas • Não englobam os aspectos de distribuição e socialização dos agentes • Não englobam os comportamentos reativo e pró-ativo dos agentes
CommonKADS • Principal metodologia que suporta Engenharia de Conhecimento estruturada • Utiliza fórmulas e ontologias para representar o conhecimento • Utiliza diagramas baseados em UML • Diagrama de classes • Diagrama de estados • Diagrama de atividades