Haidar Osman. Against the Mainstream in Bug Prediction. In Extended Abstracts of the Ninth Seminar on Advanced Techniques and Tools for Software Evolution (SATToSE 2016), July 2016. Details.
Bug prediction is a technique used to estimate the most bug-prone entities in software systems. Bug prediction approaches vary in many design options, such as dependent variables, independent variables, and machine learning models. Choosing the right combination of design options to build an effective bug predictor is hard. Previous studies do not consider this complexity and draw conclusions based on fewer-than-necessary experiments. We argue that each software project is unique from the perspective of its development process. Consequently, metrics and AI models perform differently on different projects, in the context of bug prediction. We confirm our hypothesis empirically by running different bug pre- dictors on different systems. We show that no single bug prediction configuration works globally on all projects and, thus, previous bug prediction findings cannot generalize.
Andrei Chiş. Moldable Tools. PhD thesis, University of Bern, September 2016. Details.
Development tools are a prerequisite for crafting software. They offer the lenses through which developers perceive and reason about their software systems. Generic development tools, while having a wide range of applicability, ignore the contextual nature of software systems and do not allow developers to directly reason in terms of domain abstractions. Domain-specific development tools, tailored to particular application domains, can address this problem. While it has clear advantages, incorporating domain abstractions into development tools is a challenging activity. The wide range of domains and contextual tasks that development tools need to support leads to costly or ad hoc mechanisms to incorporate and discover domain abstractions. Inherently, this limits developers from taking advantage of domain-specific information during the development and maintenance of their systems. To overcome this problem, we propose to embed domain abstractions into development tools through the design of moldable tools that support the inexpensive creation of domain-specific extensions capturing domain abstractions, and that automatically select extensions based on the domain model and the developer’s interaction with the domain model. This solution aims to reduce the cost of creating extensions. Towards this goal, it provides precise extension points together with internal DSLs for configuring common types of extensions. This solution facilitates automatic discovery by enabling extension creators to specify together with an extension an activation predicate that captures the context in which that extension is applicable. We validate the moldable tools approach by applying it, in the context of object-oriented applications, to improve three development activities, namely: reasoning about run-time objects, searching for domain-specific artifacts, and reasoning about run-time behavior. For each activity we identify limitations of current tools, show how redesigning those tools following the moldable tools approach addresses the identified limitations, and discuss the cost for creating domain-specific extensions. We demonstrate that moldable tools address an existing need by analyzing the increase in domain-specific extensions after we integrated the moldable tools solving the aforementioned tasks with an IDE. We also show what kinds of custom environments developers can create by continuously adapting their development tools.
Andrei Chiş. Towards object-aware development tools. In Companion Proceedings of the 2016 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity, SPLASH Companion 2016 p. to appear, ACM, New York, NY, USA, 2016. Details.
Reasoning about object-oriented applications requires developers to answer contextual questions about their domain objects. Tailored development tools can support developers in this activity by providing relevant domain-specific information. Nonetheless, a high effort for extending development tools to handle domain-specific objects, together with diverging mechanisms for creating, sharing and discovering extensions, discourage developers to adapt their tools. To address this, we propose to enable contextual behavior in development tools by allowing domain objects to decide how they are handled in development tools. We show that combining this idea with mechanisms for specifying extensions using internal DSLs can significantly reduce the cost of tailoring development tools to specific domains.
Alice Allen, Cecilia Aragon, Christoph Becker, Jeffrey Carver, Andrei Chiş, Benoit Combemale, Mike Croucher, Kevin Crowston, Daniel Garijo, Ashish Gehani, Carole Goble, Robert Haines, Robert Hirschfeld, James Howison, Kathryn Huff, Caroline Jay, Daniel S. Katz, Claude Kirchner, Kateryna Kuksenok, Ralf Lämmel, Oscar Nierstrasz, Matt Turk, Rob Nieuwpoort, Matthew Vaughn, and Jurgen Vinju. I solemnly pledge: A manifesto for personal responsibility in the engineering of academic software. In Gabrielle Allen, Jeffrey Carver, Sou-Cheng T. Choi, Tom Crick, Michael R. Crusoe, Sandra Gesing, Robert Haines, Michael Heroux, Lorraine J. Hwang, Daniel S. Katz, Kyle E. Niemeyer, Manish Parashar, and Colin C. Venters (Ed.), Proceedings of Workshop on Sustainable Software for Science: Practice and Experiences (WSSSPE 2016), Proceedings of the Fourth Workshop on Sustainable Software for Science: Practice and Experiences (WSSSPE4) 1686, CEUR, 2016. Details.
Software is fundamental to academic research work, both as part of the method and as the result of research. In June 2016 25 people gathered at Schloss Dagstuhl for a week-long PerSoftware is fundamental to academic research work, both as part of the method and as the result of research. In June 2016 25 people gathered at Schloss Dagstuhl for a week-long Perspectives Workshop and began to develop a manifesto which places emphasis on the scholarly value of academic software and on personal responsibility. Twenty pledges cover the recognition of academic software, the academic software process and the intellectual content of academic software. This is still work in progress. Through this lightning talk, we aim to get feedback and hone these further, as well as to inspire the WSSSPE audience to think about actions they can take themselves rather than actions they want others to take. We aim to publish a more fully developed Dagstuhl Manifesto by December 2016.spectives Workshop and began to develop a manifesto which places emphasis on the scholarly value of academic software and on personal responsibility. Twenty pledges cover the recognition of academic software, the academic software process and the intellectual content of academic software. This is still work in progress. Through this lightning talk, we aim to get feedback and hone these further, as well as to inspire the WSSSPE audience to think about actions they can take themselves rather than actions they want others to take. We aim to publish a more fully developed Dagstuhl Manifesto by December 2016.
Theodor Truffer. A Polite Solution to Interact with EV3 Robots. Bachelor’s thesis, University of Bern, September 2016. Details.
Lego Mindstorms is a combination of hardware and software to build and program a variety of different Lego robots. The Evolution 3 (short EV3) represents the third generation of these promising robots. Besides Lego itself, plenty of other organisations, researchers and developers have designed software to interact with the EV3 robots, many of them with the target to teach Computational Thinking to amateur programmers, others to reach high functionality and open new possibilities. But although there are already a lot of existing projects, there seems to be a gap between the simple and visual learning programs, and the richer programming environments. Polite for EV3 closes this gap by combining the simple but nonetheless expressive object-oriented programming language Polite with powerful concepts like State Machines and Real Time Programming.