4 RELATED WORK
Du Bois and Mens (Bois and Mens, 2003), (Bois,
2006) suggest the evaluation of refactoring patterns
by identifying conditions in which their application
minimize coupling and maximize cohesion. Their
formal analysis can be used together with our ap-
proach to provide additional information for the de-
veloper to express the relative importance of refacto-
ring patterns over the quality attributes using pairwise
comparisons.
Tourwe and Mens (Tourwe and Mens, 2003) use
logic meta programming to identify refactoring op-
portunities in a software design and propose the ap-
plication of refactoring patterns. Their approach can
be used together with ours to improve the results by
focusing on the refactoring patterns that improve most
the set of quality attributes selected by the developers.
Mens et al. (Mens et al., 2003) state that an open
problem is to assess the effects of a refactoring pattern
on the software quality, as some refactoring patterns
remove redundancy, raise abstraction or modularity
level and others have negative impact on reusability,
for example. By classifying refactoring patterns in
terms of the quality attributes they affect, the effect
of a refactoring on the software quality can be esti-
mated. In this paper, we provide a quantitative ap-
proach to rank a set of refactoring patterns according
to the quality attributes that the developers are con-
cerned about.
5 CONCLUSIONS
Usually, there is room for improvements in existing
software projects. However, resources are finite and
must be directed to those activities that bring more
benefits to the project. Considering refactoring activ-
ities, the developers should focus on the search for re-
factoring opportunities for those refactoring patterns
that are more likely to improve the software being de-
veloped or maintained.
AHP can help the developers to express the re-
lationship between quality attributes and refactoring
patterns and quality attributes between themselves.
These relations are used to compute a ranking of re-
factoring patterns (according to the selected quality
attributes), which can be used to focus the effort of
searching for refactoring opportunities for those re-
factoring patterns that can have more impact in the
software quality.
Without focusing in a restricted set of refactoring
patterns, the developers can be losing time with re-
factoring opportunities that bring little or nothing to
the software quality. The approach described in this
paper is adaptable: the quality attributes, the refacto-
ring patterns and the weights can be changed and a
new ranking computed automatically.
ACKNOWLEDGEMENTS
This work has been partially supported by CNPq un-
der grant No. 140046/2006-2 for Eduardo Piveta,
by Capes-Grices grant No. 166/06 and by PRO-
SUL No. 490478/2006-9 - Latin-America Research
Network on Aspect-Oriented Software Development
(Latin- AOSD).
REFERENCES
Boehm, B. W. and In, H. (1996). Identifying quality-
requirement conflicts. IEEE Software, 13(2):25–35.
Bois, B. D. (2006). A Study of Quality Improvements by
Refactoring. PhD thesis, Universiteit Antwerpen.
Bois, B. D. and Mens, T. (2003). Describing the impact of
refactorings on internal program quality. In 1st Work-
shop on Evolution of Large-scale Industrial Software
Applications - ELISA’03. Amsterdam, Netherlands.
Fowler, M., Beck, K., Brant, J., Opdyke, W. F., and Roberts,
D. (1999). Refactoring: Improving the Design of Ex-
isting Code. Addison-Wesley.
Mens, T., Demeyer, S., Bois, B. D., Stenten, H., and van
Gorp, P. (2003). Refactoring: Current research and
future trends. ENTCS - Elsevier, 82(3):483 – 499.
Mens, T., Taentzer, G., and Runge, O. (2005). Detecting
structural refactoring conflicts using critical pair anal-
ysis. ENTCS - Elsevier, 127(3):113 – 128.
Mens, T. and Tourwe, T. (2004). A survey of software
refactoring. IEEE Trans. on Software Engineering,
30(2):126 – 139.
Opdyke, W. F. (1992). Refactoring Object-Oriented Frame-
works. PhD thesis, University of Illinois.
Saaty, T. L. (1990). How to make a decision: The analytic
hierarchy process. European Journal of Operational
Research - Elsevier, 48(1):9 – 26.
Saaty, T. L. (2003). Decision-making with the ahp: Why is
the principal eigenvector necessary? European Jour-
nal of Operational Research - Elsevier, 145(1):85 –
91.
Tourwe, T. and Mens, T. (2003). Identifying refactoring op-
portunities using logic meta programming. In 7th Eu-
ropean Conf. on Software Maintenance and Reengi-
neering - CSMR’03. Benevento, Italy., pages 91 – 100.
ICEIS 2008 - International Conference on Enterprise Information Systems
200