A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Avaliação da Modularidade e Estabilidade de Técnicas de Implementação para Linhas de Produtos de Sistemas Multi-agentes Camila Nunes Orientadores: Carlos.

Apresentações semelhantes


Apresentação em tema: "Avaliação da Modularidade e Estabilidade de Técnicas de Implementação para Linhas de Produtos de Sistemas Multi-agentes Camila Nunes Orientadores: Carlos."— Transcrição da apresentação:

1 Avaliação da Modularidade e Estabilidade de Técnicas de Implementação para Linhas de Produtos de Sistemas Multi-agentes Camila Nunes Orientadores: Carlos Lucena Uirá Kulesza

2 2 camila © LES/PUC-Rio Agenda Motivação / Problema / Solução Proposta As LP-SMAs –Expert Committee –OLIS Avaliação da Estabilidade Avaliação da Modularidade Discussões e Lições Aprendidas Conclusões

3 3 camila © LES/PUC-Rio Motivação Linha de Produtos de Software (LPS) –Refere-se a um conjunto de técnicas de engenharia para a criação de produtos similares a partir de um conjunto de artefatos compartilhados –Explora as partes comuns e variáveis existentes entre os sistemas –Reuso de um conjunto de diferentes artefatos: Frameworks OO Desenvolvimento Baseado em Componentes Bibliotecas de software –Novas técnicas têm sido exploradas: Programação orientada a aspectos Geração de código Compilação condicional

4 4 camila © LES/PUC-Rio Motivação Vantagens dos Agentes de Software –Recomendação de produtos e informações –Serviços Inteligentes –Aplicações em diversos domínios Linhas de Produto de Sistemas Multi-agentes (LP-SMA) –Reuso em larga-escala de features de agência comuns e variáveis entre as aplicações de SMA –Os pontos de variação associados as features de agência Autonomia Reatividade Pró-atividade LPS + SMA

5 5 camila © LES/PUC-Rio Problema Projeto Modular e Estável de determinadas variabilidades em uma LP-SMA –Efeito transversal sobre as decomposições da arquitetura de agentes –Técnicas de implementação para habilitar a configuração e interdependências Ineficácia de mecanismos de implementação –Aumento da complexidade –Dificuldades nas atividades de manutenção da arquitetura de LP-SMA –Redução da estabilidade da arquitetura. Longevidade de uma LP-SMA é altamente dependente de mecanismos de implementação

6 6 camila © LES/PUC-Rio Problema Como lidar com a evolução de uma LP-MAS? –Inclusão e remoção de features opcionais, alternativas e obrigatórias –Features transversais –Transformação de features Quais mecanismos de variabilidade são mais apropriados para promover a estabilidade de arquiteturas de LP-SMA? –Compilação condicional –Arquivos de configuração –Programação Orientada a Aspectos

7 7 camila © LES/PUC-Rio Trabalhos Relacionados Figueiredo, E. et al (2008). Evolving software product lines with aspects: An empirical study on design stability –Estudo empírico de duas linhas de produto para dispositivos móveis: MobileMedia e BestLap –Análise baseada em métricas para modularidade, propagação de mudanças e interação de features Garcia, A et al (2003). Agents and Objects: An Empirical Study on the Design and Implementation of MAS –Comparação de duas técnicas POA Desenvolvimento orientado a padrões –Avaliação de interesses transversais de SMA: mobilidade, autonomia, interação, colaboração

8 8 camila © LES/PUC-Rio Limitações dos Trabalhos Relacionados Domínio diferente do utilizado neste trabalho: LP-SMA –Inclusão de features de agentes nos cenários de evolução Não avaliam as (des)vantagens de diferentes estratégias de implementação para melhorar a longevidade do projeto de uma LP-SMA Não avaliam qualitativamente e quantitativamente o uso de plataformas de SMA e diferentes técnicas de implementação: –Compilação Condicional –Arquivos de configuração –POA.

9 9 camila © LES/PUC-Rio Solução Proposta Estudo empírico para avaliar a Modularidade e Estabilidade de diferentes técnicas de implementação em LP-SMA Comparação de duas plataformas de desenvolvimento de SMA (JADE e Jadex) e técnicas de implementação de variabilidades: –Compilação Condicional –Arquivos de Configuração –Programação Orientada a Aspectos Avaliação de duas LP-SMA no domínio Web –Aplicação de um conjunto de cenários de evolução –Inclusão de agentes de software Avaliação quantitativa e qualitativa da modularidade e estabilidade de LP-SMA através de um conjunto de métricas

