Linguagens de Modelagem para SMA
Viviane Torres da Silva
[email protected]
http://www.ic.uff.br/~viviane.silva/isma
Linguagens de Modelagem para SMA

Motivação: necessidade de modelagem das entidade de um SMA (agentes,
organizações, objetos,...)
– UML não dá suporte para a modelagem de SMA
– Agentes e objetos possuem características / propriedades diferentes

Objetivo: propor uma linguagem onde os elementos de primeira ordem fossem as
entidades de um SMA

Solução: linguagens de modelagem que estendem UML
– AUML, AORML, Transformação de Modelos + UML, MAS-ML, AML

.... e linguagens de modelagem que não estendem UML
– ANote
AUML
AUML – Agente UML

Primeiro objetivo era especificar protocolos de interação entre
agentes (AIP)

1o passo foi estender diagrama de seqüência de UML para
modelar as interações entre agentes

Em seguida, estenderam outros diagramas
Diagramas estendido
Diagrama de seqüência (detalhado) e colaboração
 Diagrama de atividades e de estados
 Diagrama de classes
 Diagrama de objetos
 Pacotes
 Diagrama de componentes
 Diagrama de deployment

Diagrama de sequência de UML
Tempo
(top-down)
condição de guarda
ObjetoA
mensagem síncrona
[se novo]
<<create>>
ObjetoB
objeto
mensagem
mensagem (auto delegação)
(caixa de)ativação
valor de retorno
<<destroy>>
linha de vida
símbolo de destruição
Diagrama de sequência de AUML: Modelagem de
Mensagens
Viviane / Professor : AgentUsuario
Viviane
Viviane / Professor
: AgentUsuario
<agente>/<papel> : <classe>
ato de comunicação (ato de fala)
(não chamamos de método)
Problemas: Como se modela a instância de papel?
Onde o agente está executando o papel?
Onde o agente está?
paralelismo
O inclusivo
O exclusivo
Diagrama de sequência de AUML (Exemplo)
Agente A
desempenhando o
papel customer
Agente A
desempenh
a o papel
negotiator
representação
do mudança
de papel
Problemas: Como se modela a criação de uma instância de papel?
Como se modela que o agente cancelou um de seus papéis?
Como se modela a organização onde está o agente?
Diagrama de seqüência AUML: Modelagem de
Protocolo
protocolo
ato de comunicação (ato de fala)
(não chamamos de método)
Protocolo
Indica que este protocolo
pode ser utilizado como
um template para criar
outros protocolos
Possibilidades
de comunicação
Diagrama de colaboração de UML
Objeto A
1:<create>
2:mensagem
5:retorno
3:mensagem
Objeto C
Objeto B
4:mensagem
Diagrama de colaboração de AUML (Exemplo)
representação
da mudança de papel
<agente>/<papel> : <classe>
mensagem
Diagrama de atividades de UML

Utilizado para representar as atividades e a transições entre as
atividades
Partição 1
Partição
2
agrupa as atividades
que estão relacionadas
divisão
Atividade 1
Atividade 2.1
Atividade 2.2
atividade
Atividade 2.3
Atividade 2.4
união
Atividade 4
Atividade 3
Diagrama de atividades de AUML

Utilizado para representar as atividades associadas a um
protocolo ou às atividades de um papel
papel
atividade
Problemas: Como se modela a organização onde os papéis são executados?
Diagrama de estado de UML
Estado 1
transição1
Estado 2
transição4
estado
transição2
Estado 3
transição3
Diagrama de estado de AUML

