Avaliação da Modularidade e Estabilidade de Técnicas de Implementação para Linhas de Produtos...

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

Transcript of Avaliação da Modularidade e Estabilidade de Técnicas de Implementação para Linhas de Produtos...

Page 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.

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

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

2camila © 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

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

3camila © 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

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

4camila © 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

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

5camila © 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

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

6camila © 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

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

7camila © 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

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

8camila © 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.

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

9camila © 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

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

10camila © 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

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

11camila © LES/PUC-Rio

Cenários de Mudanças

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.

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-mail 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.

R7 Inclusão do agente de tarefas. Inclusão de feature opcional

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

12camila © LES/PUC-Rio

Arquitetura da LP-SMA do EC

Database

User DataAgent

AssignPapersAction

BaseAction

Observable

ConferenceServiceImp

l

ConferenceDAOHibernate

PaperDAOHibernate

CreateConferenceAction

GUI Layer

PaperServiceImpl

Observer

Business LayerData Layer

ObservableService

TaskAction

TaskServiceImpl

TaskDAOHibernate

EnvironmentAgent

<<creates>>

UserAgents

NotifierAgent

SMSMAIL

DeadlineAgent

TaskAgent

Chair Role

Coordinator Role

Author Role

Committee Member

Role

Reviewer Role

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

13camila © 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

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

14camila © 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.

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

15camila © 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

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

16camila © 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

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

17camila © 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

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

18camila © LES/PUC-Rio

Análise da Estabilidade

R2 R3 R4 R5 R6 R7

Componentes Adicionados

OO 3 27 11 3 3 26

OA 9 35 20 6 8 34

ComponentesModificados

OO 9 6 8 8 7 13

OA 0 0 0 0 0 0

OperaçõesAdicionadas

OO 32 103 31 29 20 128

OA 43 112 35 49 27 145

OperaçõesModificadas

OO 4 2 15 2 2 31

OA 0 0 0 0 0 0

PointcutsAdicionados

OA 5 7 9 1 1 19

PointcutsModificados

OA 0 0 0 0 0 0

LOC Adicionadas

OO 418 1134 639 391 249 2203

OA 511 1202 784 470 496 2166

LOCModificadas

OO 0 0 0 0 0 0

OA 0 0 0 0 0 0

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

19camila © 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

Revisor

0

10

20

30

40

50

60

70

80

90

1 2 3 4 5 6 7

Releases

Dif

usã

o d

o C

on

cern

po

r L

OC

(C

DL

OC

)

Java

AspectJ

Revisor

0

10

20

30

40

50

60

1 2 3 4 5 6 7

Releases

Dif

usã

o d

o C

on

cern

po

r O

per

açõ

es (

CD

O)

Java

AspectJ

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

20camila © 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

Reviewer

0

5

10

15

20

1 2 3 4 5 6 7

Releases

Difu

são

do C

once

rn p

or

Com

pone

ntes

(CD

C)

Java

AspectJ

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

21camila © LES/PUC-Rio

Projeto OO da LP-SMA do EC

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

22camila © LES/PUC-Rio

Projeto OA da LP-SMA do EC

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

23camila © 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

Agentes de Usuário

0

10

20

30

40

50

60

70

80

1 2 3 4 5 6 7

Releases

Dif

usã

o d

o C

on

cern

po

r O

per

açõ

es (

CD

O)

Java

AspectJ

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

24camila © 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

Agentes de Usuário

0

5

10

15

20

25

30

1 2 3 4 5 6 7

Releases

Dif

usã

o d

o C

on

cern

po

r C

om

po

nen

tes

(CD

C)

Java

AspectJ

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

25camila © LES/PUC-Rio

Projeto OO da LP-SMA do EC

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

26camila © LES/PUC-Rio

Projeto OA da LP-SMA do EC

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

27camila © 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

Agentes de Usuário

0

10

20

30

40

50

60

1 2 3 4 5 6 7

Releases

Co

nce

rn D

ifu

sio

n o

ver

LO

C

Java

AspectJ

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

28camila © 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)

Agente Notificador

0

5

10

15

20

25

1 2 3 4 5 6 7

Releases

Dif

usã

o d

o C

on

cern

po

r C

om

po

nen

tes

(CD

C)

Java

AspectJ

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

29camila © 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

Acoplamento entre Componentes (CBC)

0,0

2,0

4,0

6,0

8,0

10,0

1 2 3 4 5 6 7

Releases

Java

AspectJ

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

30camila © LES/PUC-Rio

Média de Coesão

Falta de Coesão em Operações (LCOO)

-

0,05

0,10

0,15

0,20

0,25

1 2 3 4 5 6 7

Releases

Java

AspectJ

• 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

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

31camila © LES/PUC-Rio

Métricas de Tamanho

ExpertCommittee

0

50

100

150

200

250

1 2 3 4 5 6 7

Releases

mer

o d

e C

om

po

nen

tes

Java

AspectJ

• 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

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

32camila © LES/PUC-Rio

Dependência de Features

Revisor

0

2

4

6

8

10

1 2 3 4 5 6 7

Releases

CIB

C Java

AspectJ

• 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

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

33camila © 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

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

34camila © 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

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

35camila © 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

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

36camila © LES/PUC-Rio

Cenários de Mudanças da LP-SMA OLIS

R# 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.

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.

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

37camila © 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

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

38camila © LES/PUC-Rio

Análise da Estabilidade

R2 R3 R4 R5 R6 R7 R8

Components

A

Jade 0 19 30 3 12 33 28

