Juraj Kubelka, Alexandre Bergel, Andrei Chiş, Tudor Gîrba, Stefan Reichhart, Romain Robbes, and Aliaksei Syrel. On Understanding How Developers Use the Spotter Search Tool. In Proceedings of 3rd IEEE Working Conference on Software Visualization - New Ideas and Emerging Results, VISSOFT-NIER’15 p. 145—149, IEEE, 2015. Details.
Analyzing how software engineers use the Integrated Development Environment (IDE) is essential to better understanding how engineers carry out their daily tasks. Spotter is a code search engine for the Pharo programming language. Since its inception, Spotter has been rapidly and broadly adopted within the Pharo community. However, little is known about how practitioners employ Spotter to search and navigate within the Pharo code base. This paper evaluates how software engineers use Spotter in practice. To achieve this, we remotely gather user actions called events. These events are then visually rendered using an adequate navigation tool chain. Sequences of events are represented using a visual alphabet. We found a number of usage patterns and identified underused Spotter features. Such findings are essential for improving Spotter.
Andrei Chiş, Tudor Gîrba, Oscar Nierstrasz, and Aliaksei Syrel. The Moldable Inspector. In Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Onward! 2015 p. to appear, ACM, New York, NY, USA, 2015. Details.
Object inspectors are an essential category of tools that allow developers to comprehend the run-time of object-oriented systems. Traditional object inspectors favor a generic view that focuses on the low-level details of the state of single objects. Based on 16 interviews with software developers and a follow-up survey with 62 respondents we identified a need for object inspectors that support different high-level ways to visualize and explore objects, depending on both the object and the current developer need. We propose the Moldable Inspector, a novel inspector model that enables developers to adapt the inspection workflow to suit their immediate needs by making the inspection context explicit, providing multiple interchangeable domain-specific views for each object, and supporting a workflow that groups together multiple levels of connected objects. We show that the Moldable Inspector can address multiple kinds of development needs involving a wide range of objects.
Aliaksei Syrel, Andrei Chiş, Tudor Gîrba, Juraj Kubelka, Oscar Nierstrasz, and Stefan Reichhart. Spotter: towards a unified search interface in IDEs. In Proceedings of the Companion Publication of the 2015 ACM SIGPLAN Conference on Systems, Programming, and Applications: Software for Humanity, SPLASH ’15 p. to appear, ACM, New York, NY, USA, 2015. Details.
Program comprehension requires developers to reason about many kinds of highly interconnected software entities. Dealing with this reality prompts developers to continuously intertwine searching and navigation. Nevertheless, most integrated development environments (IDEs) address searching by means of many disconnected search tools, making it difficult for developers to reuse search results produced by one search tool as input for another search tool. This forces developers to spend considerable time manually linking disconnected search results. To address this issue we propose Spotter, a model for expressing and combining search tools in a unified way. The current implementation shows that Spotter can unify a wide range of search tools. More information about Spotter can be found at scg.unibe.ch/research/moldablespotter
Tudor Gîrba and Andrei Chiş. Pervasive Software Visualizations. In Proceedings of 3rd IEEE Working Conference on Software Visualization, VISSOFT’15 p. to appear, IEEE, 2015. Details.
Cedric Reichenbach. DoodleDebug, Clustered — Morphing DoodleDebug into a clustered setup using fat clients. Masters thesis, University of Bern, August 2015. Details.
Knowing the run-time state of objects is essential for analyzing and resolving errors in a program. Inserting print statements into code for troubleshooting is considered bad practice and the resulting output is completely static. While debuggers give dynamic insight to particular run-time states, they suffer from certain shortcomings. Furthermore, attaching debuggers to live production systems is often not possible, and errors need to be locally reproduced in order to debug them. DoodleDebug has previously been shown to provide advantages over debuggers and print statements by combining the best of both worlds. This work documents how it has been morphed from an Eclipse plugin to an independent framework, to be utilized both, in development and production systems. In particular, its built-in support for HBase and decentralized data management makes it a reasonable logging solution for clustered applications with performance requirements.