O uso de programação orientada a características para evolução de linhas de produtos de software

Detalhes bibliográficos
Autor(a) principal: Ferreira, Gabriel Coutinho Sousa
Data de Publicação: 2012
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFU
Texto Completo: https://repositorio.ufu.br/handle/123456789/12541
https://doi.org/10.14393/ufu.di.2012.395
Resumo: Feature-oriented programming (FOP) is a programming technique based on composition mechanisms, called refinements. It is often assumed that the use of feature-oriented programming is better than other variability mechanisms for implementing Software Product Lines (SPLs). However, there is no empirical evidence to support this claim. In fact, recent research work found out that some composition mechanisms may degenerate the SPL modularity and stability. However, there is no study investigating these properties focusing on the FOP composition mechanisms. This work presents quantitative and qualitative analyses of how feature modularity and change propagation behaves in the context of an evolving SPL. The quantitative data is collected from two SPLs developed using three different variability mechanisms: FOP refinements, conditional compilation, and object-oriented design patterns. Our results suggest that FOP requires fewer changes in source code, yet a higher number of added modules, than the other techniques. It provides better support to non-intrusive insertions. Therefore, it adheres closer to the Open-Closed principle. Additionally, FOP seems to be more effective tackling modularity degeneration, by avoiding feature tangling and scattering in source code, than conditional compilation and design patterns.
id UFU_2bb0e83301b501999dd961a52170c1cd
oai_identifier_str oai:repositorio.ufu.br:123456789/12541
network_acronym_str UFU
network_name_str Repositório Institucional da UFU
repository_id_str
spelling O uso de programação orientada a características para evolução de linhas de produtos de softwareLinhas de produtos de softwareProgramação orientada a característicasMecanismos de variabilidadeMétricas de softwareEvolução de softwareSoftware - DesenvolvimentoSoftware product linesFeature-oriented programmingVariability mechanismsSoftware metricsFopSoftware evolutionCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOFeature-oriented programming (FOP) is a programming technique based on composition mechanisms, called refinements. It is often assumed that the use of feature-oriented programming is better than other variability mechanisms for implementing Software Product Lines (SPLs). However, there is no empirical evidence to support this claim. In fact, recent research work found out that some composition mechanisms may degenerate the SPL modularity and stability. However, there is no study investigating these properties focusing on the FOP composition mechanisms. This work presents quantitative and qualitative analyses of how feature modularity and change propagation behaves in the context of an evolving SPL. The quantitative data is collected from two SPLs developed using three different variability mechanisms: FOP refinements, conditional compilation, and object-oriented design patterns. Our results suggest that FOP requires fewer changes in source code, yet a higher number of added modules, than the other techniques. It provides better support to non-intrusive insertions. Therefore, it adheres closer to the Open-Closed principle. Additionally, FOP seems to be more effective tackling modularity degeneration, by avoiding feature tangling and scattering in source code, than conditional compilation and design patterns.Conselho Nacional de Desenvolvimento Científico e TecnológicoMestre em Ciência da ComputaçãoA Programação Orientada a Características (FOP, Feature-oriented programming) é uma técnica de programação baseada em mecanismos de composição, chamados refinamentos. Muitas vezes, é assumido que o uso de Programação Orientada a Características é mais adequado do que outros mecanismos de variabilidade para a implementação de Linhas de Produtos de Software (LPS). No entanto, não há evidência empírica para apoiar essa suposição. Na verdade, trabalhos de pesquisa recentes descobriram que alguns mecanismos de composição podem degenerar a modularidade e a estabilidade de uma LPS. No entanto, não há nenhum estudo investigando essas propriedades com foco sobre os mecanismos de composição FOP. Este trabalho apresenta análises quantitativas e qualitativas de como os mecanismos de variabilidade afetam LPS em evolução, analisando propriedades como propagação de mudanças e modularidade. Os dados quantitativos foram coletados a partir de duas LPS desenvolvidas utilizando três mecanismos de variabilidade diferentes: Programação Orientada a Características, Compilação Condicional, e os Padrões de Projeto Orientado a Objetos. Nossos resultados sugerem que os mecanismos presentes na Programação Orientada a Características exigem um menor número de alterações no código fonte existente, mas um número maior de inserções de componentes, quando comparado às outras técnicas. Ele oferece um melhor suporte para inserções não-intrusivas e, portanto, se adere melhor ao princípio Aberto-Fechado. Além disso, FOP parece ser mais eficaz na manutenção da modularidade de LPS, evitando o entrelaçamento e o espalhamento de características no código fonte, quando comparado à Compilação Condicional e Padrões de Projeto Orientado a Objetos.Universidade Federal de UberlândiaBRPrograma de Pós-graduação em Ciência da ComputaçãoCiências Exatas e da TerraUFUFigueiredo, Eduardo Magno Lageshttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4774214A5Maia, Marcelo de Almeidahttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4791753E8Soares, Michel dos Santoshttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4745139J8Alves, Vander Ramoshttp://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4767318D6Ferreira, Gabriel Coutinho Sousa2016-06-22T18:32:27Z2013-07-122016-06-22T18:32:27Z2012-08-28info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfapplication/pdfFERREIRA, Gabriel Coutinho Sousa. O uso de programação orientada a características para evolução de linhas de produtos de software. 2012. 83 f. Dissertação (Mestrado em Ciências Exatas e da Terra) - Universidade Federal de Uberlândia, Uberlândia, 2012. DOI https://doi.org/10.14393/ufu.di.2012.395https://repositorio.ufu.br/handle/123456789/12541https://doi.org/10.14393/ufu.di.2012.395porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFUinstname:Universidade Federal de Uberlândia (UFU)instacron:UFU2022-11-19T06:00:30Zoai:repositorio.ufu.br:123456789/12541Repositório InstitucionalONGhttp://repositorio.ufu.br/oai/requestdiinf@dirbi.ufu.bropendoar:2022-11-19T06:00:30Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)false
dc.title.none.fl_str_mv O uso de programação orientada a características para evolução de linhas de produtos de software
title O uso de programação orientada a características para evolução de linhas de produtos de software
spellingShingle O uso de programação orientada a características para evolução de linhas de produtos de software
Ferreira, Gabriel Coutinho Sousa
Linhas de produtos de software
Programação orientada a características
Mecanismos de variabilidade
Métricas de software
Evolução de software
Software - Desenvolvimento
Software product lines
Feature-oriented programming
Variability mechanisms
Software metrics
Fop
Software evolution
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short O uso de programação orientada a características para evolução de linhas de produtos de software
title_full O uso de programação orientada a características para evolução de linhas de produtos de software
title_fullStr O uso de programação orientada a características para evolução de linhas de produtos de software
title_full_unstemmed O uso de programação orientada a características para evolução de linhas de produtos de software
title_sort O uso de programação orientada a características para evolução de linhas de produtos de software
author Ferreira, Gabriel Coutinho Sousa
author_facet Ferreira, Gabriel Coutinho Sousa
author_role author
dc.contributor.none.fl_str_mv Figueiredo, Eduardo Magno Lages
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4774214A5
Maia, Marcelo de Almeida
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4791753E8
Soares, Michel dos Santos
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4745139J8
Alves, Vander Ramos
http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4767318D6
dc.contributor.author.fl_str_mv Ferreira, Gabriel Coutinho Sousa
dc.subject.por.fl_str_mv Linhas de produtos de software
Programação orientada a características
Mecanismos de variabilidade
Métricas de software
Evolução de software
Software - Desenvolvimento
Software product lines
Feature-oriented programming
Variability mechanisms
Software metrics
Fop
Software evolution
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic Linhas de produtos de software
Programação orientada a características
Mecanismos de variabilidade
Métricas de software
Evolução de software
Software - Desenvolvimento
Software product lines
Feature-oriented programming
Variability mechanisms
Software metrics
Fop
Software evolution
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description Feature-oriented programming (FOP) is a programming technique based on composition mechanisms, called refinements. It is often assumed that the use of feature-oriented programming is better than other variability mechanisms for implementing Software Product Lines (SPLs). However, there is no empirical evidence to support this claim. In fact, recent research work found out that some composition mechanisms may degenerate the SPL modularity and stability. However, there is no study investigating these properties focusing on the FOP composition mechanisms. This work presents quantitative and qualitative analyses of how feature modularity and change propagation behaves in the context of an evolving SPL. The quantitative data is collected from two SPLs developed using three different variability mechanisms: FOP refinements, conditional compilation, and object-oriented design patterns. Our results suggest that FOP requires fewer changes in source code, yet a higher number of added modules, than the other techniques. It provides better support to non-intrusive insertions. Therefore, it adheres closer to the Open-Closed principle. Additionally, FOP seems to be more effective tackling modularity degeneration, by avoiding feature tangling and scattering in source code, than conditional compilation and design patterns.
publishDate 2012
dc.date.none.fl_str_mv 2012-08-28
2013-07-12
2016-06-22T18:32:27Z
2016-06-22T18:32:27Z
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 FERREIRA, Gabriel Coutinho Sousa. O uso de programação orientada a características para evolução de linhas de produtos de software. 2012. 83 f. Dissertação (Mestrado em Ciências Exatas e da Terra) - Universidade Federal de Uberlândia, Uberlândia, 2012. DOI https://doi.org/10.14393/ufu.di.2012.395
https://repositorio.ufu.br/handle/123456789/12541
https://doi.org/10.14393/ufu.di.2012.395
identifier_str_mv FERREIRA, Gabriel Coutinho Sousa. O uso de programação orientada a características para evolução de linhas de produtos de software. 2012. 83 f. Dissertação (Mestrado em Ciências Exatas e da Terra) - Universidade Federal de Uberlândia, Uberlândia, 2012. DOI https://doi.org/10.14393/ufu.di.2012.395
url https://repositorio.ufu.br/handle/123456789/12541
https://doi.org/10.14393/ufu.di.2012.395
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 application/pdf
application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Uberlândia
BR
Programa de Pós-graduação em Ciência da Computação
Ciências Exatas e da Terra
UFU
publisher.none.fl_str_mv Universidade Federal de Uberlândia
BR
Programa de Pós-graduação em Ciência da Computação
Ciências Exatas e da Terra
UFU
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFU
instname:Universidade Federal de Uberlândia (UFU)
instacron:UFU
instname_str Universidade Federal de Uberlândia (UFU)
instacron_str UFU
institution UFU
reponame_str Repositório Institucional da UFU
collection Repositório Institucional da UFU
repository.name.fl_str_mv Repositório Institucional da UFU - Universidade Federal de Uberlândia (UFU)
repository.mail.fl_str_mv diinf@dirbi.ufu.br
_version_ 1813711568304603136