FLiP - Ferramenta para Linhas de Produtos de
Aplicações Móveis
Reuso Estratégico em LPS
Parte 3
Carlos Eduardo Pontual
Fernanda d’Amorim
Leopoldo Teixeira
Feature model
- escopo da linha extraída
Extração de Requisitos
• Documento de casos de uso reestruturado
utilizando a técnica PLUSS.
• Mapeamento das Features à casos de uso
(cenários e passos).
• Dificuldades
– Documentação incompleta
– Casos de uso simulados para as novas features
propostas.
Ex. PLUSS
[UC001] Extrair variação
Id
Actor Action
System Response
1
O usuário seleciona o código a ser extraído
e requisita a operação de extração de
código ao sistema
O sistema valida o código a ser extraído,
e retorna uma lista de extrações
aplicáveis.
2
O usuário seleciona a opção de extração
desejada e clica o botão “next”.
O sistema apresenta ao usuário uma tela
para a criação de uma feature.
3a
O usuário cria nova feature a ser associada
ao código extraído e clica o botão “next”.
O sistema apresenta ao usuário uma tela
para a criação de um aspecto.
3b
O usuário cria nova feature a ser associada
ao código extraído e clica o botão next.
O sistema apresenta o texto préprocessado para que o usuário possa
editá-lo.
4a
O usuário cria um novo aspecto para o
qual o código selecionado é extraído e clica
em finish para finalizar a extração
O sistema extrai a variação para o
aspecto especificado.
4b
O usuário realiza as alterações desejadas
no código pré-processado e clica em finish.
para finalizar a extração.
O sistema extrai a variação para a classe
original do código.
Ex. PLUSS (2)
Ajuda
UC016
Id
1
Actor Action
O usuário pressiona o botão help no wizard.
System Response
o sistema exibe a tela de ajuda.
UC018
Actor Action
System Response
1
Id
Usuário seleciona a opção Help -> Help contents
no menu do eclipse.
O sistema exibirá a tela de ajuda do
eclipse.
2
O Usuário deverá selecionar a opção FLiP no
menu.
O sistema exibe a tela de ajuda do FLiP.
FM + PLUSS
UC016
UC018
UC002-008
UC020-028
UC014
UC001
Extração de Java pré-processado
•
•
•
•
•
Refactoring OO (extract method)
Around Execution
Member Extraction
Alteração no build.xml de org.cesar.flip.ui
Tempo: 1 hora
• Batch Extraction
– Alteração do plugin.xml de org.cesar.flip.ui
– Tempo: 30 minutos
Interação entre features
• Extração para AspectJ x Extração para Java pré-processado
Extração para Java pré-processado
• Plugins:
– org.cesar.flip.flipex.refactorings.preprocessed
– org.cesar.flip.flipex.refactorings.preprocessed.preprocessedextra
ctor
• Tempo: 30 minutos
• Alteração no build.xml do FLiP
– org.cesar.flip.feature
Gerenciador de Modelos
• Plugins:
– org.cesar.flip.flipg.pv
– org.cesar.flip.flipg.genarch
• Tempo: 20 minutos
• Alteração no build.xml do FLiP
– org.cesar.flip.feature
Tempo – Atividades
Atividade
Técnica
Tempo
Entendimento PDE,
pure::variants, etc…
-
20 horas
Extração de Java préprocessado
FLiP
1 hora
Extração em batch
Manual
30 minutos
Extração para Java préprocessado
Manual
30 minutos
Gerenciador de modelos
Manual
20 minutos
Configuration Knowledge
-
6 horas
Dificuldades/Problemas
• Entendimento da estrutura PDE
– Composição da UI
• Pouca documentação sobre PDE+AJDT
– Sistema de build
• Problemas com utilização do FLiP
– Extração around execution não funciona
– Estrutura “amarrada” do Configuration Knowledge
Instance models
Instance models
Instance models
Download

Apresentação 3