“Software Engineering!? What do I know of computers and software?” So said Archbishop Tutu as he welcomed 700 computer scientists to the 32nd annual International Conference on Software Engineering (ICSE), held the first week of May in Cape Town, South Africa. The venerable icon, Nobel prize winner and champion of human rights went on to add “I am not so old or disconnected from the modern world that I don’t realise that computers and software permeate every aspect of our modern lives and … that technology can be enabling and can play a crucial role in raising educational standards, in improving the quality of life and in helping commerce and industry.” It is these three aspects – education, life and industry – that the Software Engineering Innovation Foundation (SEIF) Awards were set up to address. And it was indeed fitting that they were presented at the ICSE conference where several of the 12 recipients were present.
Watch the introduction at ICSE from Archbishop Tutu
The SEIF Awards are a joint initiative between the Computer Science team of Microsoft External Research, the Research in Software Engineering Group (RiSE) and the Microsoft Visual Studio 2010 team. Microsoft aimed to partner with the worldwide academic community to advance the tools and technologies that are used in and with Visual Studio 2010. A total of 85 submissions were received and after a rigorous evaluation process, we chose 12 projects to support for a year. In May 2011, the community will get together at ICSE 2011 in Hawaii for a workshop to share the results of their work. The submitted projects came from all over the world. Of the winning projects, four were from North America, three each from Europe and South America and one each from China and India.
A strong focus of the work from RiSE is detecting, correcting and preventing bugs in code. Sunghun Kim of the Hong Kong University of Science and Technology proposes to first integrate a state-of-the-art bug prediction algorithm, called Change Classification, into Visual Studio 2010, so that developers will be quickly notified (using colored underlines) about code areas that are predicted to be buggy. Kim describes his method as seeming like a guardian angel looking over your shoulder, pointing out bugs and suggesting plausible fixes.
From left: Jane Prey (Director of Gender Diversity, MSR), Yuriy Brun and Reid Holmes (representing David Notkin), Alessandro Orso, Nachi Nagappan (MSR), Gail Murphy, Stefano Tonetta, Wolfram Schulte (Research Area Manager, RiSE Group), Karin Breitman, Guido de Caso (with Uchitel), Sebastien Uchitel
Closer to home, at the University of Washington, David Notkin and his students plan to explore the role speculation can play in software development. Their interest in speculation has been piqued both by the potential availability of using “cycles for quality” (e.g., from multi-core) and also by the need for breakthroughs in how environments augment the abilities of developers. Their goal is to warn a developer, as early as possible, that changes in code will conﬂict with the work of another developer on their team. By limiting or avoiding these conﬂicts, they hope to decrease the amount of time spent ﬁxing “broken” builds, enabling developers to focus more directly on their tasks rather than source-control management (SCM) problems. Implementing the approach will involve combining a simpliﬁed abstract model of SCM systems to derive a common interface that can manage the kinds of conﬂicts they would like to detect, and building speciﬁc SCM connectors (e.g., for Microsoft’s Team Foundation Server, or CodePlex’s Mercurial source control repository) that can interact with the variety of SCM systems used by real projects. Notkin and his students aim to build a user interface specifically for Visual Studio 2010, that can be used to alert developers when their actions conﬂict with other development trees.
In the education space, Pankaj Jalote at IIIT-D in Delhi is of the opinion that an introductory course in software engineering in a computer science program remains one of the hardest subjects to teach. While focusing on concepts and techniques is essential, there is often not sufficient time for the tools to be given the appropriate amount of attention. Real software engineering is now very tool intensive and a large set of tools is needed to cover the different aspects of the software development lifecycle – including requirements modeling, requirements documentation, project planning, design, coding related, code management and those related to testing. Generally a host of different tools might be used in a project, coming from a variety of sources. This project will develop a prototype course done almost fully within Visual Studio 2010, with its existing rich tool set, while also integrating other tools such as spreadsheets. Jalote maintains that using Visual Studio 2010 can have a major impact on the teaching: besides mastering the concepts and techniques, students will also learn through the use of a proper environment and tools how software is really developed, and will gain skills that are highly desired by the industry.
These are just some of the projects for 2010/11. For a full list of projects, as well as announcements for SEIF II stay tuned to our website and blog.
Judith Bishop, director, Computer Science, Microsoft External Research