Publicação: O uso de programação orientada a características para evolução
de linhas de produtos de software
Carregando...
Tipo do documento
Data
Direito de acesso
Área do conhecimento
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Título da Revista
ISSN da Revista
Título de Volume
Orientador
Coorientador
Figueiredo, Eduardo Magno Lages
Resumo
A 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.
Abstract
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.
Palavras-chave
Linhas de produtos de software, Programação orientada a características, Mecanismos de variabilidade, Métricas de software, Evolução de software, Software product lines, Feature-oriented programming, Variability mechanisms, Software metrics, Fop, Software evolution, Software - Desenvolvimento
Citação
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