10 10 camila © LES/PUC-Rio Primeiro Estudo LP-SMA Expert Committee (EC) Sistema de Gerenciamento de Conferência –Submissão de papers –Processo de revisão Comparação de duas versões usando a plataforma JADE: –Compilação condicional –Técnicas de Programação Orientada a Aspectos

11 11 camila © LES/PUC-Rio Cenários de Mudanças ReleasesDescriçãoTipo de Mudança R1Arquitetura base do Expert Committee. R2Inclusão do papel Revisor.Inclusão de feature opcional R3 Feature adicionada para incluir agentes de usuário (User Agents), incluindo o papel de autor. Nova feature para permitir a sugestão de conferências para os autores. Inclusão de feature opcional R4 Inclusão do agente notificador (Notifier Agent) para enviar mensagens para os usuários do sistema através de e SMS. Inclusão de feature opcional e alternativa R5 Inclusão do agente de deadlines. Este agente é responsável por monitorar os deadlines da conferência. Inclusão de feature opcional R6 Inclusão da feature que permite o chair distribuir automaticamente os artigos para os membros do comitê. Extensão do agente de deadlines para permitir o lembrete dos deadlines. Inclusão de feature opcional e extensão de feature opcional. R7Inclusão do agente de tarefas.Inclusão de feature opcional

12 12 camila © LES/PUC-Rio Arquitetura da LP-SMA do EC Database User Data Agent AssignPapers Action BaseAction Observable Conference ServiceImp l ConferenceDAO Hibernate PaperDAO Hibernate … CreateConference Action … GUI Layer Paper ServiceImpl … Observer Business Layer Data Layer Observable Service TaskAction Task ServiceImpl TaskDAO Hibernate Environment Agent > User Agents Notifier Agent SMSMAIL Deadline Agent Task Agent Chair Role Coordinato r Role Author Role Committee Member Role Reviewer Role

13 13 camila © LES/PUC-Rio Tipos de Variabilidades Tipos de Features na LP-SMA do EC: –(i) Novas features para o gerenciamento de conferência: Features relacionadas ao processo de gerenciamento da conferência –(ii) Novos agentes de software: Inclusão de agentes –(iii) Novos comportamentos e papéis para o agente: Features que têm impacto dentro dos agentes, variabilidades internas

14 14 camila © LES/PUC-Rio O Estudo Empírico Os estudos foram estruturados segundo os princípios definidos por Wholin et al (2000) –Definição –Planejamento Seleção do Contexto e Seleção dos Participantes Formulação das Hipóteses Seleção das Variáveis –Operação –Análise e Interpretação Caracterizados como um quasi-experimentos Wohlin, C., et al. (2000). Experimentation in software engineering: an introduction. Kluwer Academic Publishers, Norwell, MA, USA.

15 15 camila © LES/PUC-Rio O Estudo Empírico Definição do Experimento –Objetivo do experimento –Template GQM (Goal-Question-Metric) Analisar as duas diferentes versões da LP-SMA do EC Com o propósito de avaliar técnicas de programação usando o framework JADE Com respeito a modularidade e estabilidade Do ponto de vista desenvolvedor/pesquisador No contexto de estudantes da pós-graduação do Laboratório de Engenharia de Software da PUC-Rio

16 16 camila © LES/PUC-Rio Operação O estudo foi dividido em quatro fases: –Projeto e Implementação das três duas da LP-SMA –Avaliação da Modularidade –Avaliação do impacto das mudanças –Análise dos Dados Durante o desenvolvimento –Boas práticas de projeto para todas as versões da LP- SMA Arquitetura em camadas e padrões de projeto –Tornar a comparação confiável

17 17 camila © LES/PUC-Rio Operação Métricas usadas para quantificar a modularidade em termos dos seguintes atributos: –Separação de concerns –Interação entre concerns –Tamanho –Coesão –Acoplamento Medição da Manutenibilidade –Avaliar os efeitos de propagação em termos de componentes, linhas de código e operações

