Multi-Agent System Modeling Language (MAS-ML) Viviane Torres da Silva Ricardo Choren Carlos J. P. de Lucena Palestrante: Andrew Diniz da Costa
© 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
© 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 TAO meta-modelo MAS-ML meta-modelo instanciação MAS-ML modelos unificação
© LES/PUC-Rio Meta-modelo MAS-ML DutyRight FeaturesClassifier Structural FeatureBehavioral Feature BeliefGoal Axiom Operation Property ClassAgentClassObjectRoleClass OrganizationClass AgentPlan Meta-classes do meta-model UML Novas meta-classes Novos estereótipos Legenda AgentRoleClass AgentAction 1..** * sender receiver 1 * Element AgentProtocol AgentMessage 1..* * Constraint postcondition precondition 0..1 * ** * EnvironmentClass Active EnvironmentClass Passive EnvironmentClass
© LES/PUC-Rio Meta-modelo MAS-ML Class AgentClass ObjectRoleClassOrganizationClass AgentRoleClass EnvironmentClass define play 1 1..*0..* define 1 sub-org play 1..*1 play in 0..* 1..* 1 inhabit 1 0..* inhabit 1 0..* play 1 0..* 1 sub- org 0..*1 play in 0..* Meta-classes do meta-modelo UML Novas meta-classes Legenda
© LES/PUC-Rio Meta-modelo MAS-ML Relationship Directed Relationship Classifier Element Association DependencyOwnershipInhabitControlPlayGeneralization 1..* Meta-classes do meta-modelo UML Novas meta-classes Legenda
© 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
© 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 atributo1 atributo2 metodo1 metodo2 metodo3...
© 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
© LES/PUC-Rio Elementos dos diagramasI ObjectRoleClassOrganizationClassAgentRoleClassAgentClassClass AgentRoleClass EnvironmentClass Relacionamento Inhabit Relacionamento Control Entidades
© LES/PUC-Rio Elementos dos diagramasII OrganizationClassAgentRoleClass OrganizationClassAgentRoleClass AgentClass Relacionamento Ownership Relacionamento Play
© LES/PUC-Rio Agente AgentClass > type : name [= default-value] plan-list > type : name [= default-value] {precondition-list} action {postcondition-list} plan {action-list} goal-name Características estruturais Características comportamentais
© LES/PUC-Rio Organização OrganizationClass > type : name [= default-value] plan-list > type : name [= default-value] {precondition-list} action {postcondition-list} plan {action-list} goal-name Características estruturais Características comportamentais
© LES/PUC-Rio Papel de Agente AgentRoleClass > type : name [= default-value] > action protocol-name { messsage: {label: value, content: value, sender : value, receiver: value}...} Características estruturais Características comportamentais
© LES/PUC-Rio Papel de Objeto ObjectRoleClass [visibility] type : name [= default-value] [visibility] name (parameter-list) : returned-value Características estruturais Características comportamentais
© LES/PUC-Rio Ambiente EnvironmentClass Características estruturais Características comportamentais Entidades que habitam o ambiente EnvironmentClass or
© 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.
© LES/PUC-Rio Diagrama de Classes Second-hand BooksImported Books Item Book Virtual Marketplace inhabit specialization association AgentA AgentB Organization A Organization B Object / Environment Agent Organization Legend:
© 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.
© LES/PUC-Rio Diagrama de Organizações Object role Agent role Object / Environment Agent Organization Legend: General Store Virtual Marketplace Market of Special GoodsMarket of Used Goods Imported BookstoreSecond-hand Bookstore Book Desire Offer BuyerSeller User Agent Store Agent > inhabit play ownership
© 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.
© 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 of Imported Books Buyer of Second-hand Books Seller of Second-hand Books Desire of Second-hand Books Offer of Second-hand Books Market of Used Goods Object role Agent role Legend: control association Seller Seller of Imported Books specialization
Diagramas Dinâmicos
© LES/PUC-Rio Diagrama de Seqüência de UML Representa a interação entre os objetos e as execuções dos métodos
© 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
© LES/PUC-Rio Elementos dos diagramas Novos pathnames e novos ícones org/role/org/env : Organization Class /AgentRole Class /Organization Class /Environment Class obj/role/org/env : Class/ObjectRoleClass/OrganizationClass/EnvironmentClass agent/role/org/env : AgentClass/AgentRoleClass/OrganizationClass/EnvironmentClass env : EnvironmentClass Active entityPassive entity Objeto Agente Organização Ambiente : RoleClass Papel
© 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) senderreceiver method_name () senderreceiver
© LES/PUC-Rio Estereótipos de mensagens Como representar a criação de entidades de SMA? UML: uso do estereotipo > –Estender para representar a criação de entidades de SMA Como representar a destruição de entidades de SMA? UML: uso do estereotipo > –Estender para representar a destruição de entidades de SMA
© LES/PUC-Rio Criando e destruindo entidades Anne/FruitBuyer : UserAgent/Buyer > Criando uma organização Anne/FruitBuyer : UserAgent/Buyer > FruitStore : Store Destruindo uma organização - II Anne/FruitBuyer : UserAgent/Buyer > Destruindo uma organização - I FruitStore/FruitWholesale: Store/Wholesale
© LES/PUC-Rio 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 > Entidade cancelando papel > Entidade ativando papel > Entidade desativando papel > Entidade mudando de papel
© LES/PUC-Rio Criando papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer > Bob/FruitBuyer : UserAgent/Buyer Apple/DesirerFruit : Item/Desirer > Criando um papel de agente Criando um papel de objeto
© LES/PUC-Rio Cancelando papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer > Cancelando papel de agente Bob/ClothesBuyer : UserAgent/Buyer > Bob/FruitBuyer : UserAgent/BuyerApple/DesirerFruit : Item/Desirer Cancelando papel de objeto > Cancelando papel de agente
© LES/PUC-Rio Desativando e ativando papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer > Ativar papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer > Desativar papel Bob/ClothesBuyer : UserAgent/Buyer >
© LES/PUC-Rio Mudando de papel Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer > Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer > Bob/FruitBuyer : UserAgent/Buyer Bob/ClothesBuyer : UserAgent/Buyer > Bob/ClothesBuyer : UserAgent/Buyer > Cancelando papel e criando novo papel Cancelando papel e ativando outro papel Desativando papel e criando outro papel Desativando papel e reativando outro papel
© 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
© 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) > Creating_seller Execution of a Plan Execution of an Action Execution of an Action
© 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
© 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
© LES/PUC-Rio Extensão Diagrama de Atividades > A3 A4 … … > E1 > E2 > O2 > O1 R3 R1 P2 Plan Action Roles
© LES/PUC-Rio Exemplo Selling [proposal accepted] Informing PriceInforming proposal [proposal rejected] Payment > >to have an item sold >Seller Receiving Final Position
© LES/PUC-Rio Ambiente Identificado ambiente Modelando a mudança de ambiente
© LES/PUC-Rio Referências Silva, V. T.; Lucena, C. J. P. From a Conceptual Framework for Agents and Objects to a Multi-Agent System Modeling Language. Sycara, K., Wooldridge, M.(Edts.), Journal of Autonomous Agents and Multi-Agent Systems, Kluwer Academic Publishers Silva, V. T.; Lucena, C. J. P. From a Conceptual Framework for Agents and Objects to a Multi-Agent System Modeling Language. Sycara, K., Wooldridge, M.(Edts.), Doctoral Thesis, 31st March, Silva, V. T.; Cortés, M.; Lucena, C. J. P. An Object-Oriented Framework for Implementing Agent Societies. Technical Report (MCC32/04), Computer Science Department, PUC-Rio. Rio de Janeiro, Brazil SILVA, V.; GARCIA, A.; BRANDAO, A.; CHAVEZ, C.; LUCENA, C.; ALENCAR, P. Taming Agents and Objects in Software Engineering. In: GARCIA, A.; LUCENA, C.; ZAMBONELI, F.; OMICINI, A; CASTRO, J., (Eds.) Software Engineering for Large-Scale Multi-Agent Systems. LNCS 2603, Berlin: Springer, Costa, Andrew D.; Silva, Viviane T., Lucena, Carlos J. P.; Web site Agent Society Framework, Costa, Andrew D.; Silva, Viviane T., Lucena, Carlos J. P.;Remodelando e Estendendo o Agent Society Framework, n° MCC17/06, Departamento de Infomática da Pontifícia Universidade Católica do Rio de Janeiro, 2006.