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

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

Camila Nunes Orientadores: Carlos Lucena Uirá Kulesza

Apresentações semelhantes


Apresentação em tema: "Camila Nunes Orientadores: Carlos Lucena Uirá Kulesza"— Transcrição da apresentação:

1 Camila Nunes Orientadores: Carlos Lucena Uirá Kulesza
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 Motivação / Problema / Solução Proposta As LP-SMAs
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 camila © LES/PUC-Rio

3 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 Linhas de Produtos de Software (LPS) são uma abordagem promissora para melhorar a produtividade do processo de desenvolvimento de software LPS pode ser vista como uma família de sistemas que endereça um segmento de mercado Para a construção dessa familia de sistemas, é preciso se explorar as partes comuns e variáveis existentes entre os sistemas. Várias abordagens para o desenvolvimento de LPS foram propostas, elas objetivam a construção de uma arquitetura flexível e customizável para todas as aplicações. Arquiteturas de LPS são implementadas pela definição ou reuso de um conjunto de diferentes artefatos, tais como: frameworks OO, DBC e bibliotecas de software. Recentemente, novas técnicas têm sido exploradas nesse desenvolvimento. camila © LES/PUC-Rio

4 LPS + SMA 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 Agentes de Software trazem vantagens únicas para o desenvolvimento de software Multi-agent Systems New software engineering paradigm Address the development of distributed complex systems Multi-agent System Product Lines Systematic way to address a set of common and variable agency features in a family of MAS products Promote large-scale reuse across multiple MAS applications Os pontos de variação associados as features de agência estendem-se a suas capacidades funcionais: autonomia, reatividade, pró-atividade camila © LES/PUC-Rio

5 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 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 associadas com as features de agência. Portanto, durante a evolução de uma LP-SMA é preciso considerar mecanismos de implementação apropriados para implementar uma determinada variabilidade. De fato, a escolha e combinação de técnicas de implementação de variabilidades para implementação dos artefatos de uma arquitetura de LPS ainda é um desafio. camila © LES/PUC-Rio

6 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 camila © LES/PUC-Rio

7 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 camila © LES/PUC-Rio

8 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. camila © LES/PUC-Rio

9 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 camila © LES/PUC-Rio

10 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 camila © LES/PUC-Rio

11 Cenários de Mudanças R1 Arquitetura base do Expert Committee. R2
Releases Descrição Tipo de Mudança R1 Arquitetura base do Expert Committee. R2 Inclusã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. 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. 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. R7 Inclusão do agente de tarefas. camila © LES/PUC-Rio

12 Arquitetura da LP-SMA do EC
Chair Role Coordinator Role Author Role Committee Member Role Reviewer Role BaseAction AssignPapers Action CreateConference Action TaskAction Observer User Data Agent GUI Layer Observable Observable Service Environment Agent User Agents <<creates>> Paper ServiceImpl Conference ServiceImpl Task ServiceImpl Layer architectural pattern GUI – process web requests Business – structure and organize business services Data –database access classes DAO design pattern Observer pattern Services are observable objects that notify observers about their actions Environment Agent receives notifications and broadcast to the user agents Allow the (un)plugability of the agency features Role pattern Models context-specific views of an object as separate role objects which are dynamically attached to and removed from the core object Notifier Agent SMS MAIL Deadline Agent Business Layer Data Layer PaperDAO Hibernate ConferenceDAO Hibernate TaskDAO Hibernate Task Agent Database camila © LES/PUC-Rio

13 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 camila © LES/PUC-Rio

14 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. camila © LES/PUC-Rio

15 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 camila © LES/PUC-Rio

16 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 camila © LES/PUC-Rio

17 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 camila © LES/PUC-Rio

18 Análise da Estabilidade
R2 R3 R4 R5 R6 R7 Componentes Adicionados OO 3 27 11 26 OA 9 35 20 6 8 34 Modificados 7 13 Operações Adicionadas 32 103 31 29 128 43 112 49 145 Modificadas 4 2 15 Pointcuts 5 1 19 LOC 418 1134 639 391 249 2203 511 1202 784 470 496 2166 camila © LES/PUC-Rio

19 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 camila © LES/PUC-Rio

20 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 camila © LES/PUC-Rio

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

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

23 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 camila © LES/PUC-Rio

24 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 camila © LES/PUC-Rio

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

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

27 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 camila © LES/PUC-Rio

28 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) camila © LES/PUC-Rio

29 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 Na implementação do padrão role, cada papel acessa métodos de diversas classes, enquanto que na solução OA os papéis cam melhor modularizados em aspectos, diminuindo assim o acoplamento. camila © LES/PUC-Rio

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

31 Métricas de Tamanho Solução OA Solução OO 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 camila © LES/PUC-Rio

32 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 camila © LES/PUC-Rio

33 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 camila © LES/PUC-Rio

34 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 camila © LES/PUC-Rio

35 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 camila © LES/PUC-Rio

36 Cenários de Mudanças da LP-SMA OLIS
Descrição Tipo 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. R6 Inclusão do papel de escalonador de eventos. R7 Inclusão do agente de tempo. Inclusão de feature opcional.. R8 Feature adicionada para permitir o suporte a eventos de viagem. camila © LES/PUC-Rio

37 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 camila © LES/PUC-Rio

38 Análise da Estabilidade
R2 R3 R4 R5 R6 R7 R8 Components A Jade 19 30 3 12 33 28 Jadex 37 4 16 36 32 OA 1 18 31 5 13 25 M 2 7 6 Operações 97 154 49 264 112 85 41 252 101 96 163 52 111 Pointcuts 10 11 Linhas de Código 17 872 1656 226 575 2105 1265 1894 302 863 2258 1380 29 835 1652 255 623 2080 1189 8 Feature Obrigatória camila © LES/PUC-Rio

39 Análise da Estabilidade
R2 R3 R4 R5 R6 R7 R8 Components A Jade 19 30 3 12 33 28 Jadex 37 4 16 36 32 OA 1 18 31 5 13 25 M 2 7 6 Operações 97 154 49 264 112 85 41 252 101 96 163 52 111 Pointcuts 10 11 Linhas de Código 17 872 1656 226 575 2105 1265 1894 302 863 2258 1380 29 835 1652 255 623 2080 1189 8 Features Opcionais camila © LES/PUC-Rio

40 Análise da Estabilidade
R2 R3 R4 R5 R6 R7 R8 Components A Jade 19 30 3 12 33 28 Jadex 37 4 16 36 32 OA 1 18 31 5 13 25 M 2 7 6 Operações 97 154 49 264 112 85 41 252 101 96 163 52 111 Pointcuts 10 11 Linhas de Código 17 872 1656 226 575 2105 1265 1894 302 863 2258 1380 29 835 1652 255 623 2080 1189 8 Features Alternativas camila © LES/PUC-Rio

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

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

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

44 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 camila © LES/PUC-Rio

45 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 camila © LES/PUC-Rio

46 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 camila © LES/PUC-Rio

47 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 camila © LES/PUC-Rio

48 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 camila © LES/PUC-Rio

49 Discussões Evolução das LP-SMA com POA Gerenciamento das Features
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 camila © LES/PUC-Rio

50 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 camila © LES/PUC-Rio

51 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 camila © LES/PUC-Rio

52 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 (AOSE’08), 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: 13th 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 camila © LES/PUC-Rio

53 Camila Nunes Orientadores: Carlos Lucena Uirá Kulesza
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 "Camila Nunes Orientadores: Carlos Lucena Uirá Kulesza"

Apresentações semelhantes


Anúncios Google