Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product Lines

Linhas de produtos de software estão emergindo como um paradigma de desenvolvimento viável e como um importante aliado que permite às empresas realizar melhorias de ordem de magnitude em tempo de mercado, custo, produtividade, qualidade e outros direcionadores de negócio. No entanto, a evolução de u...

Descripción completa

Detalles Bibliográficos
Autor: ALMEIDA, Jefferson Rodrigues de
Tipo de recurso: tesis de maestría
Estado:Versión publicada
Fecha de publicación:2014
País:Brasil
Institución:Universidade Federal de Pernambuco (UFPE)
Repositorio:Repositório Institucional da UFPE
Idioma:inglés
OAI Identifier:oai:repositorio.ufpe.br:123456789/11523
Acceso en línea:https://repositorio.ufpe.br/handle/123456789/11523
Access Level:acceso abierto
Palabra clave:Linhas de Produtos de Software
Evolução de Linha de Produto
Ferramentas de Checagem
Refatoração
Refinamento
Evolução Segura
id BR_72faa97d33b310d8d8e14aa532efdedb
oai_identifier_str oai:repositorio.ufpe.br:123456789/11523
network_acronym_str BR
network_name_str Brasil
repository_id_str
dc.title.none.fl_str_mv Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product Lines
title Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product Lines
spellingShingle Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product Lines
ALMEIDA, Jefferson Rodrigues de
Linhas de Produtos de Software
Evolução de Linha de Produto
Ferramentas de Checagem
Refatoração
Refinamento
Evolução Segura
title_short Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product Lines
title_full Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product Lines
title_fullStr Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product Lines
title_full_unstemmed Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product Lines
title_sort Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product Lines
dc.creator.none.fl_str_mv ALMEIDA, Jefferson Rodrigues de
author ALMEIDA, Jefferson Rodrigues de
author_facet ALMEIDA, Jefferson Rodrigues de
author_role author
dc.contributor.none.fl_str_mv BORBA, Paulo Henrique Monteiro
dc.subject.por.fl_str_mv Linhas de Produtos de Software
Evolução de Linha de Produto
Ferramentas de Checagem
Refatoração
Refinamento
Evolução Segura
topic Linhas de Produtos de Software
Evolução de Linha de Produto
Ferramentas de Checagem
Refatoração
Refinamento
Evolução Segura
description Linhas de produtos de software estão emergindo como um paradigma de desenvolvimento viável e como um importante aliado que permite às empresas realizar melhorias de ordem de magnitude em tempo de mercado, custo, produtividade, qualidade e outros direcionadores de negócio. No entanto, a evolução de uma linha de produtos é arriscada, porque pode afetar muitos produtos e seus respectivos clientes. Neste contexto, ao evoluir uma linha de produtos para introduzir novas funcionalidades ou para melhorar a sua concepção, é importante garantir que os produtos existentes tenham o mesmo comportamento após a evolução. Ferramentas típicas de refatoração não podem garantir a preservação de comportamento dos produtos, porque o contexto de linha de produtos vai além de código. As linhas de produtos abrangem artefatos adicionais, tais como modelo de features e modelo de configurações. Além disso, geralmente tem que lidar com um conjunto de artefatos alternativos que não constituem um programa bem-formado. Portanto, ferramentas de refatoração existentes podem introduzir mudanças comportamentais ou invalidar configurações de produtos. Analisar essas evoluções de artefatos manualmente podem gastar muito tempo e levar a defeitos, comprometendo os benefícios de linhas de produtos de software acima mencionados. Na literatura, encontramos algumas abordagens de força bruta que se movem na direção de superar esses desafios. Elas implementam aproximações práticas de uma teoria de refinamento de linhas de produtos de software. No entanto, elas são imprecisas e gastam um tempo substancial para verificar incompatibilidades comportamentais entre as evoluções. Em contraste, uma alternativa otimizada foca na verificação de compatibilidade comportamental apenas das classes modificados durante a evolução. Isto leva a uma redução no tempo, fazendo com que a abordagem seja mais rápida quando comparado com outras abordagens propostas. Este procedimento melhora o desempenho, mas por outro lado, diminui a precisão. Portanto, neste trabalho, propomos estratégias para aumentar a precisão dessas abordagens otimizadas. Primeiramente implementados uma estratégia ao qual analisa as classes em uma hierarquia mais próxima do usuário, o que pode melhor determinar se a evolução preserva comportamento. Além disso, integramos uma nova ferramenta de geração de teste para o nosso conjunto de ferramentas, que tem uma heurística eficiente para orientar a sua busca por testes de maior qualidade. Neste trabalho, nós combinamos essas duas referidas abordagens com duas ferramentas de teste e fazemos comparações em relação ao desempenho e precisão. Elas são avaliadas em cenários concretos de evolução de duas linhas de produtos. A primeira linha de produtos gera testes funcionais a partir de especificações de casos e a segunda gerencia mídia em dispositivos móveis. Como resultado, nossas estratégias descobriram que algumas transformações introduziram mudanças comportamentais. Além disso, melhorou o desempenho e alcançou precisões mais elevadas.
publishDate 2014
dc.date.none.fl_str_mv 2014-03-12
2015-03-09T17:44:49Z
2015-03-09T17:44:49Z
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 ALMEIDA, Jefferson Rodrigues de. Comparing strategies for improving precision when checking safe evolution of software product lines. Recife, 2014. 96 f. Dissertação (mestrado) - UFPE, Centro de Informática, Programa de Pós-graduação em Ciência da Computação, 2014.
https://repositorio.ufpe.br/handle/123456789/11523
dc.identifier.dark.fl_str_mv ark:/64986/001300000bm8x
identifier_str_mv ALMEIDA, Jefferson Rodrigues de. Comparing strategies for improving precision when checking safe evolution of software product lines. Recife, 2014. 96 f. Dissertação (mestrado) - UFPE, Centro de Informática, Programa de Pós-graduação em Ciência da Computação, 2014.
ark:/64986/001300000bm8x
url https://repositorio.ufpe.br/handle/123456789/11523
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Pernambuco
publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1853667335640973312
spelling Comparing Strategies for Improving Precision When Checking Safe Evolution of Software Product LinesLinhas de Produtos de SoftwareEvolução de Linha de ProdutoFerramentas de ChecagemRefatoraçãoRefinamentoEvolução SeguraLinhas de produtos de software estão emergindo como um paradigma de desenvolvimento viável e como um importante aliado que permite às empresas realizar melhorias de ordem de magnitude em tempo de mercado, custo, produtividade, qualidade e outros direcionadores de negócio. No entanto, a evolução de uma linha de produtos é arriscada, porque pode afetar muitos produtos e seus respectivos clientes. Neste contexto, ao evoluir uma linha de produtos para introduzir novas funcionalidades ou para melhorar a sua concepção, é importante garantir que os produtos existentes tenham o mesmo comportamento após a evolução. Ferramentas típicas de refatoração não podem garantir a preservação de comportamento dos produtos, porque o contexto de linha de produtos vai além de código. As linhas de produtos abrangem artefatos adicionais, tais como modelo de features e modelo de configurações. Além disso, geralmente tem que lidar com um conjunto de artefatos alternativos que não constituem um programa bem-formado. Portanto, ferramentas de refatoração existentes podem introduzir mudanças comportamentais ou invalidar configurações de produtos. Analisar essas evoluções de artefatos manualmente podem gastar muito tempo e levar a defeitos, comprometendo os benefícios de linhas de produtos de software acima mencionados. Na literatura, encontramos algumas abordagens de força bruta que se movem na direção de superar esses desafios. Elas implementam aproximações práticas de uma teoria de refinamento de linhas de produtos de software. No entanto, elas são imprecisas e gastam um tempo substancial para verificar incompatibilidades comportamentais entre as evoluções. Em contraste, uma alternativa otimizada foca na verificação de compatibilidade comportamental apenas das classes modificados durante a evolução. Isto leva a uma redução no tempo, fazendo com que a abordagem seja mais rápida quando comparado com outras abordagens propostas. Este procedimento melhora o desempenho, mas por outro lado, diminui a precisão. Portanto, neste trabalho, propomos estratégias para aumentar a precisão dessas abordagens otimizadas. Primeiramente implementados uma estratégia ao qual analisa as classes em uma hierarquia mais próxima do usuário, o que pode melhor determinar se a evolução preserva comportamento. Além disso, integramos uma nova ferramenta de geração de teste para o nosso conjunto de ferramentas, que tem uma heurística eficiente para orientar a sua busca por testes de maior qualidade. Neste trabalho, nós combinamos essas duas referidas abordagens com duas ferramentas de teste e fazemos comparações em relação ao desempenho e precisão. Elas são avaliadas em cenários concretos de evolução de duas linhas de produtos. A primeira linha de produtos gera testes funcionais a partir de especificações de casos e a segunda gerencia mídia em dispositivos móveis. Como resultado, nossas estratégias descobriram que algumas transformações introduziram mudanças comportamentais. Além disso, melhorou o desempenho e alcançou precisões mais elevadas.FACEPEUniversidade Federal de PernambucoBORBA, Paulo Henrique Monteiro2015-03-09T17:44:49Z2015-03-09T17:44:49Z2014-03-12info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfALMEIDA, Jefferson Rodrigues de. Comparing strategies for improving precision when checking safe evolution of software product lines. Recife, 2014. 96 f. Dissertação (mestrado) - UFPE, Centro de Informática, Programa de Pós-graduação em Ciência da Computação, 2014.https://repositorio.ufpe.br/handle/123456789/11523ark:/64986/001300000bm8xengAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPEALMEIDA, Jefferson Rodrigues de2019-10-25T22:17:59Zoai:repositorio.ufpe.br:123456789/11523Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-25T22:17:59Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
score 15,300719