Utilizado para representar os estados do sistema e as suas
transições
estado
agente
ou papel
Diagrama de classe em UML
Classe 1
atributo1
atributo2
...
metodo1
metodo2
metodo3
...
nome da classe
atributos
métodos
Diagrama de classes
de AUML
Nome da classe de agente
e os papéis que os
agentes podem desempenhar
= atributos
comportamento público
comportamento privado
Descrição do que pode fazer
a organização onde o agente executa
e as condiciones para entrar
e sair da organização
atos de fala que podem
ser utilizados nas mensagens
que recebe e nas
mensagens que envia
Problemas: Só pode executar em uma organização?
ISMA
Se pode executar em mais de una organização, qual papel desempenha em cada uma?
Diagrama de classes
de AUML
visão da organização
visão de agente
visão da organização
visão do ambiente
Representação das
crenças e objetivos
como objetos
externos ao agente
visão de interação
visão da organização
visão de agente
Diagrama de classes de AUML
organização
Problemas: Como o agente troca de organização se
a organização é um pacote e a classe agente está
definida dentro deste pacote?
Diagrama de componentes de UML = AUML
Diagrama de implantação de UML
Diagrama de implantação de AUML
Problemas: Se na AUML os agentes podem trocar de ambiente, não deveria ser
possível modelar um agente trocar de ambiente em um diagrama de seqüência?
Representando Organizações
Problemas: Não deveria uma instância de papel ser sempre desempenhada em uma
organização?
Não deveria uma instância de papel ser sempre desempenhada por um agente?
Diagrama de atividades de AUML
organização
agente
papel
Problemas: Como se representa o ambiente?
Diagrama de classe
Os estados dos papéis
Os estados dos papéis
Os estados dos papéis
ANote
Criando a linguagem

Definir um meta-modelo conceitual

Definir visões guiadas pela abstração

Detalhar o ambiente do sistema de agentes usando
ontologia

Permitir a especificação de cenários de adaptação

Usar abstrações totalmente centradas no conceito de
agentes
ANote

Linguagem de notação lightweight e orientada a
agentes

Foco
– Especificação de sistemas com computação distribuída, agentes
e representação de conhecimento (ontologias)
– Características: fraco acoplamento de mensagens, uso de
conteúdo anotado e pouca interação homem-máquina

Objetivo
– Centrada no conceito de agentes
– Orientada a objetivos
– Visões
– Características de agentes
Meta-modelo Conceitual do ANote
ANote: Conceitos

Objetivo (Goal)
– Um propósito do sistema. define alguma funcionalidade que
deve ser entregue por um ou mais Agentes
– Formam o ponto de partida para a modelagem do SMA com o
ANote, organizados em uma hierarquia de especialização

Agente (Agent)
– Módulo que executa Ações e é também a abstração principal do
paradigma de agentes
– Pode interagir com outros Agentes
– Possui uma percepção, ou conhecimento, limitada dos Recursos
do ambiente
ANote: Conceitos

Recurso (Resource)
– Representa as entidades não-agentes que descrevem o
ambiente
– Formam o conjunto de conhecimento (dados / conteúdo) que
os Agentes manipulam enquanto executam Ações

Cenário (Scenario)
– Ilustra um comportamento (seqüência de Ações) de um Agente
enquanto este procura alcançar um Objetivo em um
determinado contexto (estado do sistema)
– Pode existir contextos normais ou variantes
ANote: Conceitos

Ação (Action)
– É uma computação que resulta em uma mudança no estado de
um Agente
– Há dois tipos de Ações: Ação_Direta (DirectAction) e
Ação_Adaptativa (AdaptiveAction)

Mensagem (Message)
– É uma passagem de informação entre dois Agentes
– Possui protocolo e é, usualmente, assíncrona
ANote: Conceitos

Organização (Organization)
– Define um grupo de Agentes que entregam um Serviço
– Serviços são entregues e Objetivos são alcançados
coletivamente pelos Agentes que constituem a Organização

Cada conceito define uma perspectiva ou visão

ANote define sete visões, cada uma com sua própria
representação (diagrama)
Visiones

Cada conceito principal define uma perspectiva ou visão

ANote define sete visiones, cada uma com uma
representação (diagrama) própria

Visões de objetivo, agente e ontologia modelam a parte
estrutural do SMA

Visões de cenário, interação, planejamento e organização
modelam a parte dinâmica do SMA
Visão de Objetivos

Oferece uma identificação inicial de uma árvore de objetivos
que descrevem as funções executadas pelos agentes