18 18 camila © LES/PUC-Rio Análise da Estabilidade R2R3R4R5R6R7 Componentes Adicionados OO OA Componentes Modificados OO OA Operações Adicionadas OO OA Operações Modificadas OO OA Pointcuts Adicionados OA Pointcuts Modificados OA LOC Adicionadas OO OA LOC Modificadas OO OA000000

19 19 camila © LES/PUC-Rio Análise da Modularidade Métricas de Concern da Feature Revisor (R2) Solução OA foi mais efetiva na modularização desta feature –Código cola Compilação Condicional é mais invasiva –Definição de #ifdef/#endif

20 20 camila © LES/PUC-Rio Análise da Modularidade Difusão do Concern por Componentes (CDC) – Feature Revisor (R2) Solução OO encontra-se mais espalhada R7 houve um aumento significativo para todas as métricas –Classes de eventos que se comunicam com a feature Revisor

21 21 camila © LES/PUC-Rio Projeto OO da LP-SMA do EC

22 22 camila © LES/PUC-Rio Projeto OA da LP-SMA do EC

23 23 camila © LES/PUC-Rio Análise da Modularidade Difusão do Concern por Operações (CDO) – Agentes de Usuário (R3) Aumento no número de operações –Operações adicionadas ao código base para os aspectos afetarem os joinpoints

24 24 camila © LES/PUC-Rio Análise da Modularidade Difusão do Concern por Componentes (CDC) – Agentes de Usuário Solução OO encontra-se menos espalhada –Compilação condicional -> inclusão das cláusulas localmente Solução AO –Conjunto de aspectos para especificar os papéis

25 25 camila © LES/PUC-Rio Projeto OO da LP-SMA do EC

26 26 camila © LES/PUC-Rio Projeto OA da LP-SMA do EC

27 27 camila © LES/PUC-Rio Análise da Modularidade Difusão do Concern por Linhas de Código (CDLOC) Solução OO –Mudança nas classes aumenta o nível de entrelaçamento

28 28 camila © LES/PUC-Rio Análise da Modularidade Difusão do Concern por Componentes (CDC) – Feature Agente Notificador (R4) Solução OA: Aumento de CDC a partir do R5 –Aspectos relacionados a papéis específicos dos agentes –Permitir melhor gerenciamento (inclusão/remoção)

29 29 camila © LES/PUC-Rio Média de Acoplamento Solução OA –Reduziu o acoplamento das classes –Ainda mantém referências a algumas classes (declarações inter-tipos) –Implementação do padrão Role Papéis melhores modularizados na solução OA

30 30 camila © LES/PUC-Rio Média de Coesão Solução OA –Alta coesão - Implementação do Padrão Observer Solução OO –Implementação original da classe e código relacionado ao padrão

31 31 camila © LES/PUC-Rio Métricas de Tamanho Solução OA –Aspectos são heterogêneos –Conseqüência - Métricas NOO e LOC são maiores Solução OO –Uso de operadores AND/OR foram suficientes para permitir a combinação das features

32 32 camila © LES/PUC-Rio Dependência de Features Solução OO –Entrelaçamento (Papéis: Autor, Chair, Membro do Comitê de Programa, Coordenador; ACLMessage, Persistence, Review e MessageFactory) Solução AO –Transferência dos elementos da implementação das classes para os aspectos

33 33 camila © LES/PUC-Rio Segundo Estudo OLIS é uma LP-SMA que provê diversos serviços Comparação de três versões: –JADE e arquivos de configuração –Jadex e arquivos de configuração –JADE com técnicas de POA

34 34 camila © LES/PUC-Rio LP-SMA OLIS OLIS (OnLine Intelligent Services) –LP-SMA para o domínio Web que provê diversos serviços pessoais para os usuários –O núcleo da arquitetura do OLIS Anúncio de eventos Serviços de calendário –Gerencia diversos tipos de Eventos Genérico Acadêmico Viagem –Também foi estruturado de acordo com o padrão arquitetural em camadas

35 35 camila © LES/PUC-Rio LP-SMA OLIS Novas funcionalidades com comportamento autônomo –Lembrete de Eventos Sistema envia notificações para o usuário sobre os eventos que irão acontecer –Escalonador de Eventos Sistema verifica se existe conflito com eventos já existentes e sugere uma nova data para o evento –Sugestão de Eventos O sistema automaticamente recomenda o evento para outros usuários baseado nas suas preferências –Tempo Provê informações sobre as condições de tempo atuais e as previsões do local Usado pelo sistema para recomendar eventos de viagens anunciados

