Ferramentas para Linhas de Produtos de Aplicações Móveis - FLIP Carlos Eduardo Pontual Fernanda...

Preview:

Citation preview

Ferramentas para Linhas de Produtos de Aplicações Móveis - FLIP

Carlos Eduardo PontualFernanda d’AmorimLeopoldo Teixeira

Objetivo: automatizar linhas de produtos

A

CB'

DA

CB

A

CB

D

A

B

C

D B'

reuso estratégico de artefatos

comuns e variações

Produto 1

Base

Produto 1 Produto 2

FLIPex

FLIPcQuality Assurance Packaging

FLIPg

ReceptionReception

FLiP

Módulos• Extração de variações (FLIPex)

– Refactoring, análise estática de código• Composição de variações e base (FLIPc)

– Orientação a aspectos, transformação de programas, prog. generativa, frameworks

• Gerenciamento de variações (FLIPg)– Visualização, análise de interferências, meta-

linguagem de configuração

Métricas

• 45 projetos compõem o FLiP– Unidos em um único para cálculo de métricas

• Total de Linhas de Código– 15.664

• Total de Classes– 186

Concerns• 37 concerns identificados (7564 LOC)

– FLiPEx – 26 concerns (4234 LOC)– FLiPC – 2 concerns (215 LOC)– FLiPG – 8 concerns (3448 LOC)– Iniciar FLiP – 1 concern (260 LOC)

• Documentação de requisitos– Requisitos não funcionais não mapeados– Concerns cogitados

• Suportar extrair tag pré-processada• Tratamento de Exceções• Persistência

• Entendimento e marcação– 5 dias 4h/dia – 3 pessoas

FLiPEx

FLiPC e FLiPG

Exemplo FLiPEx

Exemplo FLiPC

Exemplo FLiPG

Tabela Métricas

Tabela Métricas

Croscutting concerns

• Concerns de extração de códigos são croscutting entre si– Extração para Aspectos e para código Pré-

processado também se entrelaçam• Inicialização de FLiPEx, FLiPC, FLiPG e FLiP são

croscutting• Como esperado, encontramos na Facade

muitos concerns entrelaçados.

Crosscutting concerns: Extração de código para aspectos

Dificuldades• Projeto desenvolvido por terceiros

– Entendimento do código

• Adaptação dos requisitos– Interpretação dos documentos de requisitos– Criar hierarquia de concerns

• ConcernTagger– Incompatibilidade com VMs– Não calcula métrica em projetos diferentes

• Unir todos os projetos em um só

Conclusão

• Números não dizem tudo– Baixa granularidade (classes)– Espalhamento ≠ Acoplamento– Código espalhado devido ao alto grau de

modularidade

• Análise a nível de pacotes– Projetos diferentes

Recommended