|
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.
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. |