Softwarenaut an environment for software exploration - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

Softwarenaut an environment for software exploration

Description:

in Azureus (Hierarchical package. structure) The package ... Exploring the Package Hierarchy of Azureus with Softwarenaut. USI PhD Talks, 28 October 2005 ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 16
Provided by: Mircea1
Category:

less

Transcript and Presenter's Notes

Title: Softwarenaut an environment for software exploration


1
Softwarenaut - an environment for software
exploration
  • Mircea Lungu
  • Faculty of Informatics, University of Lugano

USI PhD Talks October 28th, 2005
2
Visualization can save your life
John Snow
The lines on the buildings are proportional to
the number of deaths due to cholera from those
buildings. Do you know how did Snow realize
which was the cause of cholera by looking at this
map?
London - 1854
3
Visualization can save your time
  • Hippo
  • Industrial System
  • 1M LOC
  • gt10K Files
  • gt100 Authors

Number of dependencies
LOC
Can you see something strange about the
interaction between the subsystems of this
project?
Legend
4
Outline
  • Softwarenaut
  • Demo Exploring Package Hierarchies
  • Directions
  • Package Patterns for Automating the Exploration
  • Exploring cluster hierarchies
  • Conclusions and Future Work

5
The Purpose of Softwarenaut is
  • to provide meaningful views of the system
  • to provide starting points for subsequent
    analysis
  • to assist the reverse engineer in recovering a
    systems architecture

Architecture is the structure of the system,
which comprise of software elements, the
externally visible properties of those elements
and the relationships between them. Bass,
Clemens, Kazman
6
Is This The Systems Architecture?
  • Case Study Azureus
  • BitTorrent client
  • Written in Java
  • 2000 Classes
  • 200 Packages
  • 16000 Methods

Architecture?
Big ball of mud?
  • Reverse engineering the system
  • Entities Packages
  • Relationships calls aggregated from class level

Package dependency graph in Azureus (v2.2.0.2)
7
Top-Down Package Exploration
  • The package structure is implicitly hierarchical
  • Never made explicit in the Java language
    specification
  • We can use this to provide top-down exploration
  • Start with the top-level packages
  • Let the user expand and collapse packages
  • Supported by other tools
  • Rigi, SHriMP, Vizz3D

Azureus Package Hierarchy
Package dependency graph in Azureus
(Hierarchical package structure)
Package dependency graph in Azureus (Flat
package structure)
8
Demo Time
  • Exploring the Package Hierarchy of Azureus with
    Softwarenaut

9
When Do We Expand a Package?
  • After enough expand operations we might still
    end-up with a big ball of mud
  • Some views are more relevant than others
  • After each expand user has to decide the
    relevance of the view
  • User inspects each package to decide if expand is
    needed
  • Inspection can be automated
  • Expertise can be captured in Package Patterns

Enough Expand Operations
Functionality is provided at package level
Packages
Subsystem (Package Hierarchy)
10
Package Patterns
Legend
Packages
Package depends on other subsystems in the view
Functionality defined in package is used by
other subsystems in the view
  • Advise weather the user should expand or not a
    package
  • Defined based on
  • the interaction between the package and the other
    packages in the view
  • The internal structure of the package
  • Based on them we can annotate the exploration

Subsystem (Package Hierarchy)
Fall-Through Action Expand Description Only one
direct contained package which does not interact
with the others in the view
Iceberg Action Stop Description Only the top
package provides functionality to the packages in
the view.
11
Visualizing Semantic Cluster Interaction
mouse, click, sensor, view, window
  • Collaboration with Adrian Kuhn, Tudor Girba from
    SCG
  • Purpose
  • Understand the system by understanding the
    interaction between the semantic clusters
  • Semantic clusters
  • Sets of software artifacts that are defined using
    similar natural language terms

term, semantic, latent, space
matrix, row, column, triangle
Java, token, parser, stem
Cluster interaction in the Hapax system (from
Lungu, Kuhn, Girba, Lanza - Exploring semantic
clusters, Vissoft 2005)
12
Computing Semantic Clusters
  • Build a semantic similarity index using LSI
  • Terms words in the source code
  • Documents classes
  • Result similarity between classes
  • Perform hierarchical clustering
  • Hierarchy of semantic concepts,
  • General at top specific at bottom
  • Visualization Recipe
  • Aggregate the invocations between classes to
    cluster level
  • Visualize

Dendrogram of Hapax
Semantic Cohesion
Low
High
13
Which Clusters to Visualize?
  • Problem
  • Top clusters - too general
  • Bottom clusters - too specific
  • Middle clusters - which?
  • Solution
  • Top-down exploratory approach

Very general clusters
Very specific clusters
Dendrogram of Hapax
14
Conclusions and Future Work
  • Exploration can still degenerate in messy graphs
  • Patterns help here
  • Need for powerful/meaningful filtering mechanism
  • Dynamic information
  • Other?
  • Patterns
  • Find more
  • Do case studies
  • Softwarenaut
  • Integrate information regarding systems
    evolution
  • Provide a web interface

15
lets explore some questons!
After all these
System
Architecture
Early
Recent
Exploration
Patterns
Clusters
Softwarenaut
Write a Comment
User Comments (0)
About PowerShow.com