• Title of article

    Package Fingerprints: A visual summary of package interface usage

  • Author/Authors

    Abdeen، نويسنده , , Hani and Ducasse، نويسنده , , Stéphane and Pollet، نويسنده , , Damien and Alloui، نويسنده , , Ilham، نويسنده ,

  • Issue Information
    ماهنامه با شماره پیاپی سال 2010
  • Pages
    19
  • From page
    1312
  • To page
    1330
  • Abstract
    Context -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, etc.). 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 interrelationships between packages. ives s paper, we use pre-attentive processing as the basis for package visualization and see to what extent it could be used in package understanding. sent 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. s lied 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. sion oposed 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.
  • Keywords
    Coupling , Software package , Visualization , COHESION
  • Journal title
    Information and Software Technology
  • Serial Year
    2010
  • Journal title
    Information and Software Technology
  • Record number

    2374640