Linguagens de Modelagem
Equipe do Curso de ES para SMA
{lucena, furtado, choren, viviane}@inf.puc-rio.br
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
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
Laboratório de Engenharia de Software (LES) – PUC-Rio
MAS-ML
modelos
Meta-modelo MAS-ML
Element
1..*
Features
1..*
*
Classifier
AgentMessage
1 *
sender receiver
Structural Feature
Belief
Behavioral Feature
Class
Goal
AgentClass
OrganizationClass
EnvironmentClass
ObjectRoleClass AgentRoleClass
Active
EnvironmentClass
Passive
EnvironmentClass
Property
Axiom
Right
Operation
0..1
0..1
Duty
AgentAction 1..*
0..1
* AgentPlan
AgentProtocol *
0..1
Legenda
precondition precondition
*
*
* Constraint *
Laboratório de Engenharia
de Software (LES) – PUC-Rio
postcondition
postcondition
Meta-classes do meta-model UML
Novas meta-classes
Novos estereótipos
Meta-modelo MAS-ML
AgentClass
0..*
play
1
1..* AgentRoleClass
0..*
inhabit
0..*
play in
1..*
1
play
define
1
EnvironmentClass
1..*
1..*
inhabit
1 sub-org
1
OrganizationClass 1
sub- 0..*
org
1
play in
inhabit
1
define
0..* ObjectRoleClass
0..*
0..*
play in
play
0..*
0..*
1
Class
Legenda
Meta-classes do meta-modelo UML
Novas meta-classes
Laboratório de Engenharia de Software (LES) – PUC-Rio
Meta-modelo MAS-ML
Element
1..*
Relationship
Association
Dependency
Ownership
Classifier
Directed Relationship
Inhabit
Control
Play
Generalization
Legenda
Meta-classes do meta-modelo UML
Novas meta-classes
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
• Diagramas dinâmicos: seqüência e atividades
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
Laboratório de Engenharia de Software (LES) – PUC-Rio
Elementos dos diagramas
Class
AgentClass
I
AgentRoleClass
ObjectRoleClass
Entidades
EnvironmentClass
EnvironmentClass
Relacionamento
Inhabit
Relacionamento
Control
AgentRoleClass
Laboratório de Engenharia de Software (LES) – PUC-Rio
AgentRoleClass
OrganizationClass
Elementos dos diagramas
Relacionamento
Ownership
II
OrganizationClass
OrganizationClass
Relacionamento
Play
Laboratório de Engenharia de Software (LES) – PUC-Rio
AgentRoleClass
AgentRoleClass
AgentClass
Agente
AgentClass
<<goal>> type : name [= default-value]  plan-list
<<belief>> type : name [= default-value]
{precondition-list} action {postcondition-list}
plan {action-list}  goal-name
Laboratório de Engenharia de Software (LES) – PUC-Rio
Características
estruturais
Características
comportamentais
Organização
OrganizationClass
<<goal>> type : name [= default-value]  plan-list
<<belief>> type : name [= default-value]
<<axiom>> type : name [= default-value]
{precondition-list} action {postcondition-list}
plan {action-list}  goal-name
Laboratório de Engenharia de Software (LES) – PUC-Rio
Características
estruturais
Características
comportamentais
Papel de Agente
AgentRoleClass
<<goal>> type : name [= default-value]
<<belief>> type : name [= default-value]
<<duty>> action
<<right>> action
protocol-name { messsage: {label: value, content: value,
sender : value, receiver: value}
...}
Laboratório de Engenharia de Software (LES) – PUC-Rio
Características
estruturais
Características
comportamentais
Papel de Objeto
ObjectRoleClass
[visibility] type : name [= default-value]
[visibility] name (parameter-list) : returned-value
Laboratório de Engenharia de Software (LES) – PUC-Rio
Características
estruturais
Características
comportamentais
Ambiente
EnvironmentClass
or
EnvironmentClass
Características
estruturais
Características
comportamentais
Entidades que
habitam
o ambiente
Laboratório de Engenharia de Software (LES) – PUC-Rio
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.
Laboratório de Engenharia de Software (LES) – PUC-Rio
Diagrama de Classes
Virtual Marketplace
Organization A
AgentA
Item
association
Book
Organization A
AgentB
specialization
Imported Books Second-hand Books
inhabit
Legend:
Object / Environment
Organization
Agent
Laboratório de Engenharia de Software (LES) – PUC-Rio
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 suborganizaçõ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.
Laboratório de Engenharia de Software (LES) – PUC-Rio
Diagrama de Organizações
Virtual Marketplace
inhabit
play
User Agent
Store Agent
Seller
Buyer
<<main-organization>>
General Store
Market of Special Goods
Market of Used Goods
Book
Imported Bookstore
Second-hand Bookstore
Offer
Desire
Legend:
Object / Environment
Object role
Agent role
Laboratório de Engenharia de SoftwareAgent
(LES) – PUC-Rio
Organization
ownership
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.
Laboratório de Engenharia de Software (LES) – PUC-Rio
Diagrama de Papéis
Offer
Desire
association
aggregation
Buyer
Seller
Seller of Second-hand Books
Buyer of Second-hand Books
Offer of
Second-hand
Books
Desire of
Second-hand
Books
Market of Special Goods
Buyer of Imported Books
Seller of Imported Books
Desire of
Imported Books
Offer of
Imported Books
control
Market of Used Goods
Seller
specialization
Legend:
Object role
Seller of Imported Books
Agent role
Laboratório de Engenharia de Software (LES) – PUC-Rio
Diagramas Dinâmicos
Diagrama de Seqüência de UML
• Representa a interação entre os objetos e as
execuções dos métodos
j os e
Floricultor
centra l
CentralFloricultura
fl oricul torP etrop o
Floricultor
j oa o:Denti s ta
1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean
1.1: atendeCidade("Petropolis"):boolean
1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor
1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean
Laboratório de Engenharia de Software (LES) – PUC-Rio
Diagrama de Seqüê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
Laboratório de Engenharia de Software (LES) – PUC-Rio
Elementos dos diagramas
• Novos pathnames e novos ícones
Objeto
obj/role/org/env : Class/ObjectRoleClass/OrganizationClass/EnvironmentClass
Agente
agent/role/org/env : AgentClass/AgentRoleClass/OrganizationClass/EnvironmentClass
Organização
Papel
org/role/org/env : OrganizationClass/AgentRoleClass/OrganizationClass/EnvironmentClass
: RoleClass
Active entity
Ambiente
env : EnvironmentClass
Laboratório de Engenharia de Software (LES) – PUC-Rio
Passive entity
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
sender
sender
method_name ()
message_label (content_description)
Laboratório de Engenharia de Software (LES) – PUC-Rio
receiver
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
Laboratório de Engenharia de Software (LES) – PUC-Rio
Criando e destruindo entidades
Criando uma organização
Anne/FruitBuyer : UserAgent/Buyer
<<create>>
FruitStore/FruitWholesale: Store/Wholesale
..
.
..
.
Destruindo uma organização - I
Anne/FruitBuyer : UserAgent/Buyer
..
.
FruitStore/FruitWholesale: Store/Wholesale
...
<<destroy>>
..
.
Destruindo uma organização - II
Anne/FruitBuyer : UserAgent/Buyer
..
.
<<destroy>>
..
.
Laboratório de Engenharia de Software (LES) – PUC-Rio
FruitStore : Store
...
Estereótipos de mensagens
• Como representar a relação entre papéis e
entidades que desempenham papéis?
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
• <<role_commitment>>
•
•
•
•
Laboratório de Engenharia de Software (LES) – PUC-Rio
Criando papel
Bob/FruitBuyer : UserAgent/Buyer
<<role_commitment>>
..
.
Criando um papel de agente
Bob/ClothesBuyer : UserAgent/Buyer
..
.
Bob/FruitBuyer : UserAgent/Buyer
<<role_commitment>>
..
.
Laboratório de Engenharia de Software (LES) – PUC-Rio
Criando um papel de objeto
Apple/DesirerFruit : Item/Desirer
..
.
Cancelando papel
Cancelando papel de agente
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
..
.
Cancelando papel de agente
Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
Cancelando papel de objeto
Bob/FruitBuyer : UserAgent/Buyer
<<role_cancel>>
..
.
Laboratório de Engenharia de Software (LES) – PUC-Rio
Apple/DesirerFruit : Item/Desirer
Desativando e ativando papel
Desativar papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
..
.
Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
Ativar papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_activate>>
..
.
Laboratório de Engenharia de Software (LES) – PUC-Rio
..
.
Cancelando papel e criando novo papel
Mudando
de papel
Bob/FruitBuyer : UserAgent/Buyer
<<role_change>>
Bob/ClothesBuyer : UserAgent/Buyer
..
.
Cancelando papel e ativando outro papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_change>>
..
.
Desativando papel e criando outro papel
Bob/FruitBuyer : UserAgent/Buyer
<<role_change>>
Bob/ClothesBuyer : UserAgent/Buyer
..
.
Desativando papel e reativando outro papel
Bob/FruitBuyer : UserAgent/Buyer
Bob/ClothesBuyer : UserAgent/Buyer
<<role_change>>
Laboratório de Engenharia de Software (LES) – PUC-Rio
..
.
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
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
Creating_seller
: UserAgent/Buyer
if (message_label = request)
Execution
of a Plan
Execution
of an Action
Execution
of an Action
create_seller
<<create>>
: UserAgent/Seller
inform_buyer_of_seller
inform (seller_id)
else
Laboratório de Engenharia de Software (LES) – PUC-Rio
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)
estereótipo de mensagem
Search_for_announcement
Request (Announcement)
...
Laboratório de Engenharia de Software (LES) – PUC-Rio
Entering
organization
Diagrama de Atividades de UML
• Objetivo: modelar o fluxo das atividades de um
sistema
• O foco está na seqüência de atividades e não na
interação entre os objetos
• Atividades: execução não atômica composta de
ações
• Ação: execução atômica
Laboratório de Engenharia de Software (LES) – PUC-Rio
Diagrama de Atividades de MAS-ML
• Objetivo: representar a modelagem de planos e
ações de um agente
• O foco está na modelagem de um agente e não na
interação entre os agentes
• Atividades -> Planos de agentes
• Ações -> Ações de agentes
Laboratório de Engenharia de Software (LES) – PUC-Rio
Modelando planos
Evaluation of proposal of
reviewing papers
...
...
Invoking plans: planos que são invocados por outros planos/ações
Distribution of papers to
reviewers
Distribution of papers to
reviewers
...
Laboratório de Engenharia de Software (LES) – PUC-Rio
Modelando ações
• Identificando uma ação pelo seu nome ou utilizando
uma linguagem de descrição de ação
AddNumbers
http://www.les.inf.puc-rio.br/webservices/2005/AddNumbers
Ação é vista como um serviço
Ação pode ser descrita utilizandose, por exemplo, WSDL
ou
Identificando o endereço de onde a
implementação da ação se
encontra
Laboratório de Engenharia de Software (LES) – PUC-Rio
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="AddNumbers" ...>
...
<message name="parameterValues">
<part name="firstParameter" type="xs:int"/>
<part name="secondParameter" type="xs:int"/>
</message>
<message name="addResponse">
<part name="value" type="xs:int"/>
</message>
<portType name="addPortType">
<operation name="add">
<input message="parameterValues"/>
<output message="addResponse"/>
</operation>
</portType>
...
</definitions>
Planos e Metas
• Todo plano está associado a uma meta
Evaluation of proposal of
reviewing papers
<<goal>> Evaluate proposal
...
Laboratório de Engenharia de Software (LES) – PUC-Rio
...
Condição de guarda
• Qualquer informação do estado mental do agente
pode ser verificada na condição de guarda
...
<<datastore>>
Proposal
papers
Select a paper
from the set of
proposal papers
[deadline not
compatible with dates
in belief agenda]
<<message>>
Reject Proposal
Laboratório de Engenharia de Software (LES) – PUC-Rio
...
Modelando Mensagens
i. Identificando a ato de fala
ii. Identificando o protocolo
iii. Descrevendo a mensagem utilizando ACL
(i)
<<message>>
Reject Proposal
(ii)
<<message>> protocol: paperProposalDistribution
Reject Proposal
(iii)
<<message>>
Reject Proposal
(inform
:receiver (agent-identifier: chair)
:content “all papers rejected”
:protocol paperProposalDistribution
)
Laboratório de Engenharia de Software (LES) – PUC-Rio
Papéis
• Associando papéis a execução de planos
<<goal>> Evaluate proposal
<<role>> Reviewer
Evaluation of proposal of
reviewing papers
...
Laboratório de Engenharia de Software (LES) – PUC-Rio
...
Papéis
• Usando partições para identificar papéis
• Modelando a dinâmica de papéis
Distribution of papers to
reviewers
Chair
<<belief>>
<<datastore>>
reviewers
Allocate papers
to reviewers
<<belief>>
<<datastore>>
papers
...
Deadline
Reviewer
<<datastore>>
reviewers, papers
Review papers
Laboratório de Engenharia de Software (LES) – PUC-Rio
<<role_commitment>>
Allocate papers without
reviewers to agent
Papéis
• Modelando a dinâmica de papéis
(mudança de papel)
(i) ...
<<role_cancel>>
Action I
(Role X)
<<role_commitment>>
Action J
(Role Y)
...
(ii) ...
<<role_cancel>>
Action I
(Role X)
<<role_activate>>
Action J
(Role Y)
...
(iii) ...
<<role_deactivate>>
Action I
(Role X)
<<role_commitment>>
Action J
(Role Y)
...
(iv) ...
<<role_deactivate>>
Action I
(Role X)
<<role_activate>>
Action J
(Role Y)
...
Laboratório de Engenharia de Software (LES) – PUC-Rio
Papéis e ações
• Quando for possível afirmar que um plano será
executado no contexto de um determinado papel...
• Identificar as obrigações e os direitos dos agentes
(informação disponível na definição do papel)
<<duty>>
Allocate papers
to reviewers
(Chair)
Laboratório de Engenharia de Software (LES) – PUC-Rio
<<right>>
Reject paper to
review
(Reviewer)
Organizações
• Usando partições para identificar organizações
Distribution of papers to
reviewers
Chair
Allocate papers
to reviewers
<<belief>>
<<datastore>>
papers
...
Deadline
<<datastore>>
reviewers, papers
Reviewer
<<organization>> Workshop
<<belief>>
<<datastore>>
reviewers
Review papers
Laboratório de Engenharia de Software (LES) – PUC-Rio
<<role_commitment>>
Allocate papers without
reviewers to agent
Organizações
• Mudança de organização
Evaluation of proposal of
reviewing papers
<<organization>> Workshop
Reviwer
<<organization>>
Symposium
Program Committee
...
<<datastore>>
Proposal
papers
Select a paper
from the set of
proposal papers
[deadline not
compatible with dates
in belief agenda]
<<message>>
Reject Proposal
<<role_cancel>>
Leave event
Laboratório de Engenharia de Software (LES) – PUC-Rio
<<role_commitment>>
Enter event
...
...
Ambiente
• Identificado ambiente
• Modelando a mudança de ambiente
<<environment>> Env1
<<organization>> A
Role Z
...
<<role_deactive>>
Action M
Laboratório de Engenharia de Software (LES) – PUC-Rio
<<environment>> Env2
<<organization>> B
Role W
<<role_commitment>>
Action N
...
Download

Media:aula04(LinguagensModelagem -ANote)