<  Retour au portail Polytechnique Montréal

HALO : a multi-feature two-pass analysis to identify framework API evolution

Wei Wu, Yann-Gaël Guéhéneuc, Giuliano Antoniol et Miryung Kim

Rapport technique (2013)

Document en libre accès dans PolyPublie et chez l'éditeur officiel
[img]
Affichage préliminaire
Libre accès au plein texte de ce document
Version officielle de l'éditeur
Conditions d'utilisation: Tous droits réservés
Télécharger (644kB)
Afficher le résumé
Cacher le résumé

Abstract

Software frameworks and libraries are indispensable to today's software systems. Because of the fast development of open-source software in recent years, frameworks and libraries have became much versatile as any open-source system or part thereof can be used as a framework (or a library). Developer can reuse frameworks in innovative ways that are not expected by the providers of frameworks. Many frameworks are not well documented and very few owners provide specific documents to describe the changes between different releases of their frameworks. When they evolve, it is often time-consuming for developers to keep their dependent code up-to-date. Approaches have been proposed to lessen the impact of framework evolution on developers by identifying API evolution or change rules between two releases of a framework. However, the precision and recall of the change rules generated by these approaches depend on the features that they use, such as call-dependency relations or text similarity. If these features do not provide enough information, the approaches can miss correct change rules and compromise the precision and recall. For example, if a method in the old release of a framework is not called by other methods, we cannot find its change rule using call-dependency relations alone. Considering more features can overcome this limitation. Yet, because many features may also give contradictory information, integrating them is not straightforward. We thus introduce Halo, a novel hybrid approach that uses multiple features, including call dependency relations, method documentations, inheritance relations, and text similarity. Halo implements a two-pass analysis inspired by pattern classification problem. We implement Halo in Java and compare it with four state-of-the-art approaches. The comparison shows that, on average, the recall and the precision of Halo are 43% and 5% higher than that of other approaches.

Mots clés

Software evolution, call dependency analysis, text similarity analysis, inheritance relation analysis, empirical study

Sujet(s): 2700 Technologie de l'information > 2700 Technologie de l'information
2700 Technologie de l'information > 2706 Génie logiciel
2700 Technologie de l'information > 2713 Algorithmes
Département: Département de génie informatique et génie logiciel
URL de PolyPublie: https://publications.polymtl.ca/2967/
Numéro du rapport: EPM-RT-2013-05
Date du dépôt: 02 févr. 2018 14:19
Dernière modification: 26 avr. 2024 04:59
Citer en APA 7: Wu, W., Guéhéneuc, Y.-G., Antoniol, G., & Kim, M. (2013). HALO : a multi-feature two-pass analysis to identify framework API evolution. (Rapport technique n° EPM-RT-2013-05). https://publications.polymtl.ca/2967/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document Afficher document