36 36 camila © LES/PUC-Rio Cenários de Mudanças da LP-SMA OLIS R#DescriçãoTipo de Mudança R1 Núcleo do OLIS - Sistema Web. R2 Nova feature adicionada para permitir o usuário importar eventos para o seu calendário. Inclusão de feature obrigatória. R3 Feature adicionada para permitir o suporte a eventos acadêmicos. Inclusão de feature alternativa. R4 Inclusão do papel de Sugestão de Eventos para sugerir eventos acadêmicos. Inclusão de feature opcional. R5 Inclusão do papel de lembrete de eventos. Inclusão de feature opcional. R6 Inclusão do papel de escalonador de eventos. Inclusão de feature opcional. R7 Inclusão do agente de tempo.Inclusão de feature opcional.. R8 Feature adicionada para permitir o suporte a eventos de viagem. Inclusão de feature alternativa.

37 37 camila © LES/PUC-Rio O Estudo Empírico Definição do Experimento –Objetivo do experimento –Template GQM (Goal-Question-Metric) Analisar as três diferentes versões da LP-SMA OLIS Com o propósito de avaliar técnicas de programação Com respeito a modularidade e estabilidade Do ponto de vista desenvolvedor/pesquisador No contexto de estudantes da pós-graduação do Laboratório de Engenharia de Software da PUC-Rio

38 38 camila © LES/PUC-Rio Análise da Estabilidade R2R3R4R5R6R7R8 Components A Jade Jadex OA M Jade Jadex OA Operações A Jade Jadex OA M Jade Jadex OA Pointcuts A OA M OA Linhas de Código A Jade Jadex OA M Jade Jadex OA Feature Obrigatória

39 39 camila © LES/PUC-Rio Análise da Estabilidade R2R3R4R5R6R7R8 Components A Jade Jadex OA M Jade Jadex OA Operações A Jade Jadex OA M Jade Jadex OA Pointcuts A OA M OA Linhas de Código A Jade Jadex OA M Jade Jadex OA Features Opcionais

40 40 camila © LES/PUC-Rio Análise da Estabilidade R2R3R4R5R6R7R8 Components A Jade Jadex OA M Jade Jadex OA Operações A Jade Jadex OA M Jade Jadex OA Pointcuts A OA M OA Linhas de Código A Jade Jadex OA M Jade Jadex OA Features Alternativas

41 41 camila © LES/PUC-Rio Análise da Modularidade (Multi-Releases) Feature Obrigatória adicionada na R2 –Importar Eventos Implementação OA foi mais efetiva

42 42 camila © LES/PUC-Rio Projeto OO da LP-SMA OLIS

43 43 camila © LES/PUC-Rio Projeto OA da LP-SMA OLIS

44 44 camila © LES/PUC-Rio Análise da Modularidade (Multi-Releases) Feature alternativa - Eventos Acadêmicos (R3) Mesmos valores para todas as implementações em termos das métricas de CDC e CDO –Componentes adicionais para todas as implementações OO + arquivos de configuração – criação de classes que estendem classes existentes no núcleo da LP-SMA AOP – criação de aspectos que afeta cada classe

45 45 camila © LES/PUC-Rio Análise da Modularidade (Multi-Releases) Feature opcional - Sugestão de Eventos (R4) Implementação Jadex exibiu mais componentes (CDC) –Inclusão de muitos planos (classes Java) e arquivos XML para gerenciar estes planos

46 46 camila © LES/PUC-Rio Ameaças à Validação da Análise Validade de Conclusão –Tamanho da LP-SMA –Aplicação do teste estatístico Validade de Construção –Conjunto de métricas utilizadas Métricas de concern aplicadas manualmente –Algumas métricas foram coletadas automaticamente Validade Interna –Regras de alinhamento (projeto) –Utilizado os mesmos padrões para todas as versões Validade Externa –Natureza dos experimentos escolhidos –Necessidade de novos experimentos para generalização dos resultados