São especificados por meio de elaborações, descrições de
processo e do domínio do problema (decomposição
funcional)
Exemplo

Sistema de seguros baseado na Web

Rodadas de negociação
– Recuperação das preferências dos clientes
– Propaganda dos produtos
– Envio de propostas
– Realizar ou abortar as negociações
Visão de Objetivos
Visão de Agentes

Especifica os tipos de agentes (papéis) da solução multiagente.

Mostra os seus relacionamentos(formando a base estrutural
do sistema)

São especificados a partir da sub-divisão lógica dos
objetivos funcionais do sistema
Visão de Agentes
Visão de Ontología

Identifica os componentes não-agentes do sistema,
especificados como uma ontologia

São especificados a partir dos recursos do ambiente do
sistema, seus relacionamentos e operações (abordagem
orientada a objetos)

Notação: Diagrama de Classes de UML
Visão de Ontología
Visão de Cenários

Captura o comportamento dos agentes em contextos
específicos

Descreve como os objetivos são alcançados, mostrando a
ordenação de ações e eventos

Serve para especificar o plano usual (normal) de ação e os
caminhos alternativos (contextos emergentes)

Mostra os agentes, as interações e os planos envolvidos
para alcançar um objetivo

Notación:
– Tabla de escenarios
Visão de Cenários
Visão de Planejamento (Ação)

Especifica as ações que um agente deve percorrer para
computar um plano de ação (derivado de um cenário que
ilustrou o objetivo)

Modela a execução interna dos agentes
Visão de Planejamento (Ação)
Visão de Interação (Mensagem)

Mostra a organização estrutural dos agentes que enviam e
recebem mensagens enquanto executam planos de ações

Permite a modelagem de protocolos de interação (grafos de
conversação)
Visão de Interação (Mensagem)
Visão de Organização

Especifica uma unidade de implementação que oferece
serviços (conjunto de objetivos), acessados por uma
interface (conjunto de protocolos de mensagem)

Não existe uma abordagem para se dividir os agentes em
organizações lógicas (não é propriedade da abstração, mas
uma decisão arbitrária)
MAS-ML
MAS-ML

Estende o meta-modelo de UML com base no framework
conceitual TAO

Meta-modelo MAS-ML estende o meta-modelo de UML
– Novos estereótipos
– Novas meta-classes
MAS-ML
Camada de meta-meta-modelo
MOF
meta-meta-modelo
ER
meta-meta-modelo
instanciação
TAO
meta-modelo
UML
meta-modelo
Camada de meta-modelo
unificação
MAS-ML
meta-modelo
Camada de modelo de domínio
Camada de instância
MAS-ML
modelos
Meta-modelo de MAS-ML
Element
Leyenda
Meta-classes do meta-modelo de UML
Novas Meta-clasess
NamedElement
PackageableElement
RefinableElement
Namespace
Type
Classifier
Class
AgentClass
OrganizationClass AgentRoleClass ObjectRoleClass EnvironmentClass
Meta-modelo de MAS-ML
0..*
1 controlled
1 play
AgentClass
0..1
agent
1..*
play
0..*
play_in
0..1
agent
1 org
0..1 org
1
inhabit
Inhabit
0..*
inhabit
1 play
Play
0..* play
0..1
agentRole AgentRoleClass
0..*
play
0..1
agentRole
0..1
subOrg
1
ownership
OrganizationClass 1
owner
1 inhabit
1 inhabit
1
controller
0..*
Ownership
ownership
1
ownership
0..1
objectRole
0..1
ObjectRoleClass objectRole
1
env
EnvironmentClass
0..1
class
Class
0..1
class
0..*
control
Control
Meta-modelo de MAS-ML
Leyenda
Element
Meta-classes do meta-modelo de UML
Novas Meta-classes
NamedElement
Novos estereótipos
RefinableElement
MultiplicityElement
TypedElement
Feature
StructuralFeature
Property
Belief
Goal
AgentMesageClass
Namespace
BehavioralFeature
Operation
ActionClass
Duty
Right
PlanClass
ProtocolClass
MAS-ML

