VLDB 2026 Research / reviewers in the wild / expert
Stephan Diehl 0001
dblp:d/StephanDiehl1
· DBLP profile ↗
72ranked-venue papers
15as first author
7since 2021 · last 2026
0000-0002-4287-7447ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 43 · 7 first-author · 5 since 2021Human-computer interaction and ubiquitous computing · 20 · 1 first-author · 3 since 2021Graphics, computer vision, multimedia, augmented reality and games · 11 · 1 first-author · 1 since 2021Theory of computation · 5 · 4 first-authorSystems, architecture and hardware · 4 · 3 first-authorDatabases, data management, data science and information retrieval · 4
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | A Comparative Study of Dual-Monitor and Augmented-Reality Interfaces for Digital-Twin-Based DebuggingabstractTraditional software development workflows, which rely primarily on physical multi-monitor setups, are effective for developing desktop and server-based applications that display output to users via monitors. However, these workflows face limitations in domains such as cyber-physical systems, particularly in robotics, where applications must interact directly with the physical environment. In such domains, digital twins offer an opportunity to visualize and debug these systems within a simulated and realistic environment. Lucas Kreber, Nico Feld, Stephan Diehl 0001, Benjamin Weyers |
ICPC | 3 |
| 2025 | A Retrospective on Mining Version Histories to Guide Software ChangesabstractTwenty years ago we published a paper titled “Mining Version Histories to Guide Software Changes” in the IEEETransactions of Software Engineering. The paper is considered to be one of the seminal papers of the mining software repositories (MSR) field. In this retrospective, we reflect on the original work, the field of mining software repositories and its community, and its impact on software engineering. Thomas Zimmermann 0001, Peter Weißgerber, Stephan Diehl 0001, Andreas Zeller |
IEEE Trans. Software Eng. | 3 |
| 2023 | A Comparative Evaluation of Tabs and Linked Panels for Program Understanding in Augmented RealityabstractIntegrated development environments (IDEs) commonly employ a tab-based interface for displaying source code, which often poses challenges in efficient code navigation and retrieval. Previous research has proposed several novel approaches that have in common that they place code fragments on a 2D canvas and draw visual connections between them. In this paper, we investigate the extension of such interfaces to augmented reality (AR) environments. As AR allows to display information in three dimensions, the restriction to a 2D canvas for placing code fragments is not justified, and we implement it by allowing users to place code panels freely in 3D space. We call the resulting interface linked panels. We present the results of a quantitative user study conducted with 24 participants, aiming to explore whether the benefits observed for the canvas-based approach in traditional 2D screen environments can be replicated with linked panels in augmented reality. The participants were given tasks to identify and resolve two bugs in two different software projects using the traditional tab-based and the panel-based approaches in AR. To find possible explanations of our quantitative results we also conducted a qualitative analysis evaluating participants’ comments and different placement strategies of panels in the panel-based approach. Our results indicate that participants found more bugs with the tabs-version, but were equally fast with both tools. We also found that less skilled participants were faster with the tabs, while more skilled ones were faster with the panels. Although, participants experienced problems with the cluttered spatial arrangement of the panels, they preferred the panels version over the tabs version as it made better use of AR. Lucas Kreber, Stephan Diehl 0001 |
ISMAR | 2 |
| 2023 | The CodeSparks Framework - Augmenting Source Code with Glyph-based Visualizations
Oliver Moseler, Stephan Diehl 0001 |
Sci. Comput. Program. | 2 |
| 2022 | IDEvelopAR: A Programming Interface to enhance Code Understanding in Augmented RealityabstractDuring software maintenance developers spend a considerable amount of time on tasks like navigating, identifying required code locations or tracing various call hierarchies. The classical tabbed interfaces, as found in modern IDEs, are not ideal for such tasks, leading to an inefficient workflow containing many context switches. Therefore, several programming environments, like Code Bubbles, were proposed to overcome these issues by allowing users to freely arrange code fragments on a canvas to make relations more explicit and better understand the codebase. Relations are made explicit using visual links or extra space between groups of code fragments. As a consequence, these approach quickly run out of screen space. In this paper, we present IDEVELOPAR, a tool to enhance code understanding in augmented reality. Due to the use of AR, a user is not restricted anymore by limited display sizes and can use the entire physical space as a workspace for placing and grouping code fragments as well as making changes to the codebase. First, we introduce the views and interactive functionalities of our tool. Next, we illustrate the usefulness of the tool by navigating an example program to locate and fix a bug. Finally, we briefly discuss the results of a cognitive walk-through using the cognitive dimension framework as well as a formative user study to identify potential usability problems. Moreover, in this study the participants also mentioned several advantages of our approach over the classical one. Furthermore, we found that over time the participants developed their own placement strategies. Lucas Kreber, Stephan Diehl 0001, Patrick Weil |
VISSOFT | 2 |
| 2021 | ThreadRadar: A Thread-Aware Visualization for Debugging Concurrent Java ProgramsabstractDue to non-deterministic behavior and thread interleaving of concurrent programs, the debugging of concurrency and performance issues is a rather difficult and often tedious task. In this paper, we present an approach that combines statistical profiling, clustering and visualization to facilitate this task. We implemented our approach in a tool which is integrated as a plugin into a widely used IDE. First, we introduce our approach with details on the profiling and clustering strategy that produce runtime metrics and clusters of threads for source-code artifacts at different levels of abstraction (class and method) and the entire program. Next, we explain the design of our sparkline visualization which represents the clusters in situ, i.e. embedded in the program text next to the related source-code artifact in the source-code editor. More detailed information is available in separate views that also allow the user to interactively configure thread filters. In a demonstration study we illustrate the usefulness of the tool for understanding and fixing performance and concurrency issues. Finally, we report on first formative results from a small-scale user study. Oliver Moseler, Lucas Kreber, Stephan Diehl 0001 |
VINCI | 3 |
| 2021 | On the diversity and frequency of code related to mathematical formulas in real-world Java projects
Oliver Moseler, Felix Lemmer, Sebastian Baltes, Stephan Diehl 0001 |
J. Syst. Softw. | 4 |
| 2020 | Visual Breakpoint Debugging for Sum and Product FormulaeabstractSoftware debugging is one of the most time consuming source code related tasks. Hence, we propose a novel approach to breakpoint debugging for formula code, i.e. source code implementing mathematical formulae. In this work, the focus is on source code which computes a numerical value via arithmetic operations as well as sum- and product formulae. We introduce and discuss breakpoints placed on an automatically inferred mathematical representation, i.e. in a common mathematical notation or by a mixed form of source code artifacts and maths symbols. Furthermore, we present visual debugging features aiming to facilitate the dynamic inspection of the formula code leveraging the mathematical representation. We briefly present a first prototype implementation of our formula debugging approach and indicate future directions of our work. Oliver Moseler, Michael Wolz, Stephan Diehl 0001 |
VISSOFT | 3 |
| 2019 | SOTorrent: studying the origin, evolution, and usage of stack overflow code snippetsabstractStack Overflow (SO) is the most popular question-and-answer website for software developers, providing a large amount of copyable code snippets. Like other software artifacts, code on SO evolves over time, for example when bugs are fixed or APIs are updated to the most recent version. To be able to analyze how code and the surrounding text on SO evolves, we built SOTorrent, an open dataset based on the official SO data dump. SOTorrent provides access to the version history of SO content at the level of whole posts and individual text and code blocks. It connects code snippets from SO posts to other platforms by aggregating URLs from surrounding text blocks and comments, and by collecting references from GitHub files to SO posts. Our vision is that researchers will use SOTorrent to investigate and understand the evolution and maintenance of code on SO and its relation to other platforms such as GitHub. Sebastian Baltes, Christoph Treude, Stephan Diehl 0001 |
MSR | 3 |
| 2019 | Usage and attribution of Stack Overflow code snippets in GitHub projectsabstractStack Overflow (SO) is the most popular question-and-answer website for software developers, providing a large amount of copyable code snippets. Using those snippets raises maintenance and legal issues. SO’s license (CC BY-SA 3.0) requires attribution, i.e., referencing the original question or answer, and requires derived work to adopt a compatible license. While there is a heated debate on SO’s license model for code snippets and the required attribution, little is known about the extent to which snippets are copied from SO without proper attribution. We present results of a large-scale empirical study analyzing the usage and attribution of non-trivial Java code snippets from SO answers in public GitHub (GH) projects. We followed three different approaches to triangulate an estimate for the ratio of unattributed usages and conducted two online surveys with software developers to complement our results. For the different sets of projects that we analyzed, the ratio of projects containing files with a reference to SO varied between 3.3% and 11.9%. We found that at most 1.8% of all analyzed repositories containing code from SO used the code in a way compatible with CC BY-SA 3.0. Moreover, we estimate that at most a quarter of the copied code snippets from SO are attributed as required. Of the surveyed developers, almost one half admitted copying code from SO without attribution and about two thirds were not aware of the license of SO code snippets and its implications. Sebastian Baltes, Stephan Diehl 0001 |
Empir. Softw. Eng. | 2 |
| 2018 | SOTorrent: reconstructing and analyzing the evolution of stack overflow postsabstractStack Overflow (SO) is the most popular question-and-answer website for software developers, providing a large amount of code snippets and free-form text on a wide variety of topics. Like other software artifacts, questions and answers on SO evolve over time, for example when bugs in code snippets are fixed, code is updated to work with a more recent library version, or text surrounding a code snippet is edited for clarity. To be able to analyze how content on SO evolves, we built SOTorrent, an open dataset based on the official SO data dump. SOTorrent provides access to the version history of SO content at the level of whole posts and individual text or code blocks. It connects SO posts to other platforms by aggregating URLs from text blocks and by collecting references from GitHub files to SO posts. In this paper, we describe how we built SOTorrent, and in particular how we evaluated 134 different string similarity metrics regarding their applicability for reconstructing the version history of text and code blocks. Based on a first analysis using the dataset, we present insights into the evolution of SO posts, e.g., that post edits are usually small, happen soon after the initial creation of the post, and that code is rarely changed without also updating the surrounding text. Further, our analysis revealed a close relationship between post edits and comments. Our vision is that researchers will use SOTorrent to investigate and understand the evolution of SO posts and their relation to other platforms such as GitHub. Sebastian Baltes, Lorik Dumani, Christoph Treude, Stephan Diehl 0001 |
MSR | 4 |
| 2018 | Towards a theory of software development expertiseabstractSoftware development includes diverse tasks such as implementing new features, analyzing requirements, and fixing bugs. Being an expert in those tasks requires a certain set of skills, knowledge, and experience. Several studies investigated individual aspects of software development expertise, but what is missing is a comprehensive theory. We present a first conceptual theory of software development expertise that is grounded in data from a mixed-methods survey with 335 software developers and in literature on expertise and expert performance. Our theory currently focuses on programming, but already provides valuable insights for researchers, developers, and employers. The theory describes important properties of software development expertise and which factors foster or hinder its formation, including how developers' performance may decline over time. Moreover, our quantitative results show that developers' expertise self-assessments are context-dependent and that experience is not necessarily related to expertise. Sebastian Baltes, Stephan Diehl 0001 |
ESEC/SIGSOFT FSE | 2 |
| 2018 | Exploring the limits of complexity: A survey of empirical studies on graph visualisationabstractFor decades, researchers in information visualisation and graph drawing have focused on developing techniques for the layout and display of very large and complex networks. Experiments involving human participants have also explored the readability of different styles of layout and representations for such networks. In both bodies of literature, networks are frequently referred to as being ‘large’ or ‘complex’, yet these terms are relative. From a human-centred, experiment point-of-view, what constitutes ‘large’ (for example) depends on several factors, such as data complexity, visual complexity, and the technology used. In this paper, we survey the literature on human-centred experiments to understand how, in practice, different features and characteristics of node–link diagrams affect visual complexity. Vahan Yoghourdjian, Daniel Archambault, Stephan Diehl 0001, Tim Dwyer, Karsten Klein 0001, Helen C. Purchase, Hsiang-Yun Wu |
Vis. Informatics | 3 |
| 2017 | Round-Trip Sketches: Supporting the Lifecycle of Software Development Sketches from Analog to Digital and BackabstractSketching is an important activity for understanding, designing, and communicating different aspects of software systems such as their requirements or architecture. Often, sketches start on paper or whiteboards, are revised, and may evolve into a digital version. Users may then print a revised sketch, change it on paper, and digitize it again. Existing tools focus on a paperless workflow, i.e., archiving analog documents, or rely on special hardware-they do not focus on integrating digital versions into the analog-focused workflow that many users follow. In this paper, we present the conceptual design and a prototype of LivelySketches, a tool that supports the "round-trip" lifecycle of sketches from analog to digital and back. The proposed workflow includes capturing both analog and digital sketches as well as relevant context information. In addition, users can link sketches to other related sketches or documents. They may access the linked artifacts and captured information using digital as well as augmented analog versions of the sketches. We further present results from a formative user study with four students and outline possible directions for future work. Sebastian Baltes, Fabrice Hollerich, Stephan Diehl 0001 |
VISSOFT | 3 |
| 2017 | A Taxonomy and Survey of Dynamic Graph VisualizationabstractAbstract Dynamic graph visualization focuses on the challenge of representing the evolution of relationships between entities in readable, scalable and effective diagrams. This work surveys the growing number of approaches in this discipline. We derive a hierarchical taxonomy of techniques by systematically categorizing and tagging publications. While static graph visualizations are often divided into node‐link and matrix representations, we identify the representation of time as the major distinguishing feature for dynamic graph visualizations: either graphs are represented as animated diagrams or as static charts based on a timeline. Evaluations of animated approaches focus on dynamic stability for preserving the viewer's mental map or, in general, compare animated diagrams to timeline‐based ones. A bibliographic analysis provides insights into the organization and development of the field and its community. Finally, we identify and discuss challenges for future research. We also provide feedback from experts, collected with a questionnaire, which gives a broad perspective of these challenges and the current state of the field. Fabian Beck 0001, Michael Burch, Stephan Diehl 0001, Daniel Weiskopf |
Comput. Graph. Forum | 3 |
| 2016 | Worse Than Spam: Issues In Sampling Software DevelopersabstractBackground: Reaching out to professional software developers is a crucial part of empirical software engineering research. One important method to investigate the state of practice is survey research. As drawing a random sample of professional software developers for a survey is rarely possible, researchers rely on various sampling strategies. Objective: In this paper, we report on our experience with different sampling strategies we employed, highlight ethical issues, and motivate the need to maintain a collection of key demographics about software developers to ease the assessment of the external validity of studies. Method: Our report is based on data from two studies we conducted in the past. Results: Contacting developers over public media proved to be the most effective and efficient sampling strategy. However, we not only describe the perspective of researchers who are interested in reaching goals like a large number of participants or a high response rate, but we also shed light onto ethical implications of different sampling strategies. We present one specific ethical guideline and point to debates in other research communities to start a discussion in the software engineering research community about which sampling strategies should be considered ethical. Sebastian Baltes, Stephan Diehl 0001 |
ESEM | 2 |
| 2016 | Grounded requirements engineering: An approach to use case driven requirements engineering
David Würfel, Rainer Benda, Stephan Diehl 0001 |
J. Syst. Softw. | 3 |
| 2015 | Navigate, Understand, Communicate: How Developers Locate Performance BugsabstractBackground: Performance bugs can lead to severe issues regarding computation efficiency, power consumption, and user experience. Locating these bugs is a difficult task because developers have to judge for every costly operation whether runtime is consumed necessarily or unnecessarily. Objective: We wanted to investigate how developers, when locating performance bugs, navigate through the code, understand the program, and communicate the detected issues. Method: We performed a qualitative user study observing twelve developers trying to fix documented performance bugs in two open source projects. The developers worked with a profiling and analysis tool that visually depicts runtime information in a list representation and embedded into the source code view. Results: We identified typical navigation strategies developers used for pinpointing the bug, for instance, following method calls based on runtime consumption. The integration of visualization and code helped developers to understand the bug. Sketches visualizing data structures and algorithms turned out to be valuable for externalizing and communicating the comprehension process for complex bugs. Conclusion: Fixing a performance bug is a code comprehension and navigation problem. Flexible navigation features based on executed methods and a close integration of source code and performance information support the process. Sebastian Baltes, Oliver Moseler, Fabian Beck 0001, Stephan Diehl 0001 |
ESEM | 4 |
| 2015 | Live object exploration: Observing and manipulating behavior and state of Java objectsabstractIn this paper we introduce a visual representation of Java objects that can be used for observing and manipulating behavior and state of currently developed classes. It runs separately, e.g., on a tablet, beside an integrated development environment. Within the visualization, developers are able to arbitrarily change the object state, then invoke any method with custom parameters and observe how the object state changes. When changing the source code of the related class, the visualization holds the previous object state and adapts the new behavior defined by the underlying source code. This instantly enables developers to observe functionalities objects of a certain class have and how they manipulate their state, and especially, how source code changes influence their behavior. We implemented a first prototype as a touch-enabled web application that is connected to a conventional integrated development environment. In order to gain first practical insights, we evaluated our approach in a pilot user study. Benjamin Biegel 0001, Benedikt Lesch, Stephan Diehl 0001 |
ICSME | 3 |
| 2015 | VisualCues: Visually explaining source code in computer science educationabstractHumans are very efficient in processing and remembering visual information. That is why metaphors and visual representations are important in education. Because of their high visual expressiveness, presentation tools like Microsoft PowerPoint are very popular for teaching in classrooms. However, representing source code with such tools is tedious and cumbersome, while alternatives like source code editors lack visual expression. Moreover, modifying prepared content, e.g. while responding to questions, is not well supported. In this paper, we introduce VisualCues, an approach with the goal of combining the flexibility of source code editors with the visual expressiveness of classical slide-based presentation tools. A key concept of VisualCues is linking visual artifacts to specific elements of source code. The main advantage is that when changing the underlying source code, the positions of linked visual artifacts are changed simultaneously. We implemented a first prototype and evaluated it in two undergraduate computer science courses. Benjamin Biegel 0001, Sebastian Baltes, Bob Prevos, Stephan Diehl 0001 |
VL/HCC | 4 |
| 2014 | Code Tagging as a Social GameabstractKeywords or tags summarize documents on an abstract level and can also be used for describing code fragments. They might be leveraged for retrieving features of a software system, understanding program functionality, or providing additional context. While automatic approaches at best are only able to retrieve information that is already contained in the source code, manual tagging could add valuable extra information from qualified expertise of the developers. However, tagging code is tedious. To make code tagging more fun, we introduce a social gasification approach: developers independently tag code fragments and are rewarded if their solutions conform to the solution of other developers. We implemented the game as a Facebook plug-in. A pilot user study suggests that the game mechanics are motivating and promote the proposition of reasonable tags. Benjamin Biegel 0001, Fabian Beck 0001, Benedikt Lesch, Stephan Diehl 0001 |
ICSME | 4 |
| 2014 | Using visual dataflow programming for interactive model comparisonabstractIn software engineering the comparison of graph-based models is a well-known problem. Although different comparison metrics have been proposed, there are situations in which automatic or pre-configured approaches do not provide reasonable results. Especially when models contain semantic similarities or differences, additional human knowledge is often required. However, only few approaches tackle the problem of how to support humans when comparing models. Rainer Benda, Stephan Diehl 0001 |
ASE | 2 |
| 2014 | Sketches and diagrams in practiceabstractSketches and diagrams play an important role in the daily work of software developers. In this paper, we investigate the use of sketches and diagrams in software engineering practice. To this end, we used both quantitative and qualitative methods. We present the results of an exploratory study in three companies and an online survey with 394 participants. Our participants included software developers, software architects, project managers, consultants, as well as researchers. They worked in different countries and on projects from a wide range of application areas. Most questions in the survey were related to the last sketch or diagram that the participants had created. Contrary to our expectations and previous work, the majority of sketches and diagrams contained at least some UML elements. However, most of them were informal. The most common purposes for creating sketches and diagrams were designing, explaining, and understanding, but analyzing requirements was also named often. More than half of the sketches and diagrams were created on analog media like paper or whiteboards and have been revised after creation. Most of them were used for more than a week and were archived. We found that the majority of participants related their sketches to methods, classes, or packages, but not to source code artifacts with a lower level of abstraction. Sebastian Baltes, Stephan Diehl 0001 |
SIGSOFT FSE | 2 |
| 2014 | Linking sketches and diagrams to source code artifactsabstractRecent studies have shown that sketches and diagrams play an important role in the daily work of software developers. If these visual artifacts are archived, they are often detached from the source code they document, because there is no ad- equate tool support to assist developers in capturing, archiving, and retrieving sketches related to certain source code artifacts. This paper presents SketchLink, a tool that aims at increasing the value of sketches and diagrams created during software development by supporting developers in these tasks. Our prototype implementation provides a web application that employs the camera of smartphones and tablets to capture analog sketches, but can also be used on desktop computers to upload, for instance, computer-generated diagrams. We also implemented a plugin for a Java IDE that embeds the links in Javadoc comments and visualizes them in situ in the source code editor as graphical icons. Sebastian Baltes, Peter Schmitz 0001, Stephan Diehl 0001 |
SIGSOFT FSE | 3 |
| 2014 | Get your directories right: From hierarchy visualization to hierarchy manipulationabstractVisual comparison of hierarchies such as directory structures is often considered a passive analysis task. Thus, insights gained from the visualization need to be recorded and applied afterwards. In contrast in this paper, we propose and explore an active visual analytics approach focusing on the manipulation of directory structures in the context of comparison. Two directories including subdirectories and files are presented side by side while links between the two representations connect matching files. Embedded into an elaborate interaction concept, drag-and-drop operations allow the users for interactively modifying the directories. We explored different application scenarios of the approach in a qualitative user study. Rainer Benda, Daniel Rausch 0001, Fabian Beck 0001, Stephan Diehl 0001 |
VL/HCC | 4 |
| 2014 | A directory comparison and manipulation toolabstractNowadays file browsers represent a common means to organize hierarchically structured data provided by a file system. However, when it comes to comparing and merging different directory structures, file browsers often do not explicitly support users to accomplish such a task. In this paper, we present a special-purpose approach focusing on the manipulation of directory structures in the context of comparison. To this end, two directory structures including subdirectories and files are displayed side by side while links between them indicate similar files. Drag-and-drop operations allow the users for interactively manipulating or merging both directory structures. Rainer Benda, Daniel Rausch 0001, Fabian Beck 0001, Stephan Diehl 0001 |
VL/HCC | 4 |
| 2013 | Explorable Code SlidesabstractPresenting source code to others is not only a typical task of computer science teachers, but also when practitioners as well as researchers in software engineering are faced with this task. Usually, classical presentation tools or source code editors are used for such presentations. However, while the former are too inflexible for the presenter to deviate from a preplanned scheme, the latter show too many irrelevant details to the audience. In this paper, we introduce Explorable Code Slides, which address both issues. We not only describe its concept and features but also report on our practical experience from using Explorable Code Slides in class and feedback gathered from our students. Michael Fritz, Benjamin Biegel 0001, Stephan Diehl 0001 |
CSEE&T | 3 |
| 2013 | Teaching object-orientation with smartphones as digital CRC cardsabstractObject-orientation is one of the essential parts of every software engineering course. However, according to literature, it often lacks the following: First, modeling on a conceptual level independent from a particular programming language is often neglected. Moreover, the actual process of designing or implementing a piece of software seems to be less important than providing an optimal solution. Finally, students often follow the slides of the teacher passively without thinking about or even questioning the material. But, in order to actively apply a proper form of object-orientation, it is essential that one understands the concepts of this programming paradigm and is able to deal with problems and communicate ideas rather than handling a specific programming language. In this paper we introduce CREWSpace-a tool for co-located collaboration that implements a digital version of the CRC method. To this end, students actively participate in so called CRC sessions, which fosters communication and problem solving skills. In particular, they design a software system on a conceptual level and use our tool to analyze and adjust the proposed design through role play. Moreover, CREWSpace records these analyses for a later replay such that the students are able to reflect on their decisions. Rainer Benda, Sascha Schäfer 0001, Stephan Diehl 0001 |
CSEE&T | 3 |
| 2013 | Matching Application Requirements with Dynamic Graph Visualization ProfilesabstractMapping a dynamic graph dataset to an inappropriate visualization leads to a degradation of visualization performance at some task. To tap the full potential of existing dynamic graph visualization techniques, we propose a methodology for matching application requirements with dynamic graph visualization profiles. We target at supporting experts choosing the right visualization technique. Our methodology describes both the application requirements and the visualization techniques as profiles covering important aesthetic criteria for visualizing dynamic graphs. Characteristics of the graph and task are used to derive the application profile. The probably most appropriate visualization technique is the one whose profile matches best the required application profile. We compile exemplary visualization profiles for representatives of dynamic graph visualization approaches and demonstrate the methodology in a case study. Fabian Beck 0001, Michael Burch, Stephan Diehl 0001 |
IV | 3 |
| 2013 | In situ understanding of performance bottlenecks through visually augmented codeabstractFinding and fixing performance bottlenecks requires sound knowledge of the program that is to be optimized. In this paper, we propose an approach for presenting performance-related information to software engineers by visually augmenting source code shown in an editor. Small diagrams at each method declaration and method call visualize the propagation of runtime consumption through the program as well as the interplay of threads in parallelized programs. Advantages of in situ visualization like this over traditional representations, where code and profiling information are shown in different places, promise to be the prevention of a split-attention effect caused by multiple views; information is presented where required, which supports understanding and navigation. We implemented the approach as an IDE plug-in and tested it in a user study with four developers improving the performance of their own programs. The user study provides insights into the process of understanding performance bottlenecks with our approach. Fabian Beck 0001, Oliver Moseler, Stephan Diehl 0001, Günter Daniel Rey |
ICPC | 3 |
| 2013 | Finding structures in multi-type code couplings with node-link and matrix visualizationsabstractSoftware systems are often modeled and visualized as graphs in order to understand their higher-level structure: code entities are connected by dependencies or couplings. However, when only considering one type of code coupling such as method calls, the understanding gained stays limited to this specific aspect. Encoding multiple types of code coupling in the graph promises to broaden the understanding. Different approaches already exist for visually discerning those types in graph diagrams. In this paper, we study two of these techniquesa node-link and a matrix approach-in a realistic scenario where the classes and interfaces of a system are connected by six different types of code coupling. The explorative user study that we conducted with interactive versions of the two visualizations focuses on getting an insight on how software developers use the visualizations for understanding an unknown system. We classified typical visual structures that the participants were able to identify and connected these structures to software engineering problems. Despite the fundamental difference in approach, the participants identified the same graph structures targeting similar tasks with both visualizations. Ala Abuthawabeh, Fabian Beck 0001, Dirk Zeckzer, Stephan Diehl 0001 |
VISSOFT | 4 |
| 2013 | Visual monitoring of numeric variables embedded in source codeabstractNumeric variables are one of the most frequently used data types. During the execution of a program, their values might change often. Tracing these changes can be necessary for understanding specific behavior of the program or for locating bugs. However, using a breakpoint debugger requires tedious stepping, and logging changes implies analyzing large text files. To make the monitoring of numeric variables easier, this work introduces a visualization approach that augments the source code view of an IDE by small, word-sized graphics: the visualizations accompanying the declarations of monitored variables plot read and write accesses on a timeline; detail views can be retrieved on demand. As suggested by a case study, this approach might support program comprehension and debugging. Fabian Beck 0001, Fabrice Hollerich, Stephan Diehl 0001, Daniel Weiskopf |
VISSOFT | 3 |
| 2013 | On the impact of software evolution on software clustering
Fabian Beck 0001, Stephan Diehl 0001 |
Empir. Softw. Eng. | 2 |
| 2012 | The Order of Things: How developers sort fields and methodsabstractIn source code files, fields and methods are arranged in linear order. Modern programming languages such as Java do not constrain this order-developers are free to choose any sequence. In this paper we examine the largely unexplored strategies developers apply for ordering fields and methods: First, we use visualization to explore different ordering criteria within two open source Java projects. Second, we verify our observations in a metric-based analysis on an extended set of 16 projects. Third, we present the results of a survey that reflects the opinion and applied ordering strategies of 52 developers. 87% of the participants agreed that ordering of fields and methods is meaningful or important. Our results suggest that there exists a set of criteria repeatedly used for ordering. Among these, the categories defined in the official Java Code Conventions appear to be the primary ordering criterion. However, in the individual strategies of the participants of the survey, we identified 15 ordering criteria additional to the five criteria we considered in the empirical analysis. Benjamin Biegel 0001, Fabian Beck 0001, Willi Hornig, Stephan Diehl 0001 |
ICSM | 4 |
| 2012 | Using mobile devices for collaborative requirements engineeringabstractIn requirements engineering, CRC modeling and use case analysis are established techniques and are often performed as a group work activity. In particular, role play is used to involve different stakeholders into the use case analysis. To support this kind of co-located collaboration we developed CREW-Space, which allows several users to simultaneously interact through Android-enabled mobile devices with the same model displayed on a shared screen. Furthermore, it keeps track of the current state of the role play and, in addition, each mobile device serves as a private workspace; it actually turns into a tangible digital CRC card. Rainer Benda, Sascha Schäfer 0001, Stephan Diehl 0001 |
ASE | 3 |
| 2012 | Rapid Serial Visual Presentation in dynamic graph visualizationabstractRapid Serial Visual Presentation is an effective approach for browsing and searching large amounts of data. By presenting subsequent images at high frequency, we utilize the perceptual abilities of the human visual system to rapidly process certain visual features. While this concept is successfully used in video and image browsing, we demonstrate how it can be applied to dynamic graph visualization. In this paper, we introduce a visualization technique for time-varying graphs that is scalable with respect to the number of time steps. The graph visualization is based on the Parallel Edge Splatting technique, which employs a space-efficient display of a sequence of dynamically changing graphs. To illustrate the usefulness of our approach we analyzed method call graphs recorded during the execution of the open source software system JHotDraw. Furthermore, we studied a time-varying social network representing researchers and their dynamic communication structure while attending the ACM Hypertext 2009 conference. Fabian Beck 0001, Michael Burch, Corinna Vehlow, Stephan Diehl 0001, Daniel Weiskopf |
VL/HCC | 4 |
| 2011 | How Humans Merge UML-ModelsabstractSo far, research on model merging has mostly focused on algorithmic problems. But, there are various situations when software engineers have to compare and merge different models manually or at least make important decisions. In this paper, we provide insights into the process of how users compare and merge visual models. To this end, we observed people's activities when manually merging UML class diagrams and analyzed the recorded data following the Grounded Theory approach. To illustrate the usefulness of our results we derived some guidelines for tool design. Rainer Benda, David Würfel, Stephan Diehl 0001 |
ESEM | 3 |
| 2011 | CREWW: collaborative requirements engineering with wii-remotesabstractIn this paper, we present CREWW, a tool for co-located, collaborative CRC modeling and use case analysis. In CRC sessions role play is used to involve all stakeholders when determining whether the current software model completely and consistently captures the modeled use case. In this activity it quickly becomes difficult to keep track of which class is currently active or along which path the current state was reached. CREWW was designed to alleviate these and other weaknesses of the traditional approach. Felix Bott, Stephan Diehl 0001, Rainer Benda |
ICSE | 2 |
| 2011 | Comparison of similarity metrics for refactoring detectionabstractIdentifying refactorings in software archives has been an active research topic in the last decade, mainly because it is a prerequisite for various software evolution analyses (e.g., error detection, capturing intent of change, capturing and replaying changes, and relating refactorings and software metrics). Many of these techniques rely on similarity measures to identify structurally equivalent code, however, up until now the effect of this similarity measure on the performance of the refactoring identification algorithm is largely unexplored. In this paper we replicate a well-known experiment from Weißgerber and Diehl, plugging in three different similarity measures (text-based, AST-based, token-based). We look at the overlap of the results obtained by the different metrics, and we compare the results using recall and the computation time. We conclude that the different result sets have a large overlap and that the three metrics perform with a comparable quality. Benjamin Biegel 0001, Quinten David Soetens, Willi Hornig, Stephan Diehl 0001, Serge Demeyer |
MSR | 4 |
| 2011 | On the congruence of modularity and code couplingabstractSoftware systems are modularized to make their inherent complexity manageable. While there exists a set of well-known principles that may guide software engineers to design the modules of a software system, we do not know which principles are followed in practice. In a study based on 16 open source projects, we look at different kinds of coupling concepts between source code entities, including structural dependencies, fan-out similarity, evolutionary coupling, code ownership, code clones, and semantic similarity. The congruence between these coupling concepts and the modularization of the system hints at the modularity principles used in practice. Furthermore, the results provide insights on how to support developers to modularize software systems. Fabian Beck 0001, Stephan Diehl 0001 |
SIGSOFT FSE | 2 |
| 2011 | Parallel Edge Splatting for Scalable Dynamic Graph VisualizationabstractWe present a novel dynamic graph visualization technique based on node-link diagrams. The graphs are drawn side-byside from left to right as a sequence of narrow stripes that are placed perpendicular to the horizontal time line. The hierarchically organized vertices of the graphs are arranged on vertical, parallel lines that bound the stripes; directed edges connect these vertices from left to right. To address massive overplotting of edges in huge graphs, we employ a splatting approach that transforms the edges to a pixel-based scalar field. This field represents the edge densities in a scalable way and is depicted by non-linear color mapping. The visualization method is complemented by interaction techniques that support data exploration by aggregation, filtering, brushing, and selective data zooming. Furthermore, we formalize graph patterns so that they can be interactively highlighted on demand. A case study on software releases explores the evolution of call graphs extracted from the JUnit open source software project. In a second application, we demonstrate the scalability of our approach by applying it to a bibliography dataset containing more than 1.5 million paper titles from 60 years of research history producing a vast amount of relations between title words. Michael Burch, Corinna Vehlow, Fabian Beck 0001, Stephan Diehl 0001, Daniel Weiskopf |
IEEE Trans. Vis. Comput. Graph. | 4 |
| 2010 | Visual Amortization Analysis of Recompilation StrategiesabstractDynamic recompilation tries to produce more efficient code by exploiting runtime information. Virtual machines like the Jikes RVM use recompilation heuristics to decide how to recompile the program, i.e. what parts are recompiled at what level of optimization. In this paper we present our post-mortem amortization analysis based on improved call stack sampling. Our tool presents the results of the analysis as an interactive visualizations to help both virtual machine implementors improve their recompilation strategies, as well as programmers assess whether these recompilation strategies pay off not only for their application as a whole, but also for individual methods. Stephan Zimmer, Stephan Diehl 0001 |
IV | 2 |
| 2010 | JCCD: a flexible and extensible API for implementing custom code clone detectorsabstractCode clone detection is an enabling technology for plenty of applications, each having different requirements for a code clone detector. In the tool demonstration we present JCCD, a code clone detection API, which is based on a pipeline model. By combining and parameterizing predefined API components as well as by adding new components, the pipeline model does not only facilitate to build new custom code clone detectors, but also to parallelize the detection process. Benjamin Biegel 0001, Stephan Diehl 0001 |
ASE | 2 |
| 2010 | TimeSpiderTrees: A Novel Visual Metaphor for Dynamic Compound GraphsabstractGraphs are a mathematical method to model relations between objects. The most common metaphor to visualize graphs is the node-link technique, which typically suffers from visual clutter caused by many edge crossings. Much research has been done on the development of sophisticated algorithms aimed at enhancing the layout with respect to edge crossings and a series of other aesthetic criteria. In this paper we propose a novel visual metaphor, called Time-SpiderTrees, which is based on a radial layout. In our technique, relations are visually indicated by orientation instead of connectedness to circumvent the problem of edge crossings. The strength of this novel visualization technique lies in the visual encoding of time-series relational data in a single view without animation, which helps to preserve the mental map and hence to reduce cognitive efforts. Michael Burch, Michael Fritz, Fabian Beck 0001, Stephan Diehl 0001 |
VL/HCC | 4 |
| 2010 | Uncovering Strengths and Weaknesses of Radial Visualizations---an Empirical ApproachabstractRadial visualizations play an important role in the information visualization community. But the decision to choose a radial coordinate system is rather based on intuition than on scientific foundations. The empirical approach presented in this paper aims at uncovering strengths and weaknesses of radial visualizations by comparing them to equivalent ones in Cartesian coordinate systems. We identified memorizing positions of visual elements as a generic task when working with visualizations. A first study with 674 participants provides a broad data spectrum for exploring differences between the two visualization types. A second, complementing study with fewer participants focuses on further questions raised by the first study. Our findings document that Cartesian visualizations tend to outperform their radial counterparts especially with respect to answer times. Nonetheless, radial visualization seem to be more appropriate for focusing on a particular data dimension. Stephan Diehl 0001, Fabian Beck 0001, Michael Burch |
IEEE Trans. Vis. Comput. Graph. | 1 |
| 2009 | Towards an Aesthetic Dimensions Framework for Dynamic Graph VisualisationsabstractMost research on the readability of graph visualization focuses on node-link diagrams of static graphs. But in many applications graphs are not static, but change over time, or graphs are too dense to be drawn as node-link diagrams. In this paper we look at dynamic graph visualizations: We translate the general goal of graph visualization-to convey the underlying information of a graph-into aesthetic dimensions that are applicable in practice. These aesthetic dimensions help to design, compare, and evaluate dynamic graph visualizations. Fabian Beck 0001, Michael Burch, Stephan Diehl 0001 |
IV | 3 |
| 2009 | Focused Animation of Dynamic Compound GraphsabstractMany applications feature large hierarchic dynamic graphs that change over time. Often, these changes are more important than the graphs themselves.In our approach, areas of interests in dynamic graphs are detected based on user preferences. The user is guided from one area of interest to another in such a way that reduced contextual information is shown. To this end, dynamic graph layout mechanisms are extended by a reprocessing that decides what to show and a post processing that stages the animation based on spatial information. Florian Reitz, Mathias Pohl 0001, Stephan Diehl 0001 |
IV | 3 |
| 2009 | Visualizing the Evolution of Compound Digraphs with TimeArcTreesabstractAbstract Compound digraphs are a widely used model in computer science. In many application domains these models evolve over time. Only few approaches to visualize such dynamic compound digraphs exist and mostly use animation to show the dynamics. In this paper we present a new visualization tool called TimeArcTrees that visualizes weighted, dynamic compound digraphs by drawing a sequence of node‐link diagrams in a single view. Compactness is achieved by aligning the nodes of a graph vertically. Edge crossings are reduced by drawing upward and downward edges separately as colored arcs. Horizontal alignment of the instances of the same node in different graphs facilitates comparison of the graphs in the sequence. Many interaction techniques allow to explore the given graphs. Smooth animation supports the user to better track the transitions between views and to preserve his or her mental map. We illustrate the usefulness of the tool by looking at the particular problem of how shortest paths evolve over time. To this end, we applied the system to an evolving graph representing the German Autobahn and its traffic jams. Martin Greilich, Michael Burch, Stephan Diehl 0001 |
Comput. Graph. Forum | 3 |
| 2009 | Guest editors introduction: special issue on mining software repositories
Stephan Diehl 0001, Harald C. Gall, Ahmed E. Hassan |
Empir. Softw. Eng. | 1 |
| 2008 | Timeline trees: visualizing sequences of transactions in information hierarchiesabstractIn many applications transactions between the elements of an information hierarchy occur over time. For example, the product offers of a department store can be organized into product groups and subgroups to form an information hierarchy. A market basket consisting of the products bought by a customer forms a transaction. Market baskets of one or more customers can be ordered by time into a sequence of transactions. Each item in a transaction is associated with a measure, for example, the amount paid for a product. Michael Burch, Fabian Beck 0001, Stephan Diehl 0001 |
AVI | 3 |
| 2008 | Small patches get in!abstractWhile there is a considerable amount of research on analyzing the change information stored in software repositories, only few researcher have looked at software changes contained in email archives in form of patches. In this paper we look at the email archives of two open source projects and answer questions like the following: How many emails contain patches? How long does it take for a patch to be accepted? Does the size of the patch influence its chances to be accepted or the duration until it gets accepted? Obviously, the answers to these questions can be helpful for the authors of patches, in particular because some of the answers are surprising. Peter Weißgerber, Daniel Neu, Stephan Diehl 0001 |
MSR | 3 |
| 2008 | TimeRadarTrees: Visualizing Dynamic Compound DigraphsabstractAbstract The evolution of dependencies in information hierarchies can be modeled by sequences of compound digraphs with edge weights. In this paper we present a novel approach to visualize such sequences of graphs. It uses radial tree layout to draw the hierarchy, and circle sectors to represent the temporal change of edges in the digraphs. We have developed several interaction techniques that allow the users to explore the structural and temporal data. Smooth animations help them to track the transitions between views. The usefulness of the approach is illustrated by examples from very different application domains. Michael Burch, Stephan Diehl 0001 |
Comput. Graph. Forum | 2 |
| 2006 | MSR 2006: the 3rd international workshop on mining software repositoriesabstractNo abstract available. Stephan Diehl 0001, Harald C. Gall, Martin Pinzger 0001, Ahmed E. Hassan |
ICSE | 1 |
| 2006 | Identifying Refactorings from Source-Code ChangesabstractSoftware has been and is still mostly refactored without tool support. Moreover, as we found in our case studies, programmers tend not to document these changes as refactorings, or even worse label changes as refactorings, although they are not. In this paper we present a technique to detect changes that are likely to be refactorings and rank them according to the likelihood. The evaluation shows that the method has both a high recall and a high precision - it finds most of the refactorings, and most of the found refactoring candidates are really refactorings Peter Weißgerber, Stephan Diehl 0001 |
ASE | 2 |
| 2005 | Software visualizationabstractThis half-day tutorial gives an overview of the current state-of-the-art in software visualization. Software visualization encompasses the development and evaluation of methods for graphically representing different aspects of software, including its structure, its execution, and its evolution. In contrast to visual programming and diagramming for software design, software visualization is not so much concerned with the construction, but with the analysis of programs and their development process. Software visualization combines techniques from areas like software engineering, programming languages, data mining, computer graphics, information visualization and human-computer interaction. Topics covered in this tutorial include static program visualization, algorithm animation, visual debugging, as well as the visualization of the evolution of software. In particular we identify common principles illustrated by many examples and give pointers to tools available today. Stephan Diehl 0001 |
ICSE | 1 |
| 2005 | MSR 2005 international workshop on mining software repositoriesabstractNo abstract available Ahmed E. Hassan, Richard C. Holt, Stephan Diehl 0001 |
ICSE | 3 |
| 2005 | Mining Version Histories to Guide Software ChangesabstractWe apply data mining to version histories in order to guide programmers along related changes: "Programmers who changed these functions also changed...." Given a set of existing changes, the mined association rules 1) suggest and predict likely further changes, 2) show up item coupling that is undetectable by program analysis, and 3) can prevent errors due to incomplete changes. After an initial change, our ROSE prototype can correctly predict further locations to be changed; the best predictive power is obtained for changes to existing software. In our evaluation based on the history of eight popular open source projects, ROSE's topmost three suggestions contained a correct location with a likelihood of more than 70 percent. Thomas Zimmermann 0001, Peter Weißgerber, Stephan Diehl 0001, Andreas Zeller |
IEEE Trans. Software Eng. | 3 |
| 2004 | Dynamic Graph Drawing of Sequences of Orthogonal and Hierarchical Graphs
Carsten Görg, Peter Birke 0001, Mathias Pohl 0001, Stephan Diehl 0001 |
GD | 4 |
| 2004 | Mining Version Histories to Guide Software ChangesabstractWe apply data mining to version histories in order to guide programmers along related changes: "Programmers who changed these functions also changed. . . ". Given a set of existing changes, such rules (a) suggest and predict likely further changes, (b) show up item coupling that is indetectable by program analysis, and (c) prevent errors due to incomplete changes. After an initial change, our ROSE prototype can correctly predict 26% of further files to be changed - and 15% of the precise functions or variables. The topmost three suggestions contain a correct location with a likelihood of 64%. Thomas Zimmermann 0001, Peter Weißgerber, Stephan Diehl 0001, Andreas Zeller |
ICSE | 3 |
| 2004 | Educational and technical design of a Web-based interactive tutorial on programming in Java
Claudia Bieg, Stephan Diehl 0001 |
Sci. Comput. Program. | 2 |
| 2002 | Graphs, They Are Changing
Stephan Diehl 0001, Carsten Görg |
GD | 1 |
| 2001 | Levels of explorationabstractVisualization of computational models is at the heart of educational software for computer science and related fields. In this paper we look at how generation of such visualizations and the visualization of the generation process itself increase exploration. Four approaches of increased exploration in formal language theory and compiler design are introduced and for each approach we discuss an educational system which implements it. Stephan Diehl 0001, Andreas Kerren |
SIGCSE | 1 |
| 2000 | Visual Exploration of Generation Algorithms for Finite Automata on the Web
Stephan Diehl 0001, Andreas Kerren, Torsten Weller |
CIAA | 1 |
| 2000 | Natural Semantics-Directed Generation of Compilers and Abstract MachinesabstractAbstract. In this paper we present the motivation, theory and transformations of our semantics-directed compiler generator. The main novelty of our generator is that it generates compilers and abstract machines. The execution times of the abstract machine programs produced by our generated compiler compare well to those of target programs produced by compilers generated by other semantics-directed generators. The generated specifications of compilers and abstract machines are suitable as a starting point for handwriting compilers and abstract machines. Our generator is fully automated and its core transformations are proved correct. Stephan Diehl 0001 |
Formal Aspects Comput. | 1 |
| 2000 | Educational applications of VRML
Tomaz Amon, Stephan Diehl 0001 |
Future Gener. Comput. Syst. | 2 |
| 2000 | Principles of abstract machines
Stephan Diehl 0001, Pieter H. Hartel, Peter Sestoft |
Future Gener. Comput. Syst. | 1 |
| 2000 | Abstract machines for programming language implementation
Stephan Diehl 0001, Pieter H. Hartel, Peter Sestoft |
Future Gener. Comput. Syst. | 1 |
| 2000 | Visualizing principles of abstract machines by generating interactive animations
Stephan Diehl 0001, Thomas Kunze |
Future Gener. Comput. Syst. | 1 |
| 2000 | A generative methodology for the design of abstract machines
Stephan Diehl 0001 |
Sci. Comput. Program. | 1 |
| 1998 | A Formal Introduction to the Compilation of JavaabstractThe term abstract machine is widely accepted to denote intermediate target languages and related architectures which serve as an intermediate stage in compiling programming languages. In this paper we explain how a considerable subset of Java is translated into Byte-Code for the Java Virtual Machine, an abstract machine used as a target for Java compilation. Using formal and precise notation we present the language concepts, the related byte-code instructions and the compilation schemes. Hitherto none of the existing literature on the JVM1,2 describes how compilation is done, but present the JVM in isolation. © 1998 John Wiley & Sons, Ltd. Stephan Diehl 0001 |
Softw. Pract. Exp. | 1 |
| 1997 | An Experiment in Abstract Machine DesignabstractIn this article we present Typed Feature Structures as an extension of Prolog, and show how to come up with a compilation scheme and an abstract machine using a design methodology based on partial evaluation. First we define the transformations used by our partial evaluator. Then we present the design methodology which we will use later. Next, we clarify the notion of Typed Feature Structures that underlies our work, and formally define the unification of such structures. Based on this definition, we develop a unification procedure with explicit heap representation. By partially evaluating this procedure with respect to some example programs, we show how to come up with the machine instructions and translation schemes. Finally, we briefly address coreferences, cyclic structures and the unification of types. © 1997 by John Wiley & Sons, Ltd. Stephan Diehl 0001 |
Softw. Pract. Exp. | 1 |
| 1994 | Towards a Verified OR-Parallel WAM
Stephan Diehl 0001 |
ICLP | 1 |