Jadex 0 19 37 4 16 36 32

OA 1 18 31 5 13 32 25

M

Jade 2 5 7 2 4 6 4

Jadex 2 5 6 3 4 6 3

OA 0 4 3 0 3 5 4

Operações

A

Jade 2 97 154 13 49 264 112

Jadex 2 97 85 4 41 252 101

OA 4 96 163 16 52 264 111

M

Jade 2 1 3 3 2 1 1

Jadex 2 1 3 2 1 1 0

OA 0 0 0 0 0 0 1

PointcutsA OA 3 10 7 3 3 1 11

M OA 0 0 0 0 0 0 0

Linhas de Código

A

Jade 17 872 1656 226 575 2105 1265

Jadex 17 872 1894 302 863 2258 1380

OA 29 835 1652 255 623 2080 1189

M

Jade 0 8 1 1 0 1 1

Jadex 0 8 1 0 0 0 1

OA 0 1 0 0 0 0 1

Feature Obrigatória

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

39camila © LES/PUC-Rio

Análise da Estabilidade

R2 R3 R4 R5 R6 R7 R8

Components

A

Jade 0 19 30 3 12 33 28

Jadex 0 19 37 4 16 36 32

OA 1 18 31 5 13 32 25

M

Jade 2 5 7 2 4 6 4

Jadex 2 5 6 3 4 6 3

OA 0 4 3 0 3 5 4

Operações

A

Jade 2 97 154 13 49 264 112

Jadex 2 97 85 4 41 252 101

OA 4 96 163 16 52 264 111

M

Jade 2 1 3 3 2 1 1

Jadex 2 1 3 2 1 1 0

OA 0 0 0 0 0 0 1

PointcutsA OA 3 10 7 3 3 1 11

M OA 0 0 0 0 0 0 0

Linhas de Código

A

Jade 17 872 1656 226 575 2105 1265

Jadex 17 872 1894 302 863 2258 1380

OA 29 835 1652 255 623 2080 1189

M

Jade 0 8 1 1 0 1 1

Jadex 0 8 1 0 0 0 1

OA 0 1 0 0 0 0 1

Features Opcionais

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

40camila © LES/PUC-Rio

Análise da Estabilidade

R2 R3 R4 R5 R6 R7 R8

Components

A

Jade 0 19 30 3 12 33 28

Jadex 0 19 37 4 16 36 32

OA 1 18 31 5 13 32 25

M

Jade 2 5 7 2 4 6 4

Jadex 2 5 6 3 4 6 3

OA 0 4 3 0 3 5 4

Operações

A

Jade 2 97 154 13 49 264 112

Jadex 2 97 85 4 41 252 101

OA 4 96 163 16 52 264 111

M

Jade 2 1 3 3 2 1 1

Jadex 2 1 3 2 1 1 0

OA 0 0 0 0 0 0 1

PointcutsA OA 3 10 7 3 3 1 11

M OA 0 0 0 0 0 0 0

Linhas de Código

A

Jade 17 872 1656 226 575 2105 1265

Jadex 17 872 1894 302 863 2258 1380

OA 29 835 1652 255 623 2080 1189

M

Jade 0 8 1 1 0 1 1

Jadex 0 8 1 0 0 0 1

OA 0 1 0 0 0 0 1

Features Alternativas

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

41camila © LES/PUC-Rio

Análise da Modularidade (Multi-Releases)

• Feature Obrigatória adicionada na R2

– Importar Eventos

• Implementação OA foi mais efetiva

Importar Eventos

0

0,5

1

1,5

2

2,5

1 2 3 4 5 6 7 8

Releases

Dif

usã

o d

o C

on

cern

po

r C

om

po

nen

tes

(CD

C)

Jadex

Jade

AspectJ

0

2

4

6

8

10

12

1 2 3 4 5 6 7 8

Releases

Dif

usã

o d

o C

on

cern

po

r L

OC

(C

DL

OC

)

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

42camila © LES/PUC-Rio

Projeto OO da LP-SMA OLIS

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

43camila © LES/PUC-Rio

Projeto OA da LP-SMA OLIS

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

44camila © LES/PUC-Rio

Análise da Modularidade (Multi-Releases)

Eventos Acadêmicos

0

5

10

15

20

25

1 2 3 4 5 6 7 8

Releases

Dif

usão

do

Co

ncern

po

r

Co

mp

on

en

tes (

CD

C)

Jadex

Jade

AspectJ

0

10

20

30

4050

60

70

80

90

100

1 2 3 4 5 6 7 8

Releases

Dif

usã

o d

o C

on

cern

po

r O

per

açõ

es

(CD

O)

• 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

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

45camila © 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

Sugestão de Eventos

0

5

10

15

20

25

30

35

40

45

1 2 3 4 5 6 7 8

Releases

Dif

us

ão

do

Co

nc

ern

po

r C

om

po

ne

nte

s

(CD

C)

0

20

40

60

80

100

120

140

160

180

1 2 3 4 5 6 7 8

Releases

Difu

são

do C

once

rn p

or O

pera

ções

(CD

O)

Jadex

Jade

AspectJ

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

46camila © 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

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

47camila © 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

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

48camila © 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

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

49camila © 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

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

50camila © 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

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

51camila © 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

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

52camila © 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 (AOSE’08), 2008, Estoril. pp. 177-188.

• 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 2008. Lecture Notes in Computer Science, Springer-Verlag, 2009. 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. 229-232.

• 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), 2008. pp. 122-135

Page 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.

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