Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoração
Autor(a) principal: | |
---|---|
Data de Publicação: | 2014 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFSC |
Texto Completo: | https://repositorio.ufsc.br/xmlui/handle/123456789/129071 |
Resumo: | Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2014 |
id |
UFSC_3564a55b993c648787b4ee3addfbf3d0 |
---|---|
oai_identifier_str |
oai:repositorio.ufsc.br:123456789/129071 |
network_acronym_str |
UFSC |
network_name_str |
Repositório Institucional da UFSC |
repository_id_str |
2373 |
spelling |
Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoraçãoInformaticaComputaçãoSoftwareTestesSoftwareRefatoraçãoDissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2014Linhas de Produto de Software (LPS) trazem diversos benefícios, como a diminuição do tempo de entrada no mercado, a redução dos custos de desenvolvimento, o aumento da produtividade e a melhora da qualidade do produto final. Uma das práticas que auxilia na garantia de qualidade é a prática de testes. No entanto, ainda existem desafios e lacunas na utilização desta prática no desenvolvimento de LPSs. Nem todas as técnicas de testes utilizadas no desenvolvimento de um produto único podem ser aplicadas em LPSs e, portanto, novas adaptações e propostas são necessárias. Além disso, o desenvolvimento tradicional de LPSs também demanda um alto investimento inicial de longo prazo e oferece riscos para mercados dinâmicos, onde mudanças são difíceis de prever. Entretanto, já existem propostas para levar as vantagens de LPSs para mercados dinâmicos por meio da utilização de práticas de desenvolvimento ágil de software, essa união é denominada Engenharia de Linha de Produto Ágil (ELPA). Esta dissertação visa a elaboração de uma abordagem para a construção de LPSs, utilizando a ELPA. Nesta proposta as práticas ágeis de Desenvolvimento Dirigido por Testes (Test-Driven Development - TDD) e Refatoração conduzem a criação de uma LPS de abordagem reativa sem a tentativa de prever variações futuras. Para dar suporte à prática de testes unitários no desenvolvimento reativo de LPSs, foi desenvolvido um framework de testes com a proposta de adaptar padrões de testes unitários que facilitem a verificação da exatidão das aplicações geradas. Os padrõesde teste Framework de Automação de Testes e Testes Dirigidos por Dados fornecem a reutilização da lógica de testes e a automação dos mecanismos de implementação, reduzindo o esforço necessário para testar as variações de cada aplicação. A proposta foi avaliada através de um exemplo que mostrou a aplicação da abordagem e do framework de testes em uma LPS que foi construída de forma reativa a partir de uma aplicação existente. Como resultado foi visto um alto grau de reuso de testes, com 89% de reuso na segunda aplicação, após a modificação de três features, 97% na terceira aplicação, após a adição de uma feature e modificação de outra, e 100% na quarta aplicação onde nenhuma feature foi adicionada ou modificada, e a aplicação foi construída com variantes existentes.<br>Abstract: Software Product Line (SPL) brings benefits such as lower time-to market, less development costs, increased productivity, and improved quality. The quality assurance can be reached through the testing area, however this area still has challenges and gaps in the SPL development. Since not all testing techniques used in a single product development can be applied to SPL, thus some adaptations and new proposals are required. Traditional SPL also requires a high initial investment and offers long-term risks to dynamic markets where changes are difficult to predict. Currently, proposals bring the advantages of SPL for dynamic markets through the use of agile software development practices, which is called Agile Product Line Engineering (APLE). This work presents the development of the necessary steps for building SPL using the APLE. In this proposal the agile practices Test-Driven Development (TDD) and Refactoring lead a reactive development of SPL without attempting to predict future variations. It is also proposed to adapt unit test patterns in the context of SPL. The test patterns Test Automation Framework and Data-Driven Tests provide the reuse of test logic and automation of the implementation mechanisms, reducing the effort required to test variations of each application. The result of this adaptation is a testing framework to be used during application engineering to configure tests through parameterized tests and verify the correctness of generated applications. Thus, this work shows how the agile practices TDD and Refactoring may cause a SPL to evolve and acquire variation points on demand. The proposal was evaluated through an example of a SPL that was built with a reactive approach from an existing application. As a result, it was obtained a high degree of tests reuse, with 89% of reuse in the second application after modifying three features, 97% in the third application after adding one feature and modifying another one, and 100% of reuse in the fourth application where no feature was added or modified, and the application was built with existing variants.Vilain, PatríciaUniversidade Federal de Santa CatarinaNeves, Glauco Silva2015-02-05T20:39:48Z2015-02-05T20:39:48Z2014info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesis124 p.| il., tabs., grafs.application/pdf332126https://repositorio.ufsc.br/xmlui/handle/123456789/129071porreponame:Repositório Institucional da UFSCinstname:Universidade Federal de Santa Catarina (UFSC)instacron:UFSCinfo:eu-repo/semantics/openAccess2015-02-05T20:39:48Zoai:repositorio.ufsc.br:123456789/129071Repositório InstitucionalPUBhttp://150.162.242.35/oai/requestopendoar:23732015-02-05T20:39:48Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)false |
dc.title.none.fl_str_mv |
Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoração |
title |
Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoração |
spellingShingle |
Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoração Neves, Glauco Silva Informatica Computação Software Testes Software Refatoração |
title_short |
Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoração |
title_full |
Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoração |
title_fullStr |
Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoração |
title_full_unstemmed |
Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoração |
title_sort |
Uma abordagem reativa de construção de linhas de produto de software baseada em TDD e refatoração |
author |
Neves, Glauco Silva |
author_facet |
Neves, Glauco Silva |
author_role |
author |
dc.contributor.none.fl_str_mv |
Vilain, Patrícia Universidade Federal de Santa Catarina |
dc.contributor.author.fl_str_mv |
Neves, Glauco Silva |
dc.subject.por.fl_str_mv |
Informatica Computação Software Testes Software Refatoração |
topic |
Informatica Computação Software Testes Software Refatoração |
description |
Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico, Programa de Pós-Graduação em Ciência da Computação, Florianópolis, 2014 |
publishDate |
2014 |
dc.date.none.fl_str_mv |
2014 2015-02-05T20:39:48Z 2015-02-05T20:39:48Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
332126 https://repositorio.ufsc.br/xmlui/handle/123456789/129071 |
identifier_str_mv |
332126 |
url |
https://repositorio.ufsc.br/xmlui/handle/123456789/129071 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
124 p.| il., tabs., grafs. application/pdf |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFSC instname:Universidade Federal de Santa Catarina (UFSC) instacron:UFSC |
instname_str |
Universidade Federal de Santa Catarina (UFSC) |
instacron_str |
UFSC |
institution |
UFSC |
reponame_str |
Repositório Institucional da UFSC |
collection |
Repositório Institucional da UFSC |
repository.name.fl_str_mv |
Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC) |
repository.mail.fl_str_mv |
|
_version_ |
1808652237415645184 |