Andrea Caracciolo, Andrei Chis, Boris Spasojevic, and Mircea Lungu. Pangea: A Workbench for Statically Analyzing Multi-Language Software Corpora. In Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference on, IEEE, September 2014. Details.
Software corpora facilitate reproducibility of analyses, however, static analysis for an entire corpus still requires considerable effort, often duplicated unnecessarily by multiple users. Moreover, most corpora are designed for single languages increasing the effort for cross-language analysis. To address these aspects we propose Pangea, an infrastructure allowing fast development of static analyses on multi-language corpora. Pangea uses language-independent meta-models stored as object model snapshots that can be directly loaded into memory and queried without any parsing overhead. To reduce the effort of performing static analyses, Pangea provides out-of-the box support for: creating and refining analyses in a dedicated environment, deploying an analysis on an entire corpus, using a runner that supports parallel execution, and exporting results in various formats. In this tool demonstration we introduce Pangea and provide several usage scenarios that illustrate how it reduces the cost of analysis.
Dennis Schenk. Quicksilver — A Framework for Hierarchical Data Analysis. Masters thesis, University of Bern, September 2014. Details.
Software analysis is an advanced field of study in computer science. It deals with large and complex datasets and has found the abstractions, concepts and techniques to deal with the challenges such data sets present. We see the fields of reverse engineering, architecture recovery and related visualization techniques as an ideal starting point to enable exploration of a wider range of data sets, not just the ones pertaining to software. We motivate and derive a model for a generic kind of data: data that contains entities that are ordered in a hierarchical way and connected through arbitrary relationships. Based on this model we propose a framework which enables exploration and analysis of data that has the mentioned characteristics naturally or to which such characteristics can be introduced. We present a proof-of- concept implementation of such a framework called Quicksilver and validate our approach by presenting two case studies made possible by using the tool.
Andrei Chiş, Tudor Gîrba, and Oscar Nierstrasz. The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers. In Benoit Combemale, DavidJ. Pearce, Olivier Barais, and JurgenJ. Vinju (Ed.), Software Language Engineering, Lecture Notes in Computer Science 8706 p. 102-121, Springer International Publishing, 2014. Details.
Debuggers are crucial tools for developing object-oriented software systems as they give developers direct access to the running systems. Nevertheless, traditional debuggers rely on generic mechanisms to explore and exhibit the execution stack and system state, while developers reason about and formulate domain-specific questions using concepts and abstractions from their application domains. This creates an abstraction gap between the debugging needs and the debugging support leading to an inefficient and error-prone debugging effort. To reduce this gap, we propose a framework for developing domain-specific debuggers called the Moldable Debugger. The Moldable Debugger is adapted to a domain by creating and combining domain-specific debugging operations with domain-specific debugging views, and adapts itself to a domain by selecting, at run time, appropriate debugging operations and views. We motivate the need for domain-specific debugging, identify a set of key requirements and show how our approach improves debugging by adapting the debugger to several domains.
Nicole Haenni. Information Needs in Software Ecosystems Development — A Contribution to Improve Tool Support Across Software Systems. Masters thesis, University of Bern, September 2014. Details.
Today’s open-source software repositories support a world-wide networked collabo- ration and inter-dependence among independent developers. Due to the co-existance and co-evolution of projects that depend and rely on each other, these software ecosystems have led to an increased importance in large-scale software engineering. At present little is known about the interworking of developers and the needs they have to acquire for projects they are not familiar with. To explore this, we conducted an investigation into the nature of the information needs of software developers working on projects that are part of larger ecosystems. In an open-question survey we asked framework and library developers about their information needs with respect to both their upstream (i.e., providing code to a code base) and downstream (i.e., using code) projects. Our research focuses on the type of information needed, why is it necessary, and how developers obtain this information. Our findings show a high discrepancy between developers depending on whether they are working in an upstream or downstream context. The downstream needs are grouped into three categories roughly corresponding to the different stages in their relation with an upstream: selection, adoption, and co-evolution. The less numerous upstream needs are grouped into two categories: project statistics and code usage. Based on a concluding closed-question survey we strengthen our findings in respect to their relevance. Current practices are that developers use non-specific tools and ad hoc methods for information gathering. The contribution of our work is an empirical investigation with an analytical comparison of the practices and state-of-the art in program comprehension research. Our research provides a starting point to understand information needs in distributed software development. Our findings reveal that current tools lag far behind the needs of developers. A key contribution of this thesis is the identification of requirements for an ecosystem-aware tool support.