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.
Andrei Chis, Oscar Nierstrasz, and Tudor Gîrba. The Moldable Inspector: a framework for domain-specific object inspection. In Proceedings of International Workshop on Smalltalk Technologies (IWST 2014), , 2014. Details.
Answering run-time questions in object-oriented systems involves reasoning about and exploring connections between multiple objects. Developer questions exercise various aspects of an object and require multiple kinds of interactions depending on the relationships between objects, the application domain and the differing developer needs. Nevertheless, traditional object inspectors, the essential tools often used to reason about objects, favor a generic view that focuses on the low-level details of the state of individual objects. This leads to an inefficient effort, increasing the time spent in the inspector. To improve the inspection process, we propose the Moldable Inspector, a novel approach for an extensible object inspector. The Moldable Inspector allows developers to look at objects using multiple interchangeable presentations and supports a workflow in which multiple levels of connecting objects can be seen together. Both these aspects can be tailored to the domain of the objects and the question at hand. We further exemplify how the proposed solution improves the inspection process, introduce a prototype implementation and discuss new directions for extending the Moldable Inspector.
Jan Kurs, Mircea Lungu, and Oscar Nierstrasz. Top-Down Parsing with Parsing Contexts. In Proceedings of International Workshop on Smalltalk Technologies (IWST 2014), , 2014. Details.
The domain of context-free languages has been extensively explored and there exist numerous techniques for parsing (all or a subset of) context-free languages. Unfortunately, some programming languages are not context-free. Using standard context-free parsing techniques to parse a context-sensitive programming language poses a considerable challenge. Im- plementors of programming language parsers have adopted various techniques, such as hand-written parsers, special lex- ers, or post-processing of an ambiguous parser output to deal with that challenge. In this paper we suggest a simple extension of a top-down parser with contextual information. Contrary to the tradi- tional approach that uses only the input stream as an input to a parsing function, we use a parsing context that provides ac- cess to a stream and possibly to other context-sensitive infor- mation. At a same time we keep the context-free formalism so a grammar definition stays simple without mind-blowing context-sensitive rules. We show that our approach can be used for various purposes such as indent-sensitive parsing, a high-precision island parsing or XML (with arbitrary el- ement names) parsing. We demonstrate our solution with PetitParser, a parsing-expression grammar based, top-down, parser combinator framework written in Smalltalk.
Nicole Haenni, Mircea Lungu, Niko Schwarz, and Oscar Nierstrasz. A Quantitative Analysis of Developer Information Needs in Software Ecosystems. In Proceedings of the 2nd Workshop on Ecosystem Architectures (WEA’14), p. 1—6, 2014. Details.
We present the results of an investigation into the nature of information needs of software developers who work in projects that are part of larger ecosystems. This work is based on a quantitative survey of 75 professional software developers. We corroborate the results identified in the sur- vey with needs and motivations proposed in a previous sur- vey and discover that tool support for developers working in an ecosystem context is even more meager than we thought: mailing lists and internet search are the most popular tools developers use to satisfy their ecosystem-related information needs.