linguagens de modelagem para sma
DESCRIPTION
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,...) - PowerPoint PPT PresentationTRANSCRIPT
Linguagens de Modelagem para SMA
Viviane Torres da [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) ObjetoA
ObjetoB
[se novo]<<create>>
mensagem
mensagem (auto delegação)
valor de retorno
<<destroy>>
(caixa de)ativação
condição de guarda
mensagem síncrona
objeto
símbolo de destruição
linha de vida
Diagrama de sequência de AUML: Modelagem de Mensagens
ato de comunicação (ato de fala)(não chamamos de método)
O inclusivo O exclusivoparalelismo
<agente>/<papel> : <classe>
Viviane / Professor : AgentUsuarioVivianeViviane / Professor: AgentUsuario
Problemas: Como se modela a instância de papel? Onde o agente está executando o papel? Onde o agente está?
Diagrama de sequência de AUML (Exemplo)
Agente A desempenhando o papel customer
Agente A desempenha o papel negotiator
representaçãodo mudançade 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)
Possibilidades de comunicação
Protocolo
Indica que este protocolo pode ser utilizado como um template para criar outros protocolos
Diagrama de colaboração de UML
Objeto A
Objeto C
Objeto B
1:<create>2:mensagem5:retorno
3:mensagem4:mensagem
Diagrama de colaboração de AUML (Exemplo)
representaçãoda 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
Atividade 1
Atividade 2.1
Atividade 2.4Atividade 2.3
Atividade 3
Atividade 2.2
Atividade 4
Partição 1 agrupa as atividadesque estão relacionadas
divisão
união
atividade
Partição2
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
Estado 1 Estado 2transição1
Estado 3transição2
transição3
transição4
Diagrama de estado de AUML
Utilizado para representar os estados do sistema e as suas transições
estado
agenteou papel
Diagrama de classe em UML
Classe 1
atributo1atributo2...
metodo1metodo2metodo3...
atributos
métodos
nome da classe
ISMA
Diagrama de classesde AUML
atos de fala que podemser utilizados nas mensagens
que recebe e nas mensagens que envia
Nome da classe de agente e os papéis que os agentes podem desempenhar
= atributos
comportamento público
comportamento privado
a organização onde o agente executa e as condiciones para entrar e sair da organização
Problemas: Só pode executar em uma organização? Se pode executar em mais de una organização, qual papel desempenha em cada uma?
Descrição do que pode fazer
Diagrama de classesde AUML
visão da organização
visão da organização
visão da organização
visão de interação
visão do ambiente
visão de agente
visão de agente
Representação das crenças e objetivos
como objetos externos ao agente
Diagrama de classes de AUML
organizaçãoProblemas: 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
papel
organização
agente
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 multi-agente.
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
Camada de meta-modelo
Camada de modelo de domínio
Camada de meta-meta-modelo
Camada de instância
MOF meta-meta-modelo
ER meta-meta-modelo
UML meta-modelo
TAOmeta-modelo
MAS-MLmeta-modelo
instanciação
MAS-MLmodelos
unificação
MAS-ML
Meta-modelo de MAS-ML
Element
NamedElement
PackageableElement
TypeNamespaceRefinableElement
Classifier
Class AgentClass OrganizationClass AgentRoleClass ObjectRoleClass EnvironmentClass
Meta-classes do meta-modelo de UML
Novas Meta-clasess
Leyenda
Meta-modelo de MAS-ML
AgentClass
OrganizationClass
AgentRoleClass
EnvironmentClass
Class
ObjectRoleClass
Ownership
Inhabit
ControlPlay0..1agent
1..*play
0..1agent
1inhabit
1env
0..*inhabit
0..1 org
1 inhabit
1 inhabit
0..1 class
0..*play_in
1 org
0..*play
0..1 subOrg
1owner
0..*ownership
1 play 1 play
0..* play
0..1 agentRole
0..1class
0..1objectRole
1ownership
0..1objectRole
1ownership
0..1agentRole
1 controlled 0..*
1controller
0..*control
Meta-modelo de MAS-ML
Element
NamedElement
MultiplicityElement TypedElement Feature Namespace
RefinableElement
StructuralFeature BehavioralFeature
ActionClassProperty ProtocolClassOperation PlanClass
AgentMesageClass
Novos estereótipos
Duty RightBelief Goal
Meta-classes do meta-modelo de UML
Novas Meta-classes
Leyenda
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
Second-hand BooksImported Books
Item
Book
Order User
Nome_da_classe
atributo1atributo2
metodo1metodo2metodo3...
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
abstracttitleauthorscontent
getAbstractgetTitlegetAuthorsgetContentsetAbstractsetTitlesetAuthorssetContent
Paper
1 0..3
Researcher
Student
Professor
0..*
0..*0..* 0..*
0..*
0..*
Conference<<main-organization>>
Workshop Tutorial
Overall_evaluation
1
0..1
evaluation
getEvaluationgetPaper
reviewercommentsevaluation
getReviewergetCommentsgetEvaluationgetPapersetReviewersetCommentssetEvaluationsetPaper
Review
Object / Environment
Agent
Organization
Legend:
0..* 0..*
especialização
agregação
associaçã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
Conference_Center
Author
Workshop
PC_MemberGeneral_Chair
<<main-organization>>
Researcher Student
Tutorial
Event
Chair
<<goal>> manageEvent<<belief>> reviewers
Collecting_submitted_ papers {…}Assigning_papers_to_reviewers { relatePapersToReviewers, createReviewProposal, attributePapersToReviewers, attributePapersWithout3ReviewersToChair }Distributing_reviews {checkConflict, groupReviews, informAuthors}Collecting_camera-ready _papers {…}
Object role classAgent role classClass / Environment class
Agent class
Organization classLeyenda:
Play relationship
Ownership relationship
Diagrama de Organizações: Exemplo (parte II)
Conference
Conference_Center
<<main-organization>>
Submission Camera_Ready
Paper
Overall_Evaluation Blind_Review
Review
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
Author
PC_Member
General_Chair
Blind_Submission
Blind_Review
getCommentsetEvaluationgetPaper
paperId
getAbstractgetTitlegetContentgetPaperIdsetPaperId
Camera_Ready
paperId
getAbstractgetTitlegetAuthorsgetContentgetPaperId
<<goal>>publishPaper
<<duty>>sendCameraReady if accepcted<<right>>submitPaper<<protocol>>PaperSubmission
Chair<<goal>>manageEvent
<<duty>>receivePapers, attributePapersToReviewers, attributePapersWithout3ReviewersToChair informAuthorsReviews<<protocol>>PaperSubmission
PaperDistribution
<<goal>>reviewPaper
<<duty>>makePreview<<right>>refusePaper<<protocol>>PaperDistribution
Object role class
Agent role class
Leyenda:
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
Objeto B
[se novo]<<create>>
mensaje
valor de retorno
<<destroy>>
mensaje
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
org/role/org/env : OrganizationClass/AgentRoleClass/OrganizationClass/EnvironmentClass
obj/role/org/env : Class/ObjectRoleClass/OrganizationClass/EnvironmentClass
agent/role/org/env : AgentClass/AgentRoleClass/OrganizationClass/EnvironmentClass
env : EnvironmentClass env : EnvironmentClass
Entidad activa Entidad pasiva
Objeto
Agente
Organización
Entorno
: RoleClassRole
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)
message_label (content_description)sender receiver
method_name ()sender receiver
UML
MAS-ML
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
Anne/FruitBuyer : UserAgent/Buyer
<<create>>
......
Creando una organización
Anne/FruitBuyer : UserAgent/Buyer
<<destroy>>... ...
FruitStore : Store
...
Destruyendo una organización - II
Anne/FruitBuyer : UserAgent/Buyer
<<destroy>>... ...
...
Destruyendo una organización - I
FruitStore/FruitWholesale: Store/Wholesale
FruitStore/FruitWholesale: Store/Wholesale
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
<<role_cancel>> Entidade cancelando papel <<role_activate>> Entidade ativando papel <<role_deactivate>> Entidade desativando papel <<role_change>> Entidade mudando de papel
Criando papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer<<role_commitment>>
......
Bob/FruitBuyer : UserAgent/Buyer
Apple/DesirerFruit : Item/Desirer<<role_commitment>>
......
Criando um papel de agente
Criando um papel de objeto
Cancelando papel
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
...
Cancelando um papel de agente
Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
Bob/FruitBuyer : UserAgent/Buyer Apple/DesirerFruit : Item/Desirer
Cancelando um papel de objeto
<<role_cancel>>
...
Cancelando um papel de agente
Desativando e ativando papel
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_activate>>
...
Activar um papel
...
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
Desativar um papel
...
Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
Mudando de papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer<<role_change>>
...
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_change>>
Bob/FruitBuyer : UserAgent/Buyer
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_change>>
Bob/ClothesBuyer : UserAgent/Buyer<<role_change>>
...
...
...
Cancelando um papel e criando novo papel
Cancelando um papel e ativando outro papel
Desativando um papel e criando outro papel
Desativando um papel e ativando outro papel
Modelando protocolos
Um protocolo define um conjunto de mensagens que entidades podem enviar e receber enquanto desempenhando papéis
Request (ItemDescription)
Proposal (ItemDescription)
AnswerProposal (RejectItemDescription)
AnswerProposal (AcceptItemDescription)
Inform (Payment)
Inform (Bill)
: Buyer : Seller
else
mensagem
papel
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/Seller
if (message_label = request)
create_seller
else
inform_buyer_of_seller
: UserAgent/Buyer
inform (seller_id)
<<create>>
Creating_seller
Execução de um plano
Execuçãode uma ação
Execuçãode uma ação
Bob/buyerOfBooks/Bookfinder/Place-A : UserAgent/Buyer/
GeneralStore/VirtualMarketplace
Search for organization
Check_organization_goals
Check_organization_roles
Entering organization
BrandNewBookstore/marketOfUsedBooks/Bookfinder/Place-A :Second-handBookstore/MarketOfUsedGoods/
GeneralStore/VirtualMarketplace
Request (OrgGoals)
Get_organization_goals
Managing entrance
Inform (OrgGoals)
Request (OrgRoles)
Get_organization_roles
Inform (OrgRoles)
Select_role_to_play
Inform (RoleToPlay)
Register_itself_in_organization
Bob/buyerOfSecond-handBooks/Bookfinder/Place-A : UserAgent/BuyerOfSecond-handBooks/
GeneralStore/VirtualMarketplace<<role_commitment>>
Inform (Buyer_of_second_hand_books)
Entering organization
Search_for_announcement
Request (Announcement)
...
Place-A : VirutalMarketplace
getOrganizations()
Vector
plano
ação
esteriótipo de mensagem
chamada demétodo
ambienteagente
organização
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
Identificação de papéis, organização e ambiente
Extensão do Diagrama de Atividades
<<role_change>>A3
A4
…
…
<<
envi
ronm
ent>
>E
1<
<en
viro
nmen
t>>
E2
<<
orga
niza
tion
>>
O2
<<
orga
niza
tion
>>
O1
R3
R1
P2
Plano
Ações
Papel