Título: | ON THE RELATIONSHIP BETWEEN FEATURE DEPENDENCIES AND CHANGE PROPAGATION | ||||||||||||
Autor: |
BRUNO BARBIERI DE PONTES CAFEO |
||||||||||||
Colaborador(es): |
ALESSANDRO FABRICIO GARCIA - Orientador |
||||||||||||
Catalogação: | 21/JUL/2016 | Língua(s): | ENGLISH - UNITED STATES |
||||||||||
Tipo: | TEXT | Subtipo: | THESIS | ||||||||||
Notas: |
[pt] Todos os dados constantes dos documentos são de inteira responsabilidade de seus autores. Os dados utilizados nas descrições dos documentos estão em conformidade com os sistemas da administração da PUC-Rio. [en] All data contained in the documents are the sole responsibility of the authors. The data used in the descriptions of the documents are in conformity with the systems of the administration of PUC-Rio. |
||||||||||||
Referência(s): |
[pt] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=26957&idi=1 [en] https://www.maxwell.vrac.puc-rio.br/projetosEspeciais/ETDs/consultas/conteudo.php?strSecao=resultado&nrSeq=26957&idi=2 |
||||||||||||
DOI: | https://doi.org/10.17771/PUCRio.acad.26957 | ||||||||||||
Resumo: | |||||||||||||
Features are the key abstraction to develop and maintain software
product lines. A challenge faced in the maintenance of product lines is the
understanding of the dependencies that exist between features. In the source
code, a feature dependency occurs whenever program elements within the
boundaries of a feature s implementation depend on elements external to that
feature. Examples are either attributes or methods defined in the realisation
of a feature, but used in the code realising other features. As developers
modify the source code associated with a feature, they must ensure that other
features are consistently updated with the new changes – the so-called change
propagation. However, appropriate change propagation is far from being trivial
as features are often not modularised in the source code. In this way, given a
change in a certain feature, it is challenging to reveal which (part of) other
features should also change. Change propagation becomes, therefore, a central
and non-trivial aspect of software product-line maintenance. Developers may
overlook important parts of the code that should be revised or changed, thus
not fully propagating changes. Conversely, they may also unnecessarily analyse
parts that are not relevant to the feature-maintenance task at hand, thereby
increasing the maintenance effort or even mis-propagating changes. The
creation of a good mental model based on the structure of feature dependencies
becomes essential for gaining insight into the intricate relationship between
features in order to properly propagate changes. Unfortunately, there is no
understanding in the state of the art about structural properties of feature
dependencies that affect change propagation. This understanding is not yet
possible as: (i) there is no conceptual characterisation and quantification means
for structural properties of feature dependency, and (ii) there is no empirical
investigation on the influence of these properties on change propagation.
In this context, this thesis presents three contributions to overcome the
aforementioned problems. First, we develop a study to understand change
propagation in presence of feature dependencies in several industry-strength
product lines. Second, we propose a measurement framework intended to
quantify structural properties of feature dependencies. We also develop a
study revealing that conventional metrics typically used in previous research,
such as coupling metrics, are not effective indicators of change propagation
in software product lines. Our proposed metrics consistently outperformed
conventional metrics. Third, we also propose a method to support change
propagation by facing the organisation of feature dependency information as
a clustering problem. We evaluate if our proposed organisation has potential
to help developers to propagate changes in software product lines.
|
|||||||||||||
|