Programação de Computadores Viviane Torres da Silva [email protected] viviane.silva/progIII.
Metodologias (Parte II) Viviane Torres da Silva [email protected] viviane.silva/isma.
Transcript of Metodologias (Parte II) Viviane Torres da Silva [email protected] viviane.silva/isma.
Metodologias (Parte II)
Viviane Torres da [email protected]
http://www.ic.uff.br/~viviane.silva/isma
Metodologia Gaia
Se baseia na abstração de organizações Não está relacionada a nenhuma linguagem de modelagem Não se preocupa com os problemas de implementação
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
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
Etapa 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
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
Modelo do ambiente
Representação computacional do ambiente Lista de recursos: cada recurso
– Nome simbólico
– Lista de ações que o agente executa no recurso
– Comentários adicionais e descrições
Modelado preliminar de roles I/III
Identificação das habilidades básicas requeridas pela organização
Apenas os papéis independentes da estrutura organizacional
Definição incompleta dos papéis– Identifica as permissões e as responsabilidades dos papéis
– Não tem informação de com quem eles interagem
Conjunto incompleto dos papéis– Papéis dependentes da estrutura organização
Modelado preliminar de roles II/III
Permissões– Relacionam papéis ao ambiente
– Identifica os recursos que podem e os que não podem ser acessados pelo papel
Responsabilidades– Representa o comportamento esperado de um papel
– Propriedades Liveness: “alguma coisa boa acontece”• Define os estados que o agente quer atingir
– Propriedades Seguras: “nada de ruim acontece”• Invariantes
• Define os estados que são mantidos
Modelo preliminar de interação
Identifica as interações básicas requeridas pelos papéis
Captura as dependências e os relacionamentos entre os vários papéis
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
Regras organizacionais
Capturam relacionamentos gerais entre:– Papéis
– Protocolos
– Papéis e protocolos
São responsabilidades da organização como um todo
Regras liveness– Como a dinâmica da organização deve evoluir no tempo
Regras seguras– Invatiantes que devem ser respeitadas na organização
Exemplo
Regra liveness– O revisor só pode enviar a revisão de um artigo despois de receber o
artigo
Regla segura– O revisor de um artígo não pode ser o autor do artigo
Etapa de Projeto Arquitetural
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
Estructura Organizacional
Topologia + Regime de controle Topologia: descreve o relacionamento entre os papéis
– Escolher a topologia mais simples que possa solucionar as complexidades computacionais
– Exemplos de topologias: hierárquica e coleção de indivíduos
Regime de controle: descreve o tipo dos papéis– Pensar na divisão de trabalho e na especialização do trabalho
Como decidir?– Necessidade de atingir eficiência organizacional
– Necessidade de respeitar as regras organizacionais
– Necessidade de minimizar a distância com a organização do mundo real
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
Etapa de Proyecto Detallado
Objetivo é identificar os agentes e os serviços provendo dicas para a implementação
Modelo de agente
Modelo de serviço
Modelado de agentes
Agente– Entidade ativa que desempenha um conjunto de papéis
Descreve quais classes de agentes irão desempenhar quais classes de papéis
Como decidir?– Não deve afetar a eficiência da organização
– Não viola as regras organizacionais
Modelado de serviços
Bloco de atividade alocado a um agente 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
MESSAGE
Estende os diagramas de Classe e Atividades de UML com conceitos relacionados a agentes:
– Organizações, papéis, metas e tarefas.
Fase de Análise:– Objetivos: melhor entender o problema, confirmar que aquele é o
problema certo a ser resolvido e facilitar o design da solução– Descreve papéis, serviços e interações entre os papéis
Fase de Design:– Design de alto nível: independente de implementação– Design de baixo nível: dependente da plataforma de implementação ou
arquitetura
MESSAGE
Design de alto nível:– Papéis são associados a agentes
– Serviços são descritos em termos de tarefas (ações de agentes)
– Interações são transformadas em protocolos
Design de baixo nível:– Mapeia os elementos do design de alto nível para elementos
computacionais da plataforma de implementação
Conceitos
Agente– Entidade autônoma que é capaz de fazer alguma função– Serviços: funcionalidades do agente– Propósito: motivação do agente para executar algum serviço
Organização– Grupo de agentes trabalhando juntos para um propósito geral
Papéis– Interface X Objeto => Papel X Agente– Descreve as características externas de um agente em um contexto
Conceitos
Metas:– Estado que o agente quer atingir
Tarefa:– Atividade
– Possui pré e pós-condições
Interação– Atividade
– Define os participantes e o propósito que os participantes tentarão atingir
Mensagem– Objeto enviado por um agente a outro agente
Visões
Organização– Modela entidades concretas do sistemas (agentes, organizações, papéis
e recursos), o ambiente e os relacionamentos entre eles
Meta/Tarefa– Descreve as metas, tarefas, estados e dependências entre eles
– Tarefas pode ser executadas para atingir um objetivo
Agente/Papel– Foca em agentes e papéis
– Quais metas são responsabilidades de um agente, quais eventos ele controla, quais tarefas ele sabe executar, ...?
Visões
Interação: para cada interação definir:– quem começa a interação,
– o colaborador,
– a motivação (meta),
– as informações enviadas e recebidas,
– o evento que dispara a conversação, ...
Domínio– Mostra os conceitos específicos de domínio e as relações que são
relevantes para cada sistema em desenvolvimento
ISMA
Visión de la organización
Vê o sistema como uma caixa preta (sem olhar os detalhes) Foca no relacionamento entre as entidades e o ambiente
(recurso)
recurso
papel
organização
Visão OrganizacionalVisão Organizacional
interacción
Visão de Task/Goal
Descreve como um serviço é realizado por uma seqüência de tarefas serviço tarefa
papel
Visão Organizacional
Foco no sistema em si identificando as suas funcionalidades
Considerar apenas os papéis (pensar nos agentes na fase de design)
Visão Agente/Rol
Associação das metas ao papéis Relacionada as visões de decomposição de metas e
organizações
Visão de Interação
Descreve quais agente interagem, quando e porquê eles interagem
Detalhes de como interagem são descritos no processo de design
Visão de Domínio
Usar diagrama de classes de UML para representar conceitos do domínio e o relacionamento entre eles
Transição da etapa de Análise para Projecto de alto nível
Identificar os agentes e associar agentes ao papéis
Descrever como os serviços são providos através da identificação de tarefas
Definir protocolos de interação a partir do refinamento das interações (modeladas na fase de análise)
Identificar o comportamento dos papéis dos protocolos de interação através de statecharts..
Atividades da Fase de Design
Detalhando as entidades:– Definição das classes, interfaces, atributos, métodos, e diagramas de
UML Seleção da arquitetura para agentes
– Dependente das funcionalidades definidas no nível de análise Usar a arquitetura:
– Produzir os agentes da aplicação Atualizar/Modificar as visões:
– Decisões de design podem ter afetado as visões. Refazer Estruturar os resultados de acordo com a visão de organização
Etapa de Análise I/III
Objetivo: descrobir os papéis cujas tarefas estejam relacionadas com os requisitos do sistema
Capturando os objetivos: Objetivos: Identificar os objetivos do sistema e estruturar os
objetivos Os objetivos são os requisitos funcionáis do sistema
Hierarquia de objetivos– Modelagem da estrutura dos objetivos
Etapa de Análise II/III
Aplicando os casos de uso: Objetivo: capturar os casos de uso do sistema e criar um
diagrama de seqüência inicial para descubrir os papéis e as comunicações que podem ocorrer no sistema
Criando os casos de uso:– Define os cenários básicos que o sistema deve executar
Diagrama de seqüência:– Descrebe os eventos que são enviados pelos papéis em um cenário
Etapa de Análise III/III
Detalhando os papéis Transformar os dados dos casos de uso e os diagramas de
seqüência em papéis e tarefas
Modelagem de papéis:– Modelagem dos papéis, seus objetivo, suas tarefas e as relações entre
elas
Modelagem de tarefas concorrentes:– Diagrama de estados de UML
Etapa de Projeto I/II
Objetivo: definir os agentes do sistema
Criando as classes de agentes Classes de agentes
– As classes dos agentes são criadas a partir dos papéis e das tarefas– Criação do diagrama de classes de agentes
Construindo as interações entre os agentes Descrever em detalhes a interação/protocolo entre os agentes Sempre existem dois diagramas de interação para cada
converssa entre dois agentes Utiliza o diagrama de estados de UML
Etapa de Projeto II/II
Detalhando os agentes Objetivo: descobrir a parte interna dos agentes de acordo com
a arquitetura escolhida
Projeto do sistema Objetivo: criar as instâncias dos agentes nos ambientes que
compõem o sistema Criar o Diagrama de Deployment