47 47 camila © LES/PUC-Rio Discussões Implementação de Papéis –Inclusão de novos papéis nas releases da LP-SMA OLIS Melhores resultados na implementação Jadex »CDO, CDC e número de atributos –Uma boa estrutura infra-estrutura pode prover abstrações chaves para os desenvolvedores Plataforma Jadex –A estrutura do framework OO pode ser enriquecida com técnicas de POA (entrelaçamento de papéis) Modularização de features alternativas –Inclusão de features alternativas na LP-SMA OLIS ocorreu nas R3 e R8 –JADE foi melhor para a métrica CDC, Jadex para a métrica CDO e número de atributos e AO para métrica CDLOC –Jade e Jadex OO são mais adequados

48 48 camila © LES/PUC-Rio Discussões Estabilidade das Implementações –Jade-OA LOC, CDLOC e operações modificadas Mudanças em componentes não relacionados –Jadex Menos operações adicionadas Jade com técnicas de compilação condicional –Mudanças feitas diretamente nos componentes Arquivos de Configuração –Aumento no número de componentes e operações Manutenibilidade X Tamanho do Sistema

49 49 camila © LES/PUC-Rio Discussões Evolução das LP-SMA com POA –Implementação dos agentes –Implementação dos papéis –Integração dos agentes no sistema –Padrões com POA –Mais aderente ao princípio Open-Closed Gerenciamento das Features –Inclusão das features Solução OA –Aumento no número de novos componentes na solução AO –LP-SMA do EC são: inclusão dos agentes de usuário e agente notificador –Redução do entrelaçamento Solução com arquivos de configuração –Maior número de componentes e linhas de código

50 50 camila © LES/PUC-Rio Discussões Modularidade das Implementações –Benefícios de algumas implementações –Primeiramente, aplicação do teste Kolmogorov-Smirnov –Aplicação do teste estatistico não parametrizado Kruskal- Wallis O teste foi aplicado com um nível de significância de=0.025, o que significa que o resultado é tratado com um grau de confiança de 97,5% Demonstrou que as três versões têm o mesmo grau de modularidade e manutenibilidade (Hipótese Nula) –Projeto OO bem modularizado com arquivos de configuração Spring –O uso de JADE com técnicas de POA não foi superior as implementações Jadex e Jade OO

51 51 camila © LES/PUC-Rio Conclusões O trabalho pode ser dividido em três partes: –Projeto e implementação das LP-SMAs –Modelagem dos estudos empíricos –Relato das discussões e lições aprendidas com o estudo Comparação de diferentes técnicas de implementação de variabilidades utilizando dois frameworks de SMA (JADE e Jadex). –Compilação Condicional –Arquivos de Configuração –POA Conjunto de lições aprendidas relacionadas ao desenvolvimento de features de agência

52 52 camila © LES/PUC-Rio Publicações NUNES, I. O.; NUNES, C.; KULESZA, U.; LUCENA, C. Developing and Evolving a Multi-Agent System Product Line: An Exploratory Study. In: 9th International Workshop on Agent-Oriented Software Engineering (AOSE08), 2008, Estoril. pp NUNES, I. O.; NUNES, C.; KULESZA, U.; LUCENA, C. Developing and Evolving a Multi-Agent System Product Line: An Exploratory Study. In: Agent-Oriented Software Engineering IX: 9th International Workshop, AOSE Lecture Notes in Computer Science, Springer-Verlag, To appear. NUNES, C.; KULESZA, U.; SANT'ANNA, C.; NUNES, I.; GARCIA, A.; LUCENA, C. Comparing stability of implementation techniques for multi- agent system product lines. In: 13 th European Conference on Software Maintenance and Reengineering (CSMR 2009), Kaiserslautern, Germany, pp NUNES, C.; KULESZA, U..; SANT'ANNA, C.; NUNES, I.; LUCENA, C. On the Modularity Assessment of Aspect-Oriented Multi-Agent Systems Product Lines: a Quantitative Study. In Simpósio Brasileiro de Componentes, Arquiteturas e Reutilização de Software (SBCARS 2008), pp

53 Avaliação da Modularidade e Estabilidade de Técnicas de Implementação para Linhas de Produtos de Sistemas Multi-agentes Camila Nunes Orientadores: Carlos Lucena Uirá Kulesza


Carregar ppt "Avaliação da Modularidade e Estabilidade de Técnicas de Implementação para Linhas de Produtos de Sistemas Multi-agentes Camila Nunes Orientadores: Carlos."

Apresentações semelhantes


Anúncios Google