Package Fingerprint: a visual summary of package interfaces and relationships

Hani Abdeen 1 Stéphane Ducasse 1 Damien Pollet 1 Ilham Alloui 1
1 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
LIFL - Laboratoire d'Informatique Fondamentale de Lille, Inria Lille - Nord Europe
Abstract : Context: Object-oriented languages such as Java, Smalltalk, and C++ structure their programs using packages. Maintainers of large systems need to understand how packages relate to each other, but this task is complex because packages often have multiple clients and play different roles (class container, code ownership. . . ). Several approaches have been proposed, among which the use of cohesion and coupling metrics. Such metrics help identify candidate packages for restructuring; however, they do not help maintainers actually understand the structure and interrelation- ships between packages. Objectives: In this paper, we use pre-attentive processing as the basis for package visualization and see to what extent it could be used in package understanding. Method: We present the package fingerprint, a 2D visualization of the references made to and from a package. The proposed visualization offers a semantically rich, but compact and zoomable views centered on packages. We focus on two views (incoming and outgoing references) that help users understand how the package under analysis is used by the system and how it uses the system. Results: We applied these views on four large systems: Squeak, JBoss, Azureus, and ArgoUML. We obtained several interesting results, among which, the identification of a set of recurring visual patterns that help maintainers: (a) more easily identify the role of and the way a package is used within the system (e.g., the package under analysis provides a set of layered services), and, (b) detect either problematic situations (e.g., a single package that groups together a large number of basic services) or opportunities for better package restructuring (e.g., removing cyclic dependencies among packages). The visualization generally scaled well and the detection of different patterns was always possible. Conclusion: The proposed visualizations and patterns proved to be useful in understanding and maintaining the different systems we addressed. To generalize to other contexts and systems, a real user study is required.
Type de document :
Article dans une revue
Information and Software Technology, Elsevier, 2010, pp. 1312-1330. 〈10.1016/j.infsof.2010.07.005〉
Liste complète des métadonnées

Littérature citée [48 références]  Voir  Masquer  Télécharger
Contributeur : Lse Lse <>
Soumis le : mardi 2 novembre 2010 - 22:14:16
Dernière modification le : jeudi 11 janvier 2018 - 06:22:25
Document(s) archivé(s) le : jeudi 1 décembre 2016 - 23:47:46


Fichiers produits par l'(les) auteur(s)



Hani Abdeen, Stéphane Ducasse, Damien Pollet, Ilham Alloui. Package Fingerprint: a visual summary of package interfaces and relationships. Information and Software Technology, Elsevier, 2010, pp. 1312-1330. 〈10.1016/j.infsof.2010.07.005〉. 〈inria-00531496〉



Consultations de la notice


Téléchargements de fichiers