O uso de programação orientada a características para evolução de linhas de produtos de software
Autor(a) principal: | |
---|---|
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 |