Frameworks Conceituais Viviane Torres da Silva [email protected] http://www.ic.uff.br/~viviane.silva/isma Definição: Frameworks conceituais Motivação: não existe uma definição aceita por todos os pesquisadores sobre os conceitos encontrados em SMA Objetivo: definir os conceitos relacionados aos SMA e descrever os contextos nos quais estes conceitos são utilizados Solução: frameworks conceituais – – – – KAoS (Dardenne et al., 1993) Yu and Schmid (Yu and Schimid, 1999) d'Inverno and Luck (d'Inverno and Luck, 2001) TAO (Silva et al., 2003) Definição: Frameworks conceituais Conceito: idéia, representação mental de uma realidade, um objeto ou algo similar Framework: arcabouço, marco Marco: limite em que se enquadra um problema Um framework conceitual para os SMA deve definir as abstrações encontradas em SMA: suas propriedades, seus relacionamentos, suas ações e suas interações Alguns Frameworks Conceituais para SMA TAO (Silva et al., 2003) Agent Framework (d'Inverno et al., 2001) Yu y Schmid (eu et al., 1999) KAoS (Dardenne et al., 1993) TAO Arquitetura MOF de 4 camadas Camada de meta-meta-modelagem Camada de meta-modelagem MOF meta-meta-modelo UML meta-modelo ER meta-meta-modelo TAO meta-modelo instanciação Camada de modelagem do domínio Camada de instância UML modelos MAS modelos Arquitectura MOF de 4 capas Camada de meta-metamodelagem Entidade Relação Entidade Relação Entidade Framework Conceitual Camada de meta-modelagem Agente desempenha Papel propriedade Organização Modelo Conceptual Camada de modelagem de domínio Agente do Usuário Camada de instância Maria desempenha desempenha Comprador propriedade Loja Comprador de Roupa propriedade C&A Entidades e Relacionamentos herança associação Ambiente associação habitar herança associação agregação dependência associação Objeto associação desempenha associação habitar herança Organização propriedade Papel do Objeto propriedade desempenha herança dependência agregação associação dependência associação associação habitar Agente desempenha herança associação Papel do Agente herança controle dependência agregação associação Entidades Toda entidade tem: – propriedades = estado + comportamento – Relacionamentos Estado: informação sobre si mesma e sobre outras entidades Comportamento: conjunto de ações que pode executar Relacionamentos: define o contexto no qual duas entidades estão relacionadas Objeto X Agente Agente é uma entidade ativa e objeto é uma entidade passiva. Agente Objeto + - interação reativo autonomia - + proactivo Ambiente É o habitat de agentes, organizações e objetos – Eles não podem habitar mais de uma ambiente – Mas agentes e organizações podem mudar de ambiente Estado e comportamento são definidos se baseando em suas características (acessível, determinista, estático, etc.) Pode ser uma entidade passiva como um objeto ou uma entidade ativa como um agente Organização Organizações agrupam os agentes de um SMA Organização = grupo = comunidade = sociedade Pode definir sub-organizações, axiomas e papéis Sub-organização: – Organização que desempenha papéis em outra organização Organização Papéis: – São desempenhados por agentes, objetos e sub-organizações dentro de uma organização Axioma: – regra, lei ou princípio estabelecido. – restrições globais da organização às quais os agentes e as suborganizações devem obedecer. Axioma = regra = lei = norma Organização O conceito de uma organização estende o conceito de um agente Estado: – crenças, objetivos, ações, planos e axiomas Comportamento: – ações e planos executados pela organização + – ações e planos executados pelos agentes e sub-organizações. Papéis As duas propriedades mais importantes: – São definidos no contexto de uma organização – Uma instância de papel deve ser exercida por um agente, por um objeto ou por uma sub-organização. Orienta e também restringe o comportamento de instâncias que exercem o papel. Papel Papel Papel de um Objeto Descreve um conjunto de características que são vistas por entidades que usam o objeto Orienta o comportamento de objetos porque os objetos agem de acordo com chamadas feitas pelo papel Restringir o acesso ao objeto limitando as informações e o comportamento que outras entidades podem acessar Papel de um Objeto Pode também adicionar informações (atributos) e comportamento (métodos) ao objeto que exerce o papel. Estado: atributos – mantém as informações Comportamento: métodos – são as operações Papel de um Objeto entidade B entidade A Papel de um Objeto Objeto atributo 1 atributo 1 atributo 2 método 1 método 3 método 1 método 2 Papel de um Objeto Um objeto não tem consciência do papel que está exercendo O papel de objeto é que sabe a qual objeto está associado Todas as instâncias de papel de objeto são um membro de uma organização e são exercidas por um objeto Papel de Agente Orienta o comportamento de um agente descrevendo seus objetivos ao exercer o papel Restringe o comportamento definindo as ações que o agente deve exercer (deveres) e as ações que pode executar (direito) ao exercer o papel Pode adicionar novos objetivos e crenças ao agente Um agente e uma organização desempenham pelo menos um papel Papel de Agente Estado: – crenças e objetivos. As crenças do papel são passadas para todos que desempenham o papel Os objetivos dos papéis caracterizam os objetivos que um agente deve alcançar enquanto exerce o papel Comportamento: – deveres, direitos e protocolos Papel do Agente Deveres (ou obrigações) identificam as ações atribuídas ao agente que está exercendo o papel, ou seja, as responsabilidades Direitos (ou qualificações) identificam as ações que o agente pode executar ao exercer o papel, isto é, eles descrevem as permissões associadas às ações Protocolos definem as interações entre papéis por meio da especificação das mensagens Relacionamentos Inhabit: – especifica que a instância de entidade que reside – o cidadão – é criada e destruída no habitat e, portanto, pode entrar e sair dele, respeitando suas permissões – um cidadão não pode residir em dois habitats ao mesmo tempo – o habitat conhece todos os cidadãos que residem nele, e cada cidadão conhece seu habitat Entre quais entidades este relacionamento está definido? – Ambiente e agente – Ambiente e objeto – Ambiente e (sub-)organizações Relacionamentos Ownership: – Especifica que uma entidade – o membro – é definida no escopo de outra entidade – o proprietário – e que um membro deve obedecer a um conjunto de restrições globais definidas pelo proprietário – O membro não existe fora do escopo de seu proprietário – Os proprietários conhecem seus membros, e cada membro conhece seu proprietário Entre quais entidades este relacionamento está definido? – Papel de objeto (o membro) e (sub-)organização (o proprietário) – Papel de agente (o membro) e (sub-)organização (o proprietário) Relacionamentos Ownership: – Uma instância de papel (papel do agente ou papel de objeto) só pode ser exercida por entidades na organização que definiu o papel – A organização define quem exerce os papéis identificados – A organização define qual papel pode ser exercido por uma entidade Relacionamentos Play: – Especifica que uma entidade está relacionada a um papel – Os agentes e as organizações interagem por meio dos papéis que exercem – Os relacionamentos entre agentes, entre agentes e organizações e entre organizações são indiretamente definidos pelos papéis que estão exercendo – Quando um objeto está exercendo um papel, as entidades interagem com o objeto por meio de seu papel Entre quais entidades este relacionamento está definido? – Papel de agente e o agente – Papel de agente e a suborganização – Papel de objeto e o objeto Relacionamentos Herança/Generalização: – Define que a sub-entidade que especializa a super-entidade herda as propriedades e os relacionamentos definidos na super-entidade – As propriedades herdadas também podem ser redefinidas pela subentidade – A sub-entidade também pode definir novas propriedades e novos relacionamentos Entre quais entidades este relacionamento está definido? – Todas as entidades que sejam do mesmo tipo Relacionamentos Control: – Define que a entidade controlada deve fazer tudo que a entidade do controlador pedir – A entidade controlador conhece as entidades controladas, e cada entidade controlada conhece as entidades que a controlam – As entidades controladas e do controlador serão os agentes ou as organizações que estão exercendo os papéis Entre quais entidades este relacionamento está definido? – Entre papéis de agente Relacionamentos Dependency: – Define que uma entidade – o cliente – pode ser definida para depender de outra – o fornecedor – para realizar seu trabalho – Especifica que uma alteração na especificação do fornecedor pode afetar o cliente, mas não necessariamente o contrário – O cliente sempre conhece seus fornecedores, mas o contrário pode não ser verdadeiro Entre quais entidades este relacionamento está definido? – Entre papéis de agente – Entre papéis de objeto – Entre papéis de agente (cliente) e papéis de objetos Relacionamentos Association: – Especifica um relacionamento semântico que pode ocorrer entre instâncias – Se uma entidade estiver associada à outra entidade, ela saberá da existência da outra entidade e, então, poderão interagir Entre quais entidades este relacionamento está definido? – Entre papéis de objeto – Entre papéis de agente – Entre papéis de objetos e papéis de agentes – Entre ambientes – Entre agentes – Entre objetos – Entre organizações e objetos – Entre papéis de agente e objeto Relacionamentos agregação: – Define a entidade que é o agregador e a entidade que é a parte. – Se uma entidade estiver agregada a outra, dizemos que ela é o agregador de partes. – O agregador pode usar a funcionalidade disponível em suas partes para realizar seu trabalho. Entre quais entidades este relacionamento está definido? – Entre papéis de objeto – Entre papéis de agente Sistema Multi-Agentes Sistema Multi-Agentes Organização principal agente ambiente agente objeto agente Sistema Multi-Agentes Sistema Multi-Agentes Organização principal Papel de agente Papel de objeto Organização principal agente ambiente agente objeto agente Sistema Multi-Agentes Sistema Multi-Agentes Sub-organização Organização principal Organização principal agente ambiente agente objeto agente Sistema Multi-Agentes Sistema Multi-Agentes Sub-organização Organização principal Papel de agente Papel de objeto Organização principal agente ambiente agente objeto agente Comportamento das entidades Análise do comportamento independente do domínio da aplicação Criação das entidades Destruição das entidades Interação entre as entidades – Agentes e sub-organizações interagindo com organizações – Agentes e sub-organizações interagindo com ambientes Estados de um papel de agente compromisso criado Criado execução reiniciada Ativo compromisso criado Inativo execução suspensa Destruído compromisso cancelado Agente (ou sub-organização) se movendo de um ambiente para outro Movendo de um ambiente para outro Saindo de um ambiente Saindo de uma organização Entrando em um ambiente Entrando em uma organização Agent Framework d'Inverno y Luck Framework Conceitual de d'Inverno e Luck Propõem uma hierarquia em quatro camadas – O ambiente consiste de entidades das quais algumas são objetos – Do conjunto de objetos, algumas são agentes, e dos agentes alguns são agentes autônomos. Entidades Entidade e Ambiente Entidade e ambiente: – Coleção de atributos Atributo – Uma preposição, um fato Objeto Entidade com possibilidade de interagir com o ambiente Entidade com conjunto de capacidades Capacidade: – conjunto de ações Ações: – Podem incluir ou retirar atributos do ambiente Objeto Função que, dado o estado atual do ambiente, retorna o conjunto de ações a serem executadas pelo objeto Variável que representa o onjunto de ações que o objeto irá executar A execução de uma ação: – Pode alterar o estado do ambiente e, por tanto, qual será a próxima ação – Não pode alterar os atributos, capacidades e função de seleção das ações (objectact) Agente Objeto é um agente se ele serve a um propósito útil para outro agente ou para si mesmo (neste caso seria um agente autônomo). Objeto com conjunto de objetivos não vazio Objetivos: – estado que o agente deseja atingir no ambiente Agente Percepção possível: – o que o agente pode enxergar do ambiente (varia de acordo com as capacidades do agente e com o estado do ambiente) Percepção atual: – o que o agente realmente enxerga do ambiente (varia de acordo com os objetivos do agente) Ações que são utiizadas para perceber Percepção possível Percepção atual Agente Seleção de ações: – baseada nos objetivos do agente, nas percepções atuais e no estado do ambiente Agent Estado: – Posspercepts: percepções possíveis – Percepts: percepções atuais Agente Operação: – indica qual é alteração no estado do agente dado a execução de uma ação – Podem mudar: percepções possíveis, percepções atuais e a próxima ação – Não mudam: atributos, capacidades, metas, ações de percepção e função de seleção das ações e percepções Agente Autônomo Agente com motivação, não são contralados por outros agentes. Motivação: – Possibilidade de gera suas próprias metas Também define percepções, ações e estado Descrição das entidades Agentes satisfazem metas Agentes autônomos, adicionalmente, criam metas Server-agents – Agentes que não são autônomos Neutral-objects: – Objetos que não são agentes SMA e Sociedade de agentes Sistema Multi-Agentes: – É composto por dois ou mais agentes – Tem pelo menos um agente autônomo (que tem a(s) meta(s)) – Existe pelo menos um relacionamento entre dois agentes onde um satisfaz a meta do outro Sociedade de agentes: conjunto de entidades e conjunto de relacionamentos em um SMA Relacionamentos Agentes adotam as metas de outros agentes Relacionamentos são definidos com base na adoção de metas. Engagement: quando um server-agent adota a meta de outro agente – server-agents são obrigados a adotarem uma meta de um agente autônomo Cooperação: quando um agente autônomo adota a meta de outro agente – um agente autônomo não é obrigado a adotar a meta de outro Referências Kaos: Dardenne, A.; Lamsweerde, A.; Fickas, S. (1993) "Goal-directed Requirements Acquisition." Science of Computer Programming. v.20, p.3-50. d'Inverno, M.; Luck, M. (2001) "Understanding Agent Systems". New York: Springer, 2001. Luck, M.; d'Inverno, M. “A conceptual framework for agent definition and development.” The Computer Journal, 44(1):1--20, 2001. Yu, L.; Schmid, B. “A Conceptual Framework for Agent-Oriented and RoleBased Work on Modeling.” In: WAGNER, G.; YU, E. (Eds.). Proceedings of the 1st International Workshop on Agent-Oriented Information Systems, 1999. TAO: 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 LargeScale Multi-Agent Systems, Springer-Verlag, LNCS 2603, pp. 1-26, 2003.