linguagens de modelagem – mas-ml viviane torres da silva [email protected]...
TRANSCRIPT
Linguagens de Modelagem – MAS-ML
Viviane Torres da [email protected]
http://www.ic.uff.br/~viviane.silva/isma
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
Elementos dos diagramas estáticos I/II
ObjectRoleClass OrganizationClassAgentRoleClassAgentClassClass
AgentRoleClassAgentRoleClass
EnvironmentClassEnvironmentClass
Relação Inhabit(habitar)
Relação Control(controlar)
Entidades
Elementos dos diagramas estáticos I/II
OrganizationClass AgentRoleClass
OrganizationClass AgentRoleClass
AgentClass
Relação Ownership(propiedade)
Relação Play(desempenhar)
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ísticas decomportamento
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
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ísticas decomportamento
Papel de Objeto
ObjectRoleClass
[visibility] type : name [= default-value]
[visibility] name (parameter-list) : returned-value
Características estructurais
Características decomportamento
Ambiente
EnvironmentClass Característicasestructurais
Características decomportamento
Entidades que habitamo ambiente
EnvironmentClassor
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
ISMA
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 Seqüê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 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
Elementos dos diagramas de seqüência
Novos dezenhos 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
Executionof a Plan
Executionof an Action
Executionof an Action
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 seqüência das atividades e não na interação
entre os objetos
Atividades: execçã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
Extenção do Diagrama de Actividades
<<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
Exemplo I/II
Selling
[proposalaccepted]
Informing Price Informing proposal
[proposalrejected]
Payment
<<goal>>
<<goal>>to have an item sold<<role>>Seller
Receiving FinalPosition
plano
Exemplo II/II
Relate papers to reviewers
Assigning papers to reviewers <<goal>>have papers assigned to reviewers
<<datastore>>Papers with
reviewers
<<datastore>>Papers without
reviewers
Create reviewer proposal
<<message>>New reviewers
<<message>>Asking for new
reviewers
<<datastore>>Papers x Reviewers
<<datastore>>reviewers
Attribute papers without 3 reviewers to chair
Decision deadline
<<datastore>>Papers x Reviewers
<<role_commitment>>Review paper
<<datastore>>reviewers
<<datastore>>papers
Ch
air
Re
vie
we
r
<<message>>Proposals( request :receiver (agent-identifier: reviewer :content reviewProposal :protocol PaperDistribution )
<<
org
an
iza
tion
>>
Wo
rksh
op
Enviando mensagem Recibendo mensagemrecurso
Mudando a organização e ambiente
<<role_commitment>>Action N
<<role_deactive>>Action M
......
Role Z Role W
<<organization>> A <<organization>> B
<<environment>> Env1 <<environment>> Env2
<<
en
viro
nm
en
t>>
CA
iSE
_C
en
ter
<<
en
viro
nm
en
t>>
AA
MA
S_
Ce
nte
r
<<
org
an
iza
tion
>>
Tu
toria
l<
<o
rga
niz
atio
n>
>W
ork
sho
p
Ch
air
Re
vie
we
r
<<role_change>>Review paper
End of the workshop
Distributing reviews
<<message>>New reviewers Check conflict …