Metodologias Equipe do Curso de ES para SMA {lucena, furtado, choren, viviane}@inf.puc-rio.br Agenda • Gaia – F. Zambonelli, N. Jennings, M. Wooldridge • Message – G. Caire e outros Laboratório de Engenharia de Software (LES) – PUC-Rio Gaia • Fase de Análise • Fase de Design Arquitetural • Fase de Design Detalhado Laboratório de Engenharia de Software (LES) – PUC-Rio Laboratório de Engenharia de Software (LES) – PUC-Rio Gaia • Se baseia na abstração Organização Laboratório de Engenharia de Software (LES) – PUC-Rio Gaia • Não lida com nenhuma técnica específica de modelagem • Não lida com os problemas de implementação. • Não especifica a plataforma de implementação que deve ser usada • Não lida como as etapas de levantamento de requisitos Laboratório de Engenharia de Software (LES) – PUC-Rio Conceitos • Ambiente – Coisas físicas ou virtuais – Quais são os recursos do ambiente que os agentes podem sentir e atuar? – Como o agente pode perceber o ambiente? – Quais são os agente que habitam o ambiente? • Papéis – Define o que se espera que um agente faça em uma organização (em relação a outros agentes e em relação a organização) – Funcionalidades, atividades e responsabilidades – Interação entre papéis • Protocolos e padrões Laboratório de Engenharia de Software (LES) – PUC-Rio Conceitos • Regras organizacionais – Regras aplicadas a todos os papéis e protocolos – Regras que expressam relacionamentos e restrições entre papéis, entre protocolos e entre papéis e protocolos • Estrutura organizacional – Descreve todos os papéis da organização e suas posições na organização – Gera o modelo de papéis Laboratório de Engenharia de Software (LES) – PUC-Rio Fase de Análise Fase de Análise • • • • • Subdivisão do sistemas em sub-organizações Modelo de ambiente Modelo preliminar de papéis Modelo preliminar de interação Regras organizacionais Laboratório de Engenharia de Software (LES) – PUC-Rio Subdivisão do sistema em sub-organizações • Identificação dos objetivos das organizações • Quando é trivial encontrar organizações? – O sistema já fala de quais são as organizações – O sistemas imita o mundo real • Como achar organizações quando não é trivial? – Verificar se parte do sistema possui um comportamento orientado a um determinado sub-goal – Quais partes interagem pouco? – Verificar se algumas partes estão relacionadas a competências que outras partes não possuem Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo do ambiente • Representação computacional do ambiente no qual o SMA está situado Lista de recursos: cada recurso – Nome simbólico – Lista de ações que o agente executa no recurso – Comentários adicionais e descrições Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo preliminar de papéis • Identificação das habilidades básicas requeridas pela organização • Identificação apenas dos papéis que são independentes da estrutura organizacional • Definição incompleta dos papéis – Não tem informação sobre interação • Conjunto incompleto dos papéis – Papéis dependentes da estrutura organização não são modelados Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo preliminar de papéis • Permissões – Relacionam papéis ao ambiente – Identifica os recursos que podem e os que não podem ser acessados pelo papel Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo preliminar de papéis • Responsabilidades – Representa o comportamento esperado de um papel – Propriedades Liveness: “alguma coisa boa acontece” • Define os estados que o agente quer atingir REVIEWER = (ReceivePaper.ReviewPaper.SendReviewForm)maxim_number protocol activiy – Propriedades Seguras: “nada de ruim acontece” • Invariantes • Define os estados que são mantidos number of papers = number of review forms Número de artigos aceitos por um revisor deve ser igual ao número de revisões feitas Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo preliminar de papéis Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo preliminar de papéis Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo preliminar de interação • Identifica as interações básicas requeridas pelos papéis já identificados • A interação não está amarrada a nenhuma estrutura organizacional • Captura as dependências e os relacionamentos entre os vários papéis Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo preliminar de interação • Um protocolo para cada tipo de interação entre papéis – – – – – – Nome Aquele que inicia Aquele que responde Inputs: informações usadas para iniciar o protocolo Outputs: informações resultantes do protocolo Descrição Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo preliminar de interação Laboratório de Engenharia de Software (LES) – PUC-Rio Regras organizacionais • Regras que especificam o comportamento da organização como um todo • Capturam relacionamentos gerais entre: – Papéis – Protocolos – Papéis e protocolos Laboratório de Engenharia de Software (LES) – PUC-Rio Regras organizacionais • Regras liveness – Como a dinâmica da organização deve evoluir no tempo R → Q: significa que papel Q só pode ser desempenhado pela entidade se ela tiver desempenhado papel R. • Regras seguras – Definem invariantes que devem ser respeitadas independentemente do tempo ¬(R|Q): significa que dois papéis R e Q nunca podem ser desempenhados concorrentemente pela mesma entidade. Laboratório de Engenharia de Software (LES) – PUC-Rio Design Arquitetural Detalhado Design Arquitetural Detalhado • Documenta todas as características funcionais que o sistema tem que expressar junto com as características do ambiente no qual o sistema se encontra • Estrutura organizacional • Modelo de papéis completo • Modelo de protocolos completo Laboratório de Engenharia de Software (LES) – PUC-Rio Estrutura Organizacional • Topologia + Regime de controle – Topologia: descreve o relacionamento entre os papéis – Regime de controle: descreve o tipo dos papéis • Como decidir? – Atingir eficiência organizacional – Respeitar as regras organizacionais – Minimizar a distância com a organização do mundo real Laboratório de Engenharia de Software (LES) – PUC-Rio Estrutural Organizacional: Topologias • A topologia organizacional mais simples com a qual é possível lidar com as complexidades computacionais e de coordenação deve ser a escolhida • Exemplos de topologias: – Coleção de peers (todos os membros possuem a mesma autoridade na organização) – Hierarquia (existe membros que são lideres e outros submissos) Laboratório de Engenharia de Software (LES) – PUC-Rio Estrutura Organizacional: Regime de controle • Exemplos de regime de controle – Partição de trabalho (cada peer tem o mesmo papel e provê o mesmo serviço) – Especialização de trabalho (cada peer tem um serviço/atividade específica) Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo de papéis e de protocolos (completo) • Definir todas as atividades dos papéis • Definir papéis organizacionais – Provenientes da adoção da estrutura organizacional • Completar a definição do protocolo requerido pela aplicação • Definir os protocolos organizacionais – Provenientes da adoção da estrutura organizacional Laboratório de Engenharia de Software (LES) – PUC-Rio Design Detalhado Fase de Design Detalhado • Objetivo é identificar os agentes e os serviços provendo dicas para a implementação • Modelo de agente • Modelo de serviço Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo de agente • Agente – Entidade ativa que desempenha um conjunto de papéis • Descreve quais classes de agentes irão desempenhar quais classes de papéis • Identifica as instâncias de agentes que serão criadas • Como decidir o mapeamento entre papéis e agentes? – Não deve afetar a eficiência da organização – Não viola as regras organizacionais Laboratório de Engenharia de Software (LES) – PUC-Rio Modelo de serviço • Serviços – blocos de atividade alocados – aos agentes • Não confundir com um método • Propriedades: – Inputs e Outputs (provenientes da análise dos modelos de protocolos e ambientes) – Pre-condições – Pós-condições Laboratório de Engenharia de Software (LES) – PUC-Rio