MAS-ML modela os aspectos estruturais e dinâmicos descritos
no TAO
– Aspectos estruturais: entidades, propriedades e relacionamentos
– Aspectos dinâmicos: interação entre as entidades e execuções internas

Diagramas estáticos: classes, organizações e papéis

Diagrama dinâmico: seqüência e atividades
Diagramas Estáticos
Diagrama de Classe de UML

Representa as classes e os relacionamentos entre as classes
Item
Order
User
Book
Nome_da_classe
Imported Books
Second-hand Books
atributo1
atributo2
metodo1
metodo2
metodo3
...
Diagramas para SMA

Como representar agentes, organizações, papéis e ambientes?

Como representar relacionamos específicos de SMA, como
inhabit, control e play?

Novo elemento de diagrama para representar novas entidades e
relacionamentos
Diagrama de Classes


Objetivos: representar os relacionamentos entre classes e outras
entidades do SMA e representar os relacionamentos entre
agentes, ambientes e organizações.
Classes usadas neste diagrama:
– agent class, organization class, environment class e outras definidas por
UML.

Relacionamentos usados neste diagrama:
– Aqueles já definidos por UML;
– inhabit – usado entre classes e ambientes;
– association – usado entre agente e classes, entre organizações e classes,
e entre ambientes;
– specialization – usado entre agentes, entre organizações e entre
ambientes.
Diagrama de Classes: Exemplo
Overall_evaluation
evaluation
associação
getEvaluation
getPaper
0..1
Paper
abstract
title
authors
content
getAbstract
getTitle
getAuthors
getContent
setAbstract
setTitle
setAuthors
setContent
0..*
Review
reviewer
comments
evaluation
1
1
0..3
getReviewer
getComments
getEvaluation
getPaper
setReviewer
setComments
setEvaluation
setPaper
<<main-organization>>
Conference
agregação
0..*
Workshop
0..*
Tutorial
0..*
0..*
0..*
0..*
Researcher
0..*
Student
Legend:
Object / Environment
Agent
Organization
Professor
especialização
Diagrama de Organizações

Objetivo: modelar as organizações e os relacionamentos entre
as organizações e outras entidades do SMA.

Cada diagrama de organização modela uma organização

Classes usadas neste diagrama:
– organization class, agent class, agent role class, object role class, class e
environment class.

Relacionamentos usados neste diagrama:
– ownership – usado entre organizações e papéis que a organização
define;
– play – usado entre agentes e papéis de agentes, entre sub-organizações e
papéis de agentes, e entre classes e papéis de objeto;
– inhabit – usado entre ambiente e organizações e entre ambiente e
agentes.
Diagrama de Organizações: Exemplo (parte I)
Conference_Center
Event
Workshop
Tutorial
<<main-organization>>
Conference
Chair
<<goal>> manageEvent
<<belief>> reviewers
Collecting_submitted_ papers {…}
Assigning_papers_to_reviewers {
relatePapersToReviewers,
createReviewProposal,
attributePapersToReviewers,
attributePapersWithout3ReviewersToChair }
Distributing_reviews {checkConflict,
groupReviews, informAuthors}
Collecting_camera-ready
General_Chair
_papers {…}
Leyenda:
Class / Environment class
Object role class
Author
Researcher
Organization class
Student
PC_Member
Ownership relationship
Agent role class
Play relationship
Agent class
Diagrama de Organizações: Exemplo (parte II)
Conference_Center
Blind_Review
Overall_Evaluation
Review
<<main-organization>>
Conference
Paper
Submission
Camera_Ready
Diagrama de Papéis


Objetivo: modelar os papéis e os relacionamentos entre os
papéis
Classes usadas neste diagrama:
– agent role class, object role class e class

