We were very impressed with the number of quality submissions to the 2nd ABB Software Research Grant. The competition was very strong, with a large number of applications. We thank all applicants for their excellent proposals. In the end, we were only able to select five (details below). Information about the 2013 application round will be available in the next couple of weeks and we hope that everyone will submit such excellent proposals again.
We are pleased to announce that the winning proposals are:
Capturing and Visualizing Developers' Context Models
Thomas Fritz, Universität Zürich (CH)
To complete a change task software developers spend more than a third of their time navigating code, implicitly building a context model - a model of the elements and relations relevant to the task. Since these context models stay implicit, developers forget relevant details and repeatedly revisit the same code elements and relations. The project we propose aims to automatically capture and visualize a developer's context model, reducing his cognitive burden,
eliminating many revisits, and ultimately making him significantly more productive.
Integrating Historical Knowledge on Code Patterns into IDE to support Code Completion, Defect Prevention, and Fixing Recommendation
Tien N Nguyen, Iowa State University (US)
This proposal is for basic scientific and applied research to advance the fundamental knowledge that will be used to build an automated recommendation tool to support developers in programming
and bug prevention/detection tasks during development. Our approach is to mine programming code patterns and buggy code patterns from source code repositories, and then to leverage such knowledge to integrate mined code patterns and historical information into the current code context in an integrated development environment (IDE) in order to support automatic code completion, bug prevention, and fixing recommendation. Novel contributions and the objectives of this project include (1) graph-based representations for good and buggy code patterns; (2) graph-based pattern mining algorithms that work for good and buggy code patterns and scalable to ultra-large code bases; (3) a pattern-based code completion tool based on the code context and mined patterns, (4) a defect prevention method/tool based on past buggy code patterns, and (5) a fixing recommendation tool based on prior-known fixes. The toolset will be integrated into an IDE.
Auto-Blogging Software Development Experiences
Chris Parnin, Georgia Institute of Technology (US)
For millennia, narratives have allowed humans to retell stories and share knowledge with others. Unfortunately, during software development, most stories and lessons experienced by an individual are never recorded or retold. Recently, developers have contributed their knowledge extensively to personal blogs, open-source wikis, and Q&A sites such as Stack Overflow. Yet, when applied in corporate settings, these initiatives for tacit knowledge capture continue to fail. In this proposal, we describe infrastructure for automatically collecting, selecting, and publishing contributions from developer’s work and tools for searching, detecting, recommending knowledge for development tasks. We explore novel incentives for developers choosing to curate contributions.
Development of a Software Tool for Automatically Checking User Interfaces Against Usability-Related Standards and Guidelines (DeSTIny)
Gerrit Meixner, Universität Heilbronn (DE)
The development of user interfaces (UI) for interactive systems is a time-consuming and costly task. Today many different usability-related standards and guidelines do exist which should support developers by manually checking UIs against these standards and guidelines. Unfortunately, developers are rarely usability experts and therefore are often unable to interpret and apply these standards and guidelines. Furthermore, there are no software tools which could improve this situation by offering automatic UI checks against these standards and guidelines. The aim of this project is the prototypical development of a software tool or plugin which incorporates formalized usability-knowledge and in turn which allows the automatic checking of a developed UI against usability-related standards and guidelines.
Tool support for documenting architecture decisions
Paris Avgeriou, University of Groningen (NL)
Documenting architecture decisions has significant benefits for system design and evolution, but is rarely practiced in industry. To facilitate this documentation, we have developed a theoretical foundation comprised of five architectural viewpoints that capture all relevant concerns for documenting architecture decisions. Based on this theoretical foundation, we propose to imple-ment tooling that allows to create decision views, as an extension to Sparx Systems' Enterprise Architect. The resulting tooling will allow to document decisions in a user-friendly and efficient way, and seamlessly trace them to other architectural design elements, like components.