- Category: Projects
Software Visualization
Visualization techniques are commonly used in reverse engineering to better understand the underlaying design of software components. Our approach is to provide tools to help discover the architecture of a software by making use of innovative visualization and user interaction techniques. While a software is always evolving, there are ways to recover information about its structure. For instance, data mining can be applied to version control and bug tracking systems. To be able to see the software helps the architect predict and limit change impacts and costs. Our goal is to visualize the evolution of the software through time, while taking under account human factors and software engineering principles.
We present a hybrid visualization technique for compound graphs (i.e. networks with a hierarchical clustering defined on the nodes) that combines the use of adjacency matrices, node-link and arc diagrams to show the graph, and also combines the use of nested inclusion and icicle diagrams to show the hierarchical clustering. The graph visualized with our technique may have edges that are weighted and/or directed. We first explore the design space of visualizations of compound graphs and present a taxonomy of hybrid visualization techniques. We then present our prototype, which allows clusters (i.e. subtrees) of nodes to be grouped into matrices or split apart using a radial menu. We also demonstrate how our prototype can be used in the software engineering domain, and compare it to the commercial matrix-based visualization tool Lattix using a qualitative user study.
A common problem in software engineering is to find the right balance between quality and cost, while delivering on time. Needs and technology are evolving faster than our skill to manage such projects. To manage and implement efficiently these change requests can affect the software quality and maintenance costs.
In this study, we used several data mining techniques (classification and regression) to find a relationship between change impact (e.g. lines of code, number of modified files) and software design measures. We found out which attributes seems to have more impact on the maintenance effort. The data was collected from open-source projects, but a larger scale study is currently being done.


News