Relacionamentos usados neste diagrama:
– control – usado entre papéis de agente;
– dependency – usado entre papéis de objeto, entre papel de agente e
papel de objeto e entre papéis de agente;
– association – usado entre papéis de objeto, entre papel de agente e papel
de objeto, entre papéis de agente e entre qualquer papel e uma classe;
– aggregation – usado entre papéis de objeto e entre papéis de agente;
– specialization – usado entre papéis de objeto e entre papéis de agente.
Diagrama de Papéis: Exemplo
Blind_Submission
Camera_Ready
paperId
paperId
getAbstract
getTitle
getContent
getPaperId
setPaperId
getAbstract
getTitle
getAuthors
getContent
getPaperId
Author
<<goal>>publishPaper
<<duty>>sendCameraReady if accepcted
<<right>>submitPaper
<<protocol>>PaperSubmission
Blind_Review
PC_Member
<<goal>>reviewPaper
Chair
<<goal>>manageEvent
<<duty>>makePreview
<<right>>refusePaper
<<protocol>> PaperDistribution
<<duty>>receivePapers,
attributePapersToReviewers,
attributePapersWithout3ReviewersToChair
informAuthorsReviews
<<protocol>>PaperSubmission
PaperDistribution
getComments
etEvaluation
getPaper
Leyenda:
Agent role class
Object role class
General_Chair
Control relationship
Association relationship
Generalization relationship
Diagramas Dinâmicos
Diagrama de Sequência de UML

Representa a interação entre os objetos e as execuções dos
métodos
Objeto A
[se novo]
<<create>>
Objeto B
mensaje
mensaje
valor de retorno
<<destroy>>
Diagrama de Sequência de MAS-ML


Objetivo: representar as interações entre as instâncias do SMA
e representar as ações internas destas instâncias.
Representar interações: troca de mensagens entre entidades
– Modelar troca de mensagem:
• Redefinir mensagens
• Criar novos estereótipos associados à mensagens
– Modelar protocolos

Representar ações internas (intra-ações):
– Modelar planos e ações
Elementos dos diagramas de sequência


Novos desenhos para representar as entidades dos SMA
Novas definições para as entidades dos SMA
Objeto
obj/role/org/env : Class/ObjectRoleClass/OrganizationClass/EnvironmentClass
Agente
agent/role/org/env : AgentClass/AgentRoleClass/OrganizationClass/EnvironmentClass
Organización org/role/org/env : OrganizationClass/AgentRoleClass/OrganizationClass/EnvironmentClass
Role
Entorno
: RoleClass
Entidad activa
Entidad pasiva
env : EnvironmentClass
env : EnvironmentClass
Redefinindo mensagens

UML: mensagens são chamada de métodos

SMA: mensagens não são diretamente mapeadas para uma
execução interna do agente (suas ações)
UML
sender
method_name ()
receiver
MAS-ML
sender
message_label (content_description)
receiver
Estereótipos de mensagens


Como representar a criação de entidades de SMA?
UML: uso do estereotipo <<create>>
– Estender para representar a criação de entidades de SMA


Como representar a destruição de entidades de SMA?
UML: uso do estereotipo <<destroy>>
– Estender para representar a destruição de entidades de SMA
Criando e destruindo entidades
Creando una organización
Anne/FruitBuyer : UserAgent/Buyer
<<create>>
FruitStore/FruitWholesale: Store/Wholesale
..
.
..
.
Destruyendo una organización - I
Anne/FruitBuyer : UserAgent/Buyer
..
.
FruitStore/FruitWholesale: Store/Wholesale
...
<<destroy>>
..
.
Destruyendo una organización - II
Anne/FruitBuyer : UserAgent/Buyer
..
.
..
.
<<destroy>>
FruitStore : Store
...
Estereótipos de mensagens

Como representar a relação entre papéis e entidades que
desempenham papéis?

<<role_commitment>>
Entidade se comprometendo com um novo
papel




