SoftwareDynamics2: Fine-Grained Evolution of Software Behavior
SoftwareDynamics2: Fine-Grained Evolution of Software Behavior
DACH: Österreich - Deutschland - Schweiz
Disciplines
Computer Sciences (100%)
Keywords
-
Software Evolution,
Mining Software Repositories,
Dynamic Analysis,
Change Impact Analysis,
Software Visualization
Software systems continuously evolve. While the evolution of static properties of software systems, such as expressed by software metrics, code clones, and static dependencies, has been studied in detail, the evolution of dynamic properties has been investigated only at the macroscopic level. Basic questions, such as, what are the effects of a particular code change on the execution of a software system, or, which code changes caused the degradation of the execution time, are currently not easy to answer by software developers and researchers. This joint-project between Fabian Beck from the University of Stuttgart and Martin Pinzger from the Alpen-Adria University Klagenfurt targets the investigation of the interplay between software evolution and software execution. To this end, we propose to research novel methods and techniques to analyze and visualize the impact of specific code changes on the dynamic behavior of a software system, and to find causes for specific changes of dynamic behavior in the evolution of a software system. In contrast to previous research, we will analyze both, software evolution and software execution, on the level of program statements. We will evaluate our methods and techniques in a number of empirical studies with diverse software systems and in user studies with software developers. Furthermore, we will integrate the methods into novel prediction and recommendation techniques to assist software developers in optimizing specific performance metrics of a software system, such as runtime or memory consumption. A major challenge of this research project will be the mapping of single code changes to individual differences in the dynamic behavior. In addition, all methods need to be scalable and support multiple levels of details to make the fine-grained data explorable and understandable to software developers and researchers. The systematic and detailed analysis of the two time dimensions creates a unique research opportunity that has not yet been explored by researchers. The planned outcomes of the project promise to provide methods for researchers to gain a better understanding of software evolution beyond static properties of software systems, and for developers to ease software maintenance, in particular, optimizing the dynamic behavior of software systems.
The goal of this joint research project was to investigate and develop methods and techniques that support developers in analyzing and understanding the impact of code changes on the dynamic behavior of a software system and vice versa to find causes of certain dynamic behavior. The project was performed together with the visualization research group from the University of Duisburg-Essen, Germany. In the Austrian subproject, we focused on advancing the state-of-the-art in extracting detailed information about changes in the source code of software systems. As one of the main results of our research efforts we designed an approach to extract and classify detailed information on code changes from Java source code that we called IJM. Compared to existing approaches, IJM generates edit scripts that are easier to understand and better reflect the original developer's intent. IJM benefits non only software developers but all approaches that need detailed information about code changes as input. Well known examples of such approaches are approaches on change impact analysis and approaches on regression test selection. In parallel to IJM, we designed DiffViz, a tool to navigate and analyze code changes. It reads in two versions of a source file, runs the extraction of code changes, and presents the changes in the source code to the user. Compared to existing diff-like visualization tools, DiffViz provides several additional features that allow developers to navigate and analyze changes in source code faster. Both approaches were extensively evaluated with open source projects and software developers. The results were published and presented at a top international software engineering conference. The source code of both, IJM and DiffViz, is publicly available on GitHub.
- Universität Klagenfurt - 100%
- Beck Fabian, Universität Stuttgart - Germany
- Stephan Diehl, Universität Trier - Germany
- Andy Zaidman, Delft University of Technology - Netherlands
- Harald Gall, University of Zurich - Switzerland
Research Output
- 39 Citations
- 2 Publications
-
2018
Title DiffViz: A Diff Algorithm Independent Visualization Tool for Edit Scripts DOI 10.1109/icsme.2018.00081 Type Conference Proceeding Abstract Author Frick V Pages 705-709 -
2018
Title Generating Accurate and Compact Edit Scripts using Tree Differencing DOI 10.1109/icsme.2018.00036 Type Conference Proceeding Abstract Author Frick V Pages 264-274