Engenharia de Software Orientada a Agentes

64
Engenharia de Software Orientada a Agentes Marco Simões (macs3) Jacques Robin (jr)

description

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. - PowerPoint PPT Presentation

Transcript of Engenharia de Software Orientada a Agentes

Page 1: Engenharia de Software Orientada a Agentes

Engenharia de Software Orientada a Agentes

Marco Simões (macs3)

Jacques Robin (jr)

Page 2: Engenharia de Software Orientada a Agentes

2

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

Page 3: Engenharia de Software Orientada a Agentes

3

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

Page 4: Engenharia de Software Orientada a Agentes

4

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

Page 5: Engenharia de Software Orientada a Agentes

5

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

Page 6: Engenharia de Software Orientada a Agentes

6

SMAs e Engenharia de Software

Metodologias Análise Ontológica Especificações

– Linguagens e Notações

Verificação Prototipação Simulação

Page 7: Engenharia de Software Orientada a Agentes

7

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

Page 8: Engenharia de Software Orientada a Agentes

8

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

Page 9: Engenharia de Software Orientada a Agentes

9

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

Page 10: Engenharia de Software Orientada a Agentes

10

OMT: Diagramas

Modelo de Objetos– Diagrama de Classes

Modelo Dinâmico– Diagrama de Estados

Modelo Funcional– Diagrama de Fluxo de Dados

Page 11: Engenharia de Software Orientada a Agentes

11

OMT: Diagrama de Classes

Page 12: Engenharia de Software Orientada a Agentes

12

OMT: Diagrama de Estados

Page 13: Engenharia de Software Orientada a Agentes

13

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

Page 14: Engenharia de Software Orientada a Agentes

14

Cartões CRC: Exemplo

Page 15: Engenharia de Software Orientada a Agentes

15

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

Page 16: Engenharia de Software Orientada a Agentes

16

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

Page 17: Engenharia de Software Orientada a Agentes

17

Exemplo de Diagrama IDEF0

Page 18: Engenharia de Software Orientada a Agentes

18

CIMOSA - Computer Integrated Manufacturing Open System Architeture

Page 19: Engenharia de Software Orientada a Agentes

19

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

Page 20: Engenharia de Software Orientada a Agentes

20

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

Page 21: Engenharia de Software Orientada a Agentes

21

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

Page 22: Engenharia de Software Orientada a Agentes

22

BDI: Modelo de Agentes

Page 23: Engenharia de Software Orientada a Agentes

23

BDI: Modelo de Crenças

Page 24: Engenharia de Software Orientada a Agentes

24

BDI: Modelo de Planos

Page 25: Engenharia de Software Orientada a Agentes

25

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

Page 26: Engenharia de Software Orientada a Agentes

26

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

Page 27: Engenharia de Software Orientada a Agentes

27

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

Page 28: Engenharia de Software Orientada a Agentes

28

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

Page 29: Engenharia de Software Orientada a Agentes

29

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

Page 30: Engenharia de Software Orientada a Agentes

30

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

Page 31: Engenharia de Software Orientada a Agentes

31

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

Page 32: Engenharia de Software Orientada a Agentes

32

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

Page 33: Engenharia de Software Orientada a Agentes

33

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

Page 34: Engenharia de Software Orientada a Agentes

34

GAIA: Conceitos Concretos

Tipos de Agentes

Serviços

Conhecimento

Page 35: Engenharia de Software Orientada a Agentes

35

GAIA: definição de papéis

Page 36: Engenharia de Software Orientada a Agentes

36

GAIA: definição de protocolos

Page 37: Engenharia de Software Orientada a Agentes

37

GAIA: Modelo de Agentes

Page 38: Engenharia de Software Orientada a Agentes

38

GAIA: Modelo de Aquisição

Page 39: Engenharia de Software Orientada a Agentes

39

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

Page 40: Engenharia de Software Orientada a Agentes

40

AUML: Representação do protocolo Contract Net

Page 41: Engenharia de Software Orientada a Agentes

41

AUML: Flexibilidade através do aninhamento de pacotes

Page 42: Engenharia de Software Orientada a Agentes

42

AUML: instanciando um template

Page 43: Engenharia de Software Orientada a Agentes

43

AUML: interação entre agentes

Page 44: Engenharia de Software Orientada a Agentes

44

AUML: Concorrência

Page 45: Engenharia de Software Orientada a Agentes

45

AUML: Diagramas de Colaboração

Page 46: Engenharia de Software Orientada a Agentes

46

AUML: Diagramas de Atividade

Page 47: Engenharia de Software Orientada a Agentes

47

AUML: Diagramas de Estado

Page 48: Engenharia de Software Orientada a Agentes

48

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

Page 49: Engenharia de Software Orientada a Agentes

