Agent UML - professor.unisinos.brprofessor.unisinos.br/jcgluz/disciplina-aose/apres-auml.pdf ·...

23
Agent UML

Transcript of Agent UML - professor.unisinos.brprofessor.unisinos.br/jcgluz/disciplina-aose/apres-auml.pdf ·...

Agent UML

O que é um agenteUm agente é um sistema de hardware ou software situado em um ambiente que foi projetado para atingir seus propósitos e que apresenta as seguintes propriedades:

oAutonomiaoReatividadeoProatividadeoInteração social

[Wooldridge et al, 1995]

Abordagens mais fortes da noção de agência

Seguindo uma abordagem mais forte da noção de agência, um agente também poderia apresentar as seguintes propriedades:

Noções Mentalísticas:o Crenças (Beliefs)o Desejos (Desires)o Intenções (Intentions)

Noções Emocionais:o Confiança (Trust)o Amizade (Friendship)o Desconfiança (Suspiciousness)

[Wooldridge et al, 1995]

Quando a noção de agente é útil

A noção de agente é adaptável à muitos sistemas de HW e SW, mas é particularmente útil nos contexto onde a complexidade é suficientemente alta para a que a definição convencional de objetos não seja suficiente para descrever o sistema.

O foco está no comportamento dos agentes e não no conteúdos dos objetos (seus atributos e métodos).

Programação Orientada a Agentes está situada em um nível de abstração mais alto que a Programação Orientada a Objetos.

Programação Orientada a Agentes (1)

“Agent-oriented programming” (AOP) é umaespecialização de “object-oriented programming” (OOP) quando se leva em conta a forma que um sistema computacional é concebido:

“The computational system is seen as composed of communicating modules, each with its own way of handling messages.” [Shoham, 1993]

O estado (mental) dos módulos (agentes) consistede componentes tais como crenças, capacidades e intenções.

Uma computação consiste de agentes que:Informam outros agentes sobre fatosOferecem e solicitam (request) serviçosAceitam ou recusam propostasCompetem pelo acesso aos recursos compartilhadosColaboram para atingir metas (objetivos) comuns

Honestidade, consistência, …NenhumaRestrições sobre os métodos

Inform, request, offer, promise, decline, ...

Sem restriçõesTipos de mensagens

Invocação de métodos por trocas de mensagens

Invocação de métodos por trocas de mensagens

Processo de computação

Crenças, compromissos,escolhas, decisões, …

Sem restriçõesParâmetros que definem o estado da unidade básica

AgenteObjetoUnidade básica

AOPOOP

Programação Orientada a Agentes (2)

O que é Agent UML

Agent UML é uma notação para o desenvolvimentoe modelagem de sistemas orientados a agentes.

Ela consiste na utilização da linguagem de modelagem UML estendida para representaragentes, seus comportamentos e interações.

AUML não é restrita ao uso de UML. Outras abordagems de modelagem podem ser usadas quando fizer sentido.

Quem se interessa por AUML

OMG Special Interest OMG Special Interest GroupGroup:: recomenda padrões (standards) para tecnologia de agentes, quando apropriado (www.omg.org)

FIPA FIPA ModelingModeling TechnicalTechnical Commitee (IEEE):Commitee (IEEE):tem o objetivo de desenvolver o padrão AUML(www.auml.org)

OutrasOutras metodologiasmetodologias:: MESSAGE, Gaia, Tropos, Prometheus, MaSE, ...

Características comuns dos agentes

Agentes compartilham algumas características comuns:

Identificador (Identifier)• identifica um agente em um sistema multiagente

Papel (Role)• define o comportamento do agente em uma sociedade (ex. Comprador,

Vendedor, etc.)Organização (Organization)

• define os relacionamentos entre os papeis (similar as organizações human as ou animais como hierarquias, mercados, grupos de interesse, rebanhos, etc.)

Capacidade (Capacity)• especifica o que um agente é capz de fazer e sob que condições

Servico (Service)• descreve uma atividade que um agente pode executar é é fornecida para

outros agentes

Representação de Agentes

Diagramas de Classe UML podem ser usados para representar a visão estática dos agentes.

Organization

organization 1, organization 2, …, organization norg dynamic 1, org dynamic 2, …, org dynamic n

Role

role 1, role 2, …, role nrole dynamic 1, role dynamic 2, …, role dynamic n

<<agent>> nome-do-agente

Representação das Capacidades (1)

Uma capacidade é composta das seguintes partes:

Entrada (Input)o O que o agente deve receber para conseguir executar sua tarefa

Saída (Output)o O que esta capacidade gera como resultado do trabalho

Restrições sobre as entradas (Input constraint)o Condições que se espera valerem antes da capacidade ser executada

Restrições nas saídas (Output constraint)o Condições que se espera estarem satisfeitas após a capacidade ter sido

executada

Restrições de entrada-saída (Input-output constraint)o Condições que devem ser satisfeitas durante operações de entrada e saída

Descrição (Description)o Uma descrição em linguagem natural da capacidade

Representação das Capacidades (2)

