Linguagens de Modelagem Equipe do Curso de ES para SMA {lucena, furtado, choren, viviane}@infpuc-riobr MAS-ML 1
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-meta-modelo MOF meta-meta-modelo ER meta-meta-modelo instanciação Camada de meta-modelo UML meta-modelo MAS-ML meta-modelo TAO meta-modelo unificação Camada de modelo de domínio MAS-ML modelos Camada de instância 2
Meta-modelo MAS-ML Element Features * 1* Classifier AgentMessage 1* 1 * sender receiver Structural Feature Behavioral Feature Class AgentClass EnvironmentClass ObjectRoleClass AgentRoleClass Belief Goal Property OrganizationClass Active EnvironmentClass Passive EnvironmentClass Axiom Right Duty Operation AgentAction 1* * AgentPlan AgentProtocol * 01 01 01 01 precondition precondition * * Constraint * * Laboratório de Engenharia postcondition de Software (LES) PUC-Rio postcondition Legenda Meta-classes do meta-model UML Novas meta-classes Novos estereótipos Meta-modelo MAS-ML AgentClass 1 play 1* AgentRoleClass 0* 0* 0* 1* inhabit play in define play 1 1* 1 1 sub-org 1 1* EnvironmentClass OrganizationClass 1 0* ObjectRoleClass inhabit define 1 suborg 0* 1 0* 0* play in play play in 0* 1 inhabit 0* Class Legenda Meta-classes do meta-modelo UML Novas meta-classes 3
Meta-modelo MAS-ML Element Relationship 1* Classifier Association Directed Relationship Dependency Ownership Inhabit Control Play Generalization Legenda Meta-classes do meta-modelo UML Novas meta-classes 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 4
Diagramas Estáticos Diagrama de Classe de UML Representa as classes e os relacionamentos entre as classes Item Order User Book Imported Books Second-hand Books Nome_da_classe atributo1 atributo2 metodo1 metodo2 metodo3 5
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 I Entidades Class AgentClass AgentRoleClass ObjectRoleClass OrganizationClass EnvironmentClass EnvironmentClass Relacionamento Inhabit Relacionamento Control AgentRoleClass AgentRoleClass 6
Elementos dos diagramas II Relacionamento Ownership OrganizationClass AgentRoleClass OrganizationClass AgentRoleClass Relacionamento Play 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 Características estruturais Características comportamentais 7
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í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} } Características estruturais Características comportamentais 8
Papel de Objeto ObjectRoleClass [visibility] type : name [= default-value] [visibility] name (parameter-list) : returned-value Características estruturais Características comportamentais Ambiente EnvironmentClass or EnvironmentClass Características estruturais Características comportamentais Entidades que habitam o ambiente 9
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 Virtual Marketplace Organization A AgentA Item association Book Organization A AgentB Imported Books Second-hand Books specialization inhabit Legend: Object / Environment Organization Agent 10
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 Diagrama de Organizações play inhabit Virtual Marketplace Store Agent User Agent Seller Market of Special Goods <<main-organization>> General Store Buyer Market of Used Goods Imported Bookstore Book Second-hand Bookstore Desire Offer Legend: Object / Environment Agent role Object role Laboratório de Engenharia de Software Agent (LES) PUC-Rio Organization ownership 11
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 Offer Desire Seller association Buyer aggregation Market of Special Goods Seller of Second-hand Books Buyer of Second-hand Books Buyer of Imported Books Seller of Imported Books Market of Used Goods Offer of Second-hand Books Desire of Second-hand Books Desire of Imported Books Seller control Offer of Imported Books Legend: Seller of Imported Books specialization Object role Agent role 12
Diagrama Dinâmico Diagrama de Seqüência de UML Representa a interação entre os objetos e as execuções dos métodos joao:dentista jose Floricultor 1: enviarflores("rosas","maria","petropolis","rua x, 9"):boolean central CentralFloricultura 11: atendecidade("petropolis"):boolean floricultorpetropolis Floricultor 12:[se nao na cid] getfloricultornacidade("petropolis"):floricultor 13: aceitaencomenda("rosas","rua X,9"):boolean 13
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 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 org/role/org/env : OrganizationClass/AgentRoleClass/OrganizationClass/EnvironmentClass Papel : RoleClass Ambiente Active entity env : EnvironmentClass Passive entity env : EnvironmentClass 14
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) 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 15
Criando e destruindo entidades Anne/FruitBuyer : UserAgent/Buyer <<create>> Criando uma organização 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 FruitStore : Store <<destroy>> 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 16
Criando papel Bob/FruitBuyer : UserAgent/Buyer <<role_commitment>> Bob/FruitBuyer : UserAgent/Buyer <<role_commitment>> Criando um papel de agente Bob/ClothesBuyer : UserAgent/Buyer Criando um papel de objeto Apple/DesirerFruit : Item/Desirer Cancelando papel Cancelando papel de agente Bob/FruitBuyer : UserAgent/Buyer <<role_cancel>> Bob/ClothesBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer Cancelando papel de agente <<role_cancel>> Bob/FruitBuyer : UserAgent/Buyer <<role_cancel>> Cancelando papel de objeto Apple/DesirerFruit : Item/Desirer 17
Desativando e ativando papel Desativar papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer <<role_deactivate>> Bob/ClothesBuyer : UserAgent/Buyer <<role_deactivate>> Bob/FruitBuyer : UserAgent/Buyer <<role_activate>> Bob/ClothesBuyer : UserAgent/Buyer Ativar papel Mudando de papel Cancelando papel e criando novo 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>> 18
Modelando protocolos Um protocolo define um conjunto de mensagens que entidades podem enviar e receber enquanto desempenhando papéis : Buyer : Seller papel Request (ItemDescription) 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 Creating_seller : UserAgent/Buyer Execution of a Plan Execution of an Action Execution of an Action if (message_label = request) create_seller <<create>> : UserAgent/Seller inform_buyer_of_seller inform (seller_id) else 19
Place-A : VirutalMarketplace plano Entering organization getorganizations() Vector Bob/buyerOfBooks/Bookfinder/Place-A : UserAgent/Buyer/ GeneralStore/VirtualMarketplace Search for organization BrandNewBookstore/marketOfUsedBooks/Bookfinder/Place-A : Second-handBookstore/MarketOfUsedGoods/ GeneralStore/VirtualMarketplace organização chamada de método Check_organization_goals Request (OrgGoals) Get_organization_goals Inform (OrgGoals) Managing entrance ambiente Check_organization_roles Request (OrgRoles) Get_organization_roles agente Inform (OrgRoles) Select_role_to_play <<role_commitment>> Bob/buyerOfSecond-handBooks/Bookfinder/Place-A : UserAgent/BuyerOfSecond-handBooks/ GeneralStore/VirtualMarketplace ação Inform (RoleToPlay) Register_itself_in_organization Inform (Buyer_of_second_hand_books) Entering organization estereótipo de mensagem Search_for_announcement Request (Announcement) 20