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