2012 Eighth International Conference on the Quality of Information and Communications Technology (2010)
Sept. 29, 2010 to Oct. 2, 2010
Maintenance accounts for the major part of a software system's total costs. Therein, program comprehension is an important, but complex activity: Typically, up-to-date documentation is not available, so the main reliable source of information on the implementation represent the artifacts of the system's implementation. Understanding software systems is difficult, in particular, if multithreading concepts are involved because state-of-the art development tools provide only limited support for maintenance activities. In addition, concurrency is often not directly reflected by the source code, i.e., there is only a non-obvious correlation between control structures in the source code and a system's runtime behavior. We present a program comprehension technique that helps to analyze and understand runtime behavior of multithreaded software systems and, thereby, facilitates software maintenance tasks. Our approach contains the following concepts: First, light-weight dynamic analysis records executed method calls at runtime. Second, visualization of multithreading trace data allows developers to explore the system behavior post-mortem. The technique forms part of a scalable tool suite for understanding the behavior of complex software systems. We also show how to apply the technique on industrial software systems to solve common maintenance problems.
multithreading, parallel computing, concurrency, threads, visualization, software, maintenance
Stefan Voigt, Jürgen Döllner, Johannes Bohnet, Jonas Trümper, "Visualization of Multithreaded Behavior to Facilitate Maintenance of Complex Software Systems", 2012 Eighth International Conference on the Quality of Information and Communications Technology, vol. 00, no. , pp. 325-330, 2010, doi:10.1109/QUATIC.2010.59