49

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

Page 50: Engenharia de Software Orientada a Agentes

50

CommonKADS: Modelos

Page 51: Engenharia de Software Orientada a Agentes

51

Metodologia CoMoMAS1/2

Extensão da metodologia CommonKADS Modelos:

– Modelo de Agentes: modelo principal; define a arquitetura dos agentes e o seu

conhecimento

– Modelo de Especialização: descreve as competências cognitiva e reativa do agente.

– Modelo de Tarefas: descreve a decomposição de tarefas

Page 52: Engenharia de Software Orientada a Agentes

52

Metodologia CoMoMAS2/2

– Modelo de Cooperação: descreve a cooperação entre agentes utilizando métodos

de resolução de conflitos e conhecimento cooperativo, além dos aspectos de comunicação

– Modelo de Sistema: define aspectos organizacionais da sociedade de agentes;

integra modelo organizacional e aspectos arquiteturais do modelo de projeto do CommonKADS

– Modelo de Projeto: Define os requisitos de projeto do SMA

Page 53: Engenharia de Software Orientada a Agentes

53

CoMoMAS: o conjunto de modelos

Page 54: Engenharia de Software Orientada a Agentes

54

CoMoMAS: exemplo de modelo de projeto

Page 55: Engenharia de Software Orientada a Agentes

55

Metodologia MAS-CommonKADS1/4

Adiciona técnicas de metodologias OO e de Engenharia de Protocolos ao CommonKADS

Fase de Conceitualização: – coleta informal de requisitos– Casos de Uso

Modelos utilizados na Análise e Projeto: para cada modelo são definidas as entidades e os relacionamento entre elas

Page 56: Engenharia de Software Orientada a Agentes

56

Metodologia MAS-CommonKADS2/4

Modelos:– 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

Page 57: Engenharia de Software Orientada a Agentes

57

Metodologia MAS-CommonKADS3/4

– 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 tecnicas de descrição formal MSC(Message Sequence Charts) e SDL(Specification and Description Language)

Page 58: Engenharia de Software Orientada a Agentes

58

Metodologia MAS-CommonKADS4/4

Modelos:– Modelo de Organização:

descreve o ambiente em que o SMA será introduzido e a sociedade de agentes utiliza uma extensão do modelo OMT

– Modelo de Comunicação: detalha as interações homem-software

– Modelo de projeto: reúne os modelos anteriores Projeto de aplicação: composição/decomposição dos agentes da

fase de análise Projeto de Arquitetura: projeto de aspectos relevantes da rede de

agentes Projeto de plataforma: seleção da plataforma de desenvolvimento

para cada arquitetura

Page 59: Engenharia de Software Orientada a Agentes

59

DESIRE

Um Framework para projeto e especificação formal de sistemas composicionais

Provê uma notação gráfica para especificar estes sistemas

Possui um editor gráfico e outras ferramentas para suportar o desenvolvimento de sistemas de agentes

Page 60: Engenharia de Software Orientada a Agentes

60

A metodologia Cassiopeia

Método bottom-up O método inicia pelos comportamentos requeridos

para atingir algum objetivo Passos:

– Identificar comportamentos elementares a partir do objetivo global do sistema

– Identificar os relacionamento entre estes comportamentos– Identificar os comportamentos organizacionais do sistema

Utilizado em estudo de caso com o RoboCup

Page 61: Engenharia de Software Orientada a Agentes

61

Métodos Formais

Especificação:– Lógica Modo-Temporal– Dificuldade em fazer refinamentos formalmente

Execução Direta das Especificações– Concurrent METATEM– Execução de especificações em lógica temporal– Comunicação por broadcast assíncrono

Compilação das Especificações– Eficiência em tempo de execução– Raciocínio em tempo de compilação

Page 62: Engenharia de Software Orientada a Agentes

62

Agentes em Z

Framework desenvolvido por Luck & d’Inverno Hierarquia em 4 camadas:

– Entidades: objetos inanimados– Objetos: possuem capacidades (ex: tabela suporta

entidades ou outros objetos)– Agentes: objetos com objetivos– Agentes autônomos: agentes com motivações

Implementação OO

Page 63: Engenharia de Software Orientada a Agentes

63

Métodos Formais: compilação das especificações

Paradigma do Autômato Situado– Agente divido em duas partes: percepção e ação– Programa RULER recebe uma especificação

declarativa da percepção, compilando-a para um autômato finito

– O programa GAPPS recebe regras de especificação de objetivos(ações) gerando um cojunto de regras situação-ação

Page 64: Engenharia de Software Orientada a Agentes

64

Programação Orientada a Agentes

Linguagens e API´s:– Jackal– JatLite– Aglets– Telescript

Ambientes de Desenvolvimento– AgentBuilder