DescriptionEsta capacidade faz a soma de dois inteiros e retorna um inteiro

Outputs:Integer

Inputx,y:Integer

<<capability>> addition

Protocolenter-society, exit-societycompute

Organizationcalculator

Roleaddition, subtractionrd 1

<<agent>> sum

Input-Output Constraintx-y >=0

Input Constraintx>=0, y>=0

DescriptionEsta capacidade faz a diferença entre dois inteiros e retorna um inteiro

Outputd:Integer

Inputx,y:Integer

<<capability>> subtraction

• Examplo de representação de capacidade:

O agente ‘sum’ tem duas capacidades expressando o fato que ele é capaz de fazer somas e subtrações

Elas podem ser definidas através de OCL ou atravésde simples expressões lógicas

Representação de Serviços (1)Um serviço é composto de:

Nome (Name)• O nome do serviço

Descrição (Description)• Descrição em linguagem natural do serviço

Tipo (Type)• O tipo do serviço

Protocolo (Protocol)• Uma lista de protocolos de interação suportados pelo serviço

Linguagem de comunicação de agentes (Agent communicationlanguage - ACL)

• A linguagem de comunicação utilizada no serviçoOntologia (Ontology)

• Uma lista de ontologias suportadas pelo serviçoLinguagem de Conteúdo (Content language)

• Uma lista de linguagens de conteúdo suportadas pelo serviçoPropriedades (Properties)

• Uma lista de propriedades que distinguem o serviço

Representação de Serviços(2)

Protocolenter-society, exit-societycompute

Organizationcalculator

Roleaddition, subtractionrd 1

<<agent>> sumDescription

Este serviço faz a adição quando solicitado pelo protocolo de requisição de adição (request-addition) e faz a subtraçào quando solicitado pelo protocolo de requisição de subtração (request-subtraction)

Typecomputation

Agent Communication LanguageFIPA-ACL

Content LanguageFIPA-SL

Ontologycomputation ontology

Protocolrequest-additionrequest-subtraction

<<service>> computation

• Examplo de representação de serviço:

O agente ‘sum’ exporta um serviço que faz adições e subtrações por demanda

Representação de Interações

Interações entre agentes podem ser representados em UML através de diagramas de sequência

Interações Concorrentes (1)

UML foi extendida pra representar ats de comunicação concorrentes enviados do agente transmissor (sender) para o agente receptor (receiver).

a) Atos comunicativos concorrentes de CA-1 a CA-n são enviados em paralelo.

b) Uma seleção dos n atos é enviaod em paralelo (zero oumais).

c) Seleção exclusiva: somente um dos atos comunicativos é enviado.

Interações Concorrentes(2)a) Um agente envia 3 CAs concorrentes para outro agente. Existem duas interpretações para o diagrama:

Cada CA é processado pelo messmo agente/papel por uma thread diferente de execuçàoCada CA é processado por um diferente papel do agente (neste caso as mensagens podem ser anotadas especificando o papel)

b) A mesma semântica de (a) mas com uma notação mais simples

c) Escolha de três diferentes atos comunicativos recebidos por três diferentes threads (ou papeis)

NOTA: cada CA concorrente pode ser enviado para diferentes agentes

Exemplo de InteraçãoO agente Comprador (Buyer) envia uma mensagem de solicitação de proposta (request-for-proposal) para o agente Vendedor (Seller)

O agente Vendedor (Seller) tem três opções até o deadline:

fazer uma propostalrecusar (com diferentes razões)dizer que não entendeu

Se o agente Vendedor (Seller) fez um a proposta, o agente Comprador (Buyer) tem a opção de aceitar ou rejeitar

Caso aceitar, o agente Vendedor (Seller) agenda a proposta informando para o Comprador (Buyer) sobre seu estado

O agente Comprador (Buyer) pode cancelar a execução da proposta em qualquer instante

Detalhando as Mensagens de Interação

Qualquer processo de interação pode ser expresso com mais detalhes.

O “refinamento” pode continuar até que o problema tenha sido suficientemente especifi-cado para gerar código.

Diagramas de atividades e de estados também podem ser usados.

Gerenciamento de Papeis

Diagramas de Sequência UML podem ser utilizados pararepresentar mudanças de papeis nos agentes.

Papel dos Objetos na AOPOs objetos podem sempre ser incluidos num sistema orientado a agentes e podem se comunicar com os agentes através de trocas de mensagens.

Referências (1)Agentes

[Wooldridge et al, 1995]Wooldridge and JenningsIntelligent Agents: Theory and PracticeKnowledge Engineering ReviewVolume 10 No 2, June 1995Cambridge University Press(www.csc.liv.ac.uk/~mjw/pubs/ker95/ker95-html.html)

[Shoham, 1993]Y. ShohamAgent-oriented programmingArtificial Intelligence60(1):51-92(http://www.ncat.edu/~esterlin/c7902s02/Notes/Shoham.pdf)

Referências (2)

Agent UMLhttp://www.auml.org/http://www.jamesodell.com/http://aot.ce.unipr.it/auml/