Bundle View Software Visualization

Bewertung:  / 0
SchwachSuper 

 

bundleviewfront_frame

 Visualizing Hierarchy and Call Relations in Software Systems

You may ask, why is it difficult to explore and understand the inner structure/behavior of software projects? The reason can be found in a large number of interwoven relations among entities of a complex software project. For one, they result from the hierarchical structure of the project's directory, file, and functions or namespace and class organization. Secondly, there are functional relations that describe dependencies between functions within a file or among different files of a project. Visualizing such relations in software systems can answer the question about structural and functional dependencies among components of a software project. These information are of great interest to the process of reverse engineering as well as during the evolution of software projects.

 

 

 

Views of a Software System:

The Circular Bundle View visualization provides an overview of the static project structure and the static call relations among components of the software system. It is possible to visualize all relations in form of bundles in a bounded area by arranging the files and the functions contained within the files in a circular order. This enables the viewer to answer the question about the distribution of modules within the software system. The visual exploration of the software project reveals the size (LOC) of individual components and the relations shared among them. By analyzing the bundle distribution, it can be easily determined if sections of a project do not communicate with each other and where alot of functional dependencies exist.

 

b0bundleviewdetail_frame

 

What you see is in your project.

The Circular Bundle View visualization shows the static project structure and all static call relations within the project. In general, projects consist of hierarchical grouped directories and files that contain functions at the innermost level (light grey nodes). The static call relations show where functions are called by other functions; caller: blue end of bundles; callee: yellow end of bundles.

 

bundleviewperspective_frame


In addition to visualizing call relations using static bundles among caller and callee functions, there is the possibility to gain additional insights about the call relations by selecting items for further investigation. The height of the bars encodes the number of static calls from and to items of interest. The color of the bars shows whether the function calls or is called by other functions. Mixed bars show that functions act as caller and callee.

 

bundleviewcallview_frame

 

New to a project group?

Developers seldom start with software projects from scratch. Most often they join existing project teams and need to understand the source code and its responsibilities. The Circular Bundle View provides a great way to understand the structure and dependencies of existing software projects.

 

bundleviewcallviewdetail_frame


Are all architectural decisions preserved?

The circular bundle view software visualization reveals where parts of a project communicate with each other. That enables architects and managers to judge the quality of the implementation and to discover design flaws by analyzing the distribution of bundles. You want to implement new features? This is a typical scenario developers often face; You have a well developed system and need to integrate new features into the software project.

 

How does the source code visualization help here?

The visualization can answer the question of where to integrate new features into the system the best way. By taking a look at the Circular Bundle Visualization, it becomes clear which parts of a software system will be affected by local modifications.

 

 

The video shows the visualization of the Notepad++ source code.

 

Members: Daniel Bierwirth, Stefan Hampel, Stefan Lemme

This is a group project with the Computer Graphics Systems Lab at Hasso Plattner Institute.

 

References: Hierarchical Edge Bundles: Visualization of Adjacency Relations in Hierarchical Data, Danny Holten, IEEE Transactions on Visualization and Computer Graphics (TVCG; Proceedings of Vis/InfoVis 2006), Vol. 12, No. 5, Pages 741 - 748, 2006.