1 / 52

Engenharia de Software Orientada a Agentes

Engenharia de Software Orientada a Agentes. Renata S. S. Guizzardi. Resumo. Por que Engenharia de Software orientada a Agentes? Agentes x Objetos Metodologias de ESOA Programação Orientada a Agentes. Duas Visões.

leland
Download Presentation

Engenharia de Software Orientada a Agentes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Engenharia de Software Orientada a Agentes Renata S. S. Guizzardi Inteligência Artificial

  2. Resumo • Por que Engenharia de Software orientada a Agentes? • Agentes x Objetos • Metodologias de ESOA • Programação Orientada a Agentes Inteligência Artificial

  3. Duas Visões • Inteligência Artificial: enfatiza o comportamento flexível e inteligente dos agentes, vistos como entidades autônomas, de comportamentos reativos e proativos, e capazes de interagir com outros agentes e aprender • Engenharia de Software: agentes são usados como modelo para desenvolver sistemas. • Sistema Multiagentes: grupo de entidades ativas (agentes), cada um tendo seus objetivos e comportamentos próprios. A soma dos comportamentos individuais dá ao sistema um comportamento mais complexo. Inteligência Artificial

  4. O que é um agente? Um sistema computacional encapsulado, situado em um ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos. Inteligência Artificial

  5. O que é um agente? Um sistema computacional encapsulado, situado em um ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos. • É um componente com interface bem definida. Inteligência Artificial

  6. O que é um agente? Um sistema computacional encapsulado, situado em um ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos. • É um componente com interface bem definida. • Interage com o ambiente, percebendo-o a partir de sensores e agindo sobre ele para modificá-lo. Inteligência Artificial

  7. O que é um agente? Um sistema computacional encapsulado, situado em um ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos. • É um componente com interface bem definida. • Interage com o ambiente, percebendo-o a partir de sensores e agindo sobre ele para modificá-lo. • Tem controle sobre seu estado e seu comportamento. Inteligência Artificial

  8. O que é um agente? Um sistema computacional encapsulado, situado em um ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos. • É um componente com interface bem definida. • Interage com o ambiente, percebendo-o a partir de sensores e agindo sobre ele para modificá-lo. • Tem controle sobre seu estado e seu comportamento. • É, ao mesmo tempo: • Reativo: reage a mudanças no ambiente; • Proativo: toma iniciativas em busca de seus objetivos. Inteligência Artificial

  9. O que é um agente? Um sistema computacional encapsulado, situado em um ambiente e capaz de realizar ações autônomas e flexíveis nesse ambiente em busca de seus objetivos. • É um componente com interface bem definida. • Interage com o ambiente, percebendo-o a partir de sensores e agindo sobre ele para modificá-lo. • Tem controle sobre seu estado e seu comportamento. • É, ao mesmo tempo: • Reativo: reage a mudanças no ambiente; • Proativo: toma iniciativas em busca de seus objetivos. • Projetados para realizar um conjunto de objetivos. Inteligência Artificial

  10. Engenharia de Software Orientada a Agentes (ESOA) • Adotar uma abordagem orientada a agentes para a engenharia de software significa decompor o problema em múltiplos componentes autônomos e interativos que têm objetivos específicos a atingir. • As principais abstrações são: • Agentes • Interações • Organizações Inteligência Artificial

  11. Agentes x Objetos • Nível de autonomia: • objetos: estado; • agentes: estado e comportamento. • Mensagens: • objetos: invocação de métodos; • agentes: mensagens em uma linguagem de comunicação de agentes (ACL – Agent Communication Language). • Comportamentos: • objetos: reação a eventos; • agentes: comportamentos + flexíveis (reativos, proativos e sociais). • Controle: • objetos: thread comum aos demais objetos do sistema; • agentes: thread único. Inteligência Artificial

  12. Agentes x Objetos (2/2) • OA é uma evolução da OO? Há vantagens efetivas em usar agentes ao invés de objetos? • Visão conciliatória: • a OA é apenas um outro paradigma. • OA//OO: desenvolvimentos paralelos • Gastos exagerados de empresas com mudança de paradigmas não se justificam. • O domínio e/ou situação em que o paradigma será aplicado precisam ser analisados. • Pesquisas/desenvolvimentos em OO influenciam a OA, ex. frameworks de desenvolvimento, metodologias etc. Inteligência Artificial

  13. Principais Áreas de Aplicação • Características do domínio: domínios complexos, com distribuição de recursos, de controle etc. • ambientes organizacionais • telemedicina • informática educativa • … • Características do sistema • sistemas distribuídos • sistemas adaptativos • sistemas com capacidade de raciocínio • integração de sistemas legados • … Inteligência Artificial

  14. Áreas Menos Indicadas • Domínios restritos e bem definidos • Sistemas puramente reativos, com funcionalidades bem conhecidas • Sistemas operacionais • Sistemas standalone • … Inteligência Artificial

  15. Metodologias de Desenvolvimento OA • Gaia • ROADMAP • OperA • Prometheus • Tropos • AORML • Message/UML • AUML • Mas-CommonKADS • … Forte Influência de OO + métodos formais Forte Influência de análise organizacional Baseadas em UML Forte Influência de sistemas baseados em conhecimento (IA) Inteligência Artificial

  16. Novos Conceitos, nova maneira de pensar sobre desenvolvimento... • Gaia/Roadmap/OperA: papéis, responsabilidades, permissões... • Tropos: ator, objetivo, plano, recurso... • Message/UML: agente, organização, papel, recurso, interação • AORML: agente, objeto, relacionamento, crença, evento, mensagem... Inteligência Artificial

  17. Tendências • O projeto detalhado é frequentemente feito em OO. • Comparar metodologias existentes para especificar em que domínios ou situações são adequadas. • Combinar diferentes abordagens (method engineering, MDA) • ex. Roadmap+Prometheus, ARKnowD, Open etc. • Talvez uma linguagem/metodologia unificada para OA??? Inteligência Artificial

  18. Combinando Agentes e Objetos • Entidades ativas vs. entidades passivas do domínio. • Objetos também podem representar crenças dos agentes. • Combinação de técnicas apropriadas a cada paradigma. • Passagem mais suave para o projeto detalhado, caso uma tecnologia OO seja escolhida para implementação. Inteligência Artificial

  19. Metodologia Gaia O sistema multiagentes pode ser visto como uma organização, em que os agentes assumem diferentes papéis, que têm um certo relacionamento, uns com os outros, e que participam em interações sistemáticas com os demais papéis. Inteligência Artificial

  20. Gaia - Análise • A fase de análise dedica-se à compreensão dessa organização: • modelo de papéis • modelo de interação. • Três passos: • identificar os papéis do sistema (resultado: protótipo do modelo de papéis); • para cada papel, identificar e documentar os protocolos associados (resultado: um modelo de interação); • usando o modelo de protocolos como uma base, elaborar o modelo de papéis (resultado: um modelo de papéis completamente elaborado); Inteligência Artificial

  21. Gaia – Modelo de Papéis • Atributos de um papel: • Responsabilidades: determinam a funcionalidade • Propriedades vitais: indicam o que o agente deve fazer. • Propriedades de segurança: tratam as exceções. • 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 Inteligência Artificial

  22. Gaia – Modelo de Papéis Inteligência Artificial

  23. Gaia – Modelo de Interação • Atributos de um protocolo: • proposta - descrição textual breve da natureza da interação; • iniciador - papel (ou papéis) responsáveis por iniciar a interação; • respondedor - papel (ou papéis) com que o iniciador interage; • entradas - informação utilizada pelo iniciador ao realizar o protocolo; • saídas - informação suprida pelo/para o respondedor durante o curso de interação; • processamento: descrição textual breve de qualquer processamento que o iniciador do protocolo realiza durante o curso da interação. Inteligência Artificial

  24. Gaia – Modelo de Interação Inteligência Artificial

  25. Gaia - Projeto O objetivo é transformar os modelos da análise em modelos que tenham um nível suficientemente baixo nível de abstração que permita que técnicas tradicionais de projeto (incluindo técnicas da orientação a objetos) possam ser aplicadas para implementar agentes. Inteligência Artificial

  26. Gaia – Modelos de Projeto • Três modelos: • Modelo de agentes: • documenta os vários tipos de agentes que serão usados no sistema (i.e. que papéis ele representa), e as instâncias desses tipos de agentes. • Modelo de serviços: • identifica os serviços associados a cada papel, especificando suas propriedades. • Modelo de conhecimento: • define os links de comunicação existentes entre os tipos de agentes. Inteligência Artificial

  27. Modelo de Agentes Inteligência Artificial

  28. Modelo de Serviços Inteligência Artificial

  29. Modelo de Conhecimento Inteligência Artificial

  30. AUML: Agent UML • Por que estender UML para MAS? • 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 • Grupo Agent UML: http://www.auml.org Inteligência Artificial

  31. AUML: Representação do protocolo Contract Net Inteligência Artificial

  32. aquisição fornecimento corretor varejista atacadista Solicita Proposta requisição proposta informação Uso de Pacotes Inteligência Artificial

  33. TEMPLATE DO CENÁRIO COMPRADOR /VENDEDOR Inteligência Artificial

  34. NOVO PACKAGE USANDO O TEMPLATE PAPÉIS RESTRIÇÕES AÇÕES Inteligência Artificial

  35. Interações entre Agentes • AUML utiliza os Diagramas de Interação para modelar a natureza dinâmica da interação entre agentes: • Diagrama de Seqüência • Seqüência cronológica da comunicação • Diagrama de Colaboração • Associação entre agentes • Diagrama de Atividades e StateCharts • Fluxo do processo de comunicação dos agentes. Inteligência Artificial

  36. AUML: interação entre agentes Inteligência Artificial

  37. AUML: Concorrência Inteligência Artificial

  38. Agente e Papéis • PAPÉIS diferentes para um agente é: • satisfazer propriedades distintas (crenças) • ter interfaces distintas(comunicação) • comportamento distintos(pergunta, resposta) • Dentro de um protocolo de interação um agente pode executar papéis distintos que estão especificados no contrato de interação do protocolo(contract-net). Inteligência Artificial

  39. Agente e Papéis Inteligência Artificial

  40. Diagramas de Colaboracão 2: questiona Agentes <<troca de papel>> B/ Analizador do concorrente B/ Fornecedor C/ Concorrente <<troca de papel>> 3: 4: 1.1: requisita <<troca de papel>> 5: proposta 7: confirma 9: falha 1.2: requisita A/ Cliente C/ Fornecedor1 A/ Negociador C/ Fornecedor2 12: requisita 14: 6: 10: recusa 1.3: requisita 13: entrega D/ Devedor D/ Fornecedor 8: confirma 11: entrega Inteligência Artificial

  41. Diagramas de Atividade • Expressa operações e eventos disparados pela atividade. • Representa de maneira explícita o controle sobre linhas de execução. • Útil para complexas interações entre protocolos que envolvem processamento concorrente. Inteligência Artificial

  42. Diagramas de Atividade Rede de Comércio Eletrônico Cliente Vendedor Fabricante Solicita Pedido ProcessaPedido Cria Cotação Aceita Pedido Aceita Cotação Compara Pedido e Cotação Fecha Pedido AtualizarCotação Pagar Pedido Inteligência Artificial

  43. Aberto A: falha Fechado A: requisita B: confirma A: paga Proposto Requerido Pago confirmado entregue B: entrega A: falha A: falha Fracassado B: cancela Cancelado B: recusa A: falha B: recusa Rejeitado Diagramas de Estado Inteligência Artificial

  44. AUML: Diagramas de Colaboração Inteligência Artificial

  45. AUML: Diagramas de Atividade Inteligência Artificial

  46. AUML: Diagramas de Estado Inteligência Artificial

  47. Metodologias Baseadas em Engenharia de Conhecimento • Agentes possuem características cognitivas e EC pode ser usada para modelar o conhecimento do agente • 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 Inteligência Artificial

  48. Metodologia MAS-CommonKADS • Extensão de CommonKADS para Sistemas Multiagentes. • Fase de Conceitualização: • Coleta informal de requisitos • Casos de Uso • Fases de Análise e Projeto: compostas de vários modelos, cada um modelando uma visão do sistema. Inteligência Artificial

  49. MAS-CommonKADS - Análise • Modelo de Agentes: • descreve as características principais dos agentes incluindo capacidades cognitivas, habilidades(sensores/efetuadores), serviços, objetivos • Modelo de Tarefas: • descreve as tarefas e sua decomposição Inteligência Artificial

  50. MAS-CommonKADS - Análise • Modelo de Perícia: • descreve o conhecimento necessário para os agentes atingirem seus objetivos, utilizando a abordagem do KADS • Modelo de Coordenação: • descreve as conversações entre agente, seus protocolos e capacidades requeridas; utiliza técnicas de descrição formal MSC(Message Sequence Charts) e SDL(Specification and Description Language) Inteligência Artificial

More Related