Linguagens de Modelagem Equipe do Curso de ES para SMA {lucena, furtado, choren,...
Transcript of Linguagens de Modelagem Equipe do Curso de ES para SMA {lucena, furtado, choren,...
Linguagens de Modelagem
Equipe do Curso de ES para SMA
{lucena, furtado, choren, viviane}@inf.puc-rio.br
MAS-ML
Laboratório de Engenharia de Software (LES) – PUC-Rio
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-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
Laboratório de Engenharia de Software (LES) – PUC-Rio
Meta-modelo MAS-ML
DutyRight
Features Classifier
Structural Feature Behavioral Feature
Belief Goal
Axiom
Operation
Property
Class AgentClass ObjectRoleClass
OrganizationClass
AgentPlan
Meta-classes do meta-model UML
Novas meta-classes
Novos estereótipos
Legenda
AgentRoleClass
AgentAction 1..* *
1..**
sender receiver1 *
Element
AgentProtocol
AgentMessage
1..*
*
Constraintpostconditionpostcondition
preconditionprecondition
0..1 0..10..10..1
*
**
*
EnvironmentClass
ActiveEnvironmentClass
PassiveEnvironmentClass
Laboratório de Engenharia de Software (LES) – PUC-Rio
Meta-modelo MAS-ML
Class
AgentClass
ObjectRoleClassOrganizationClass
AgentRoleClass
EnvironmentClassdefine
play
1
1..*0..*
define
1 sub-org
play 1..*1
play in
0..*
1..*
1..*1inhabit
1
0..*
inhabit
inhabit
1
0..*
play1
0..*
0..*1
sub-org
0..* 1
play in play in
0..*
0..*
Meta-classes do meta-modelo UML
Novas meta-classes
Legenda
Laboratório de Engenharia de Software (LES) – PUC-Rio
Meta-modelo MAS-ML
Relationship
Directed Relationship
Classifier
Element
Association
Dependency Ownership Inhabit Control Play Generalization
1..*
Meta-classes do meta-modelo UML
Novas meta-classes
Legenda
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
Diagramas Estáticos
Laboratório de Engenharia de Software (LES) – PUC-Rio
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...
Laboratório de Engenharia de Software (LES) – PUC-Rio
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 I
ObjectRoleClass OrganizationClassAgentRoleClassAgentClassClass
AgentRoleClassAgentRoleClass
EnvironmentClassEnvironmentClass
Relacionamento Inhabit
RelacionamentoControl
Entidades
Laboratório de Engenharia de Software (LES) – PUC-Rio
Elementos dos diagramas II
OrganizationClass AgentRoleClass
OrganizationClass AgentRoleClass
AgentClass
RelacionamentoOwnership
RelacionamentoPlay
Laboratório de Engenharia de Software (LES) – PUC-Rio
Agente
AgentClass
<<goal>> type : name [= default-value] plan-list<<belief>> type : name [= default-value]
{precondition-list} action {postcondition-list}plan {action-list} goal-name
Característicasestruturais
Característicascomportamentais
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
Característicasestruturais
Característicascomportamentais
Laboratório de Engenharia de Software (LES) – PUC-Rio
Papel de Agente
AgentRoleClass
<<goal>> type : name [= default-value]<<belief>> type : name [= default-value]
<<duty>> action <<right>> actionprotocol-name { messsage: {label: value, content: value,
sender : value, receiver: value}...}
Característicasestruturais
Característicascomportamentais
Laboratório de Engenharia de Software (LES) – PUC-Rio
Papel de Objeto
ObjectRoleClass
[visibility] type : name [= default-value]
[visibility] name (parameter-list) : returned-value
Características estruturais
Característicascomportamentais
Laboratório de Engenharia de Software (LES) – PUC-Rio
Ambiente
EnvironmentClass Característicasestruturais
Característicascomportamentais
Entidades que habitam o ambiente
EnvironmentClassor
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
Second-hand BooksImported Books
Item
Book
Virtual Marketplace
inhabit
specialization
associationAgentA
AgentB
Organization A
Organization A
Object / Environment
Agent
Organization
Legend:
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 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.
Laboratório de Engenharia de Software (LES) – PUC-Rio
Diagrama de Organizações
Object role
Agent roleObject / Environment
Agent
Organization
Legend:
General Store
Virtual Marketplace
Market of Special Goods Market of Used Goods
Imported Bookstore Second-hand BookstoreBook
Desire Offer
BuyerSeller
User AgentStore Agent
<<main-organization>>
inhabitplay
ownership
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
Market of Special Goods
Offer Desire
Buyer
Buyer of Imported Books Seller of Imported Books
Seller
Desire of Imported Books
Offer ofImported Books
Buyer of Second-hand BooksSeller of Second-hand Books
Desire of Second-hand
Books
Offer ofSecond-hand
BooksMarket of Used Goods
Object role Agent role
Legend:
control
aggregationassociation
Seller
Seller of Imported Books
specialization
Diagramas Dinâmicos
Laboratório de Engenharia de Software (LES) – PUC-Rio
Diagrama de Seqüência de UML
• Representa a interação entre os objetos e as execuções dos métodos
joseFloricultor
centralCentralFloricultura
joao:Dentista
floricultorPetropolisFloricultor
1.1: atendeCidade("Petropolis"):boolean
1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean
1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean
1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor
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
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
Active entity Passive entity
Objeto
Agente
Organização
Ambiente
: RoleClassPapel
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
message_label (content_description)sender receiver
method_name ()sender receiver
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
Anne/FruitBuyer : UserAgent/Buyer
<<create>>
......
Criando uma organização
Anne/FruitBuyer : UserAgent/Buyer
<<destroy>>... ...
FruitStore : Store
...
Destruindo uma organização - II
Anne/FruitBuyer : UserAgent/Buyer
<<destroy>>... ...
...
Destruindo uma organização - I
FruitStore/FruitWholesale: Store/Wholesale
FruitStore/FruitWholesale: Store/Wholesale
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
Laboratório de Engenharia de Software (LES) – PUC-Rio
Cancelando papel
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
...
Cancelando papel de agente
Bob/ClothesBuyer : UserAgent/Buyer
<<role_cancel>>
Bob/FruitBuyer : UserAgent/Buyer Apple/DesirerFruit : Item/Desirer
Cancelando papel de objeto
<<role_cancel>>
...
Cancelando papel de agente
Laboratório de Engenharia de Software (LES) – PUC-Rio
Desativando e ativando papel
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_activate>>
...
Ativar papel
...
Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
Desativar papel
...
Bob/ClothesBuyer : UserAgent/Buyer
<<role_deactivate>>
Laboratório de Engenharia de Software (LES) – PUC-Rio
Mudandode 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 papel e criando novo papel
Cancelando papel e ativando outro papel
Desativando papel e criando outro papel
Desativando papel e reativando outro papel
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
Request (ItemDescription)
Proposal (ItemDescription)
AnswerProposal (RejectItemDescription)
AnswerProposal (AcceptItemDescription)
Inform (Payment)
Inform (Bill)
: Buyer : Seller
else
mensagem
papel
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
: UserAgent/Seller
if (message_label = request)
create_seller
else
inform_buyer_of_seller
: UserAgent/Buyer
inform (seller_id)
<<create>>
Creating_seller
Executionof a Plan
Executionof an Action
Executionof an Action
Laboratório de Engenharia de Software (LES) – PUC-Rio
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
estereótipo de mensagem
chamada demétodo
ambienteagente
organização
Laboratório de Engenharia de Software (LES) – PUC-Rio
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 ofreviewing papers
Distribution of papers toreviewers
Distribution of papers toreviewers
...
Invoking plans: planos que são invocados por outros planos/ações
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
<?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>
AddNumbershttp://www.les.inf.puc-rio.br/webservices/2005/AddNumbers
Ação é vista como um serviço
Ação pode ser descrita utilizando-se, 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
Planos e Metas
• Todo plano está associado a uma meta
<<goal>> Evaluate proposalEvaluation of proposal ofreviewing papers
... ...
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
[deadline notcompatible with dates
in belief agenda]
<<message>>Reject Proposal
Select a paperfrom the set of
proposal papers
<<datastore>>Proposalpapers
... ...
Laboratório de Engenharia de Software (LES) – PUC-Rio
Modelando Mensagens
i. Identificando a ato de falaii. Identificando o protocoloiii. Descrevendo a mensagem utilizando ACL
<<message>>Reject Proposal
<<message>>Reject Proposal(inform :receiver (agent-identifier: chair) :content “all papers rejected” :protocol paperProposalDistribution)
<<message>> protocol: paperProposalDistributionReject Proposal
(i)
(ii)
(iii)
Laboratório de Engenharia de Software (LES) – PUC-Rio
Papéis
• Associando papéis a execução de planos
<<goal>> Evaluate proposalEvaluation of proposal ofreviewing papers
... ...
<<role>> Reviewer
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
Rev
iew
er
<<belief>><<datastore>>
reviewers
<<belief>><<datastore>>
papersDeadline
<<role_commitment>>Allocate papers without
reviewers to agent
<<datastore>>reviewers, papers
Review papers
Cha
ir
Distribution of papers toreviewers
Allocate papersto reviewers ...
Laboratório de Engenharia de Software (LES) – PUC-Rio
Papéis
• Modelando a dinâmica de papéis(mudança de papel)
<<role_commitment>>Action J(Role Y)
<<role_deactivate>>Action I(Role X)
......
<<role_commitment>>Action J(Role Y)
<<role_cancel>>Action I(Role X)
......
<<role_activate>>Action J(Role Y)
<<role_cancel>>Action I(Role X)
......
<<role_activate>>Action J(Role Y)
<<role_deactivate>>Action I(Role X)
......
(i)
(ii)
(iii)
(iv)
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)
<<right>>Reject paper to
review(Reviewer)
Laboratório de Engenharia de Software (LES) – PUC-Rio
Organizações
• Usando partições para identificar organizações
Rev
iew
er
<<belief>><<datastore>>
reviewers
<<belief>><<datastore>>
papersDeadline
<<role_commitment>>Allocate papers without
reviewers to agent
<<datastore>>reviewers, papers
Review papers
Cha
ir
Distribution of papers toreviewers
Allocate papersto reviewers ...
<<
orga
niza
tion>
> W
orks
hop
Laboratório de Engenharia de Software (LES) – PUC-Rio
Organizações
• Mudança de organização
[deadline notcompatible with dates
in belief agenda]
<<message>>Reject Proposal
Select a paperfrom the set of
proposal papers
<<datastore>>Proposalpapers
...
<<role_cancel>>Leave event
<<role_commitment>>Enter event
...
...
Rev
iwer
Pro
gram
Com
mitt
ee
<<
orga
niza
tion>
> W
orks
hop
<<
orga
niza
tion>
>S
ympo
sium
Evaluation of proposal ofreviewing papers
Laboratório de Engenharia de Software (LES) – PUC-Rio
Ambiente
• Identificado ambiente• Modelando a mudança de ambiente
<<role_commitment>>Action N
<<role_deactive>>Action M
......
Role Z Role W
<<organization>> A <<organization>> B
<<environment>> Env1 <<environment>> Env2