Entidade cancelando papel
<<role_activate>> Entidade ativando papel
<<role_deactivate>> Entidade desativando papel
<<role_change>> Entidade mudando de papel
<<role_cancel>>
Criando papel
Bob/FruitBuyer : UserAgent/Buyer
<<role_commitment>>
..
.
Criando um papel de agente
Bob/ClothesBuyer : UserAgent/Buyer
..
.
Criando um papel de objeto
Bob/FruitBuyer : UserAgent/Buyer
<<role_commitment>>
..
.
Apple/DesirerFruit : Item/Desirer
..
.
Cancelando papel
Cancelando um papel de agente
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
..
.
Cancelando um papel de agente
Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
Cancelando um papel de objeto
Bob/FruitBuyer : UserAgent/Buyer
<<role_cancel>>
..
.
Apple/DesirerFruit : Item/Desirer
Desativando e ativando papel
Desativar um papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
..
.
Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
Activar um papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_activate>>
..
.
..
.
Mudando
de papel
Cancelando um papel e criando novo papel
Bob/FruitBuyer : UserAgent/Buyer
<<role_change>>
Bob/ClothesBuyer : UserAgent/Buyer
..
.
Cancelando um papel e ativando outro papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_change>>
..
.
Desativando um papel e criando outro papel
Bob/FruitBuyer : UserAgent/Buyer
<<role_change>>
Bob/ClothesBuyer : UserAgent/Buyer
..
.
Desativando um papel e ativando outro papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_change>>
..
.
Modelando protocolos

Um protocolo define um conjunto de mensagens que entidades
podem enviar e receber enquanto desempenhando papéis
: Seller
: Buyer
Request (ItemDescription)
papel
Proposal (ItemDescription)
AnswerProposal (RejectItemDescription)
else
AnswerProposal (AcceptItemDescription)
Inform (Bill)
Inform (Payment)
mensagem
Modelando planos e ações

Execução interna dos agentes, organizações e ambientes ativos
são definidas pela execução dos planos e ações.
: GeneralStore
: UserAgent/Buyer
Creating_seller
Execução
de um plano
Execução
de uma ação
Execução
de uma ação
if (message_label = request)
create_seller
<<create>>
: UserAgent/Seller
inform_buyer_of_seller
inform (seller_id)
else
Place-A :
VirutalMarketplace
plano
Bob/buyerOfBooks/Bookfinder/Place-A :
UserAgent/Buyer/
GeneralStore/VirtualMarketplace
Entering
organization
BrandNewBookstore/marketOfUsedBooks/Bookfinder/Place-A :
Second-handBookstore/MarketOfUsedGoods/
GeneralStore/VirtualMarketplace
Search for organization
getOrganizations()
organização
Vector
chamada de
método
Check_organization_goals
Request (OrgGoals)
Managing entrance
Get_organization_goals
Inform (OrgGoals)
Check_organization_roles
Request (OrgRoles)
ambiente
agente
Get_organization_roles
Inform (OrgRoles)
Select_role_to_play
<<role_commitment>>
Bob/buyerOfSecond-handBooks/Bookfinder/Place-A :
UserAgent/BuyerOfSecond-handBooks/
GeneralStore/VirtualMarketplace
Inform (RoleToPlay)
ação
Register_itself_in_organization
Inform (Buyer_of_second_hand_books)
esteriótipo de mensagem
Search_for_announcement
Request (Announcement)
...
Entering
organization
Diagrama de Atividades de UML

Objetivo: modelar o fluxo das actividades de um sistema
O enfoque está na sequência das atividades e não na interação
entre os objetos

Atividades: execução não atómica composta de ações

Ações: execução atómica

Diagrama de Atividades de MAS-ML




Objetivo: representar a modelagem de planos e ações de un
agente
O enfoque está na modelagem do agente e não na interação
entre os agentes
Atividades -> Planos de agentes
Ações -> Ações de agentes
Extensão do Diagrama de Atividades
Identificação de papéis, organização e ambiente
Papel
R1
<<organization>>
O1
<<organization>>
O2
P2
R3
<<environment>>
E1
Plano
<<environment>>
E2

…
…
<<role_change>>
A3
A4
Ações
Download

Diapositiva 1 - Instituto de Computação