Visualizing Dynamic Social Network Structures

Status

finished by Barbara Schwarz in April 2007.

Introduction

Large complex software systems are decomposed in a number of modules that are implemented, maintained, and evolved by a number of developers. According to the principle of modularization and information hiding modules are using the functionality of other modules. Usually these dependency relationships between modules are documented in software design documentations and finally implemented in the source code. An interesting research question concerns the communication of changes in the modules and the design. For instance, when module A is changed, are these changes communicated to the developers of the other modules using module A? What is the communication about? Using the data from bug repositories and techniques from Social Network Analysis these questions will be addressed.

The goals of this diploma thesis

The goal of this master's thesis is to provide means and a prototype tool to visualize and analyze the communication of changes in the implemented design of an open source software project.

Task description

The first task in the Diploma Thesis is concerned with investigating existing work in the field of social network construction and analysis as well as visualization techniques.

The next step is concerned with reusing and extending existing implementations to:

  • Construct social networks from bug data and mailing list archives’ information;
  • Reconstruct the as-implemented design from source code;
  • Reconstruct the changes in software modules;
  • Visualize and analyze the communication of changes;

The first three implementation tasks are extensions to our existing Evolizer platform. The main work here is in adapting the data importer tools as well as in integrating the extracted data with the Hibernate tool set. Furthermore, an algorithm is needed (reuse existing or develop a new one) to assign developers to modules. For instance use the algorithm presented by Girba et al.

The visualization in task 4 has to be done with the yFiles graph visualization library and existing social network analysis algorithms. All tools have to be integrated into a plugin for the Eclipse IDE.

The evaluation of the concepts and prototype tool is done with the Java open source software project Compiere but not limited to this Java project.

The envisioned outcome

  • An extended meta model to also represent social network data together with change, bug, and source code data.
  • An algorithm to assign developers to modules.
  • A prototype tool to visualize and analyze the communication of changes.