Many researchers from the Research in Software Engineering team (RiSE) will be attending the 31st International Conference on Software Engineering in Vancouver (ICSE'09). Here is what RiSE is presenting this year:
- Does Distributed Development Affect Software Quality? An Empirical Case Study of Windows Vista (ICSE: Research paper). Christian Bird, Nachiappan Nagappan, Premkumar Devanbu, Harald Gall, Brendan Murphy Winner of ACM SIGSOFT Distinguished Papers Award. By studying the development of Windows Vista we evaluate whether distributed software development is more challenging than collocated development.
- Do Crosscutting Concerns Cause Defects? (ICSE: TSE/TOSEM Session), Marc Eaddy, Thomas Zimmermann, Kaitlin D. Sherwood, Vibhav Garg, Gail C. Murphy, Nachiappan Nagappan, Alfred V. Aho. TSE/TOSEM Session. We asked the question, “How much does the amount that a concern is crosscutting affect the number of defects in a program?” and conducted three extensive case studies to help answer this question. All three studies revealed a moderate to strong statistically significant correlation between the degree of scattering and the number of defects.
- Predicting Defects in SAP Java Code: An Experience Report (ICSE: Software Engineering in Practice papers), Thomas Zimmermann, Tilman Holschuh, Markus Päuser, Kim Herzig, Rahul Premraj, Andreas Zeller. In a study on a large SAP Java system, we evaluated and compared a number of defect predictors, based on code features such as complexity metrics, static error detectors, change frequency, or component imports.
- HOLMES: Effective Statistical Debugging via Efficient Path Profiling (ICSE: Research papers), Trishul Chilimbi, Ben Liblit, Krishna Mehra, Aditya Nori, Kapil Vaswani. We describe a statistical debugging tool called HOLMES that efficiently isolates bugs by finding paths that correlate with failure.
- The Secret Life of Bugs: Going Past the Errors and Omissions in Software Repositories (ICSE: Research Paper), Jorge Aranda, Gina Venolia. Every bug has a story behind it. This paper uses rich bug histories and survey results to identify common bug fixing coordination patterns and to provide implications for tool designers and researchers of coordination in software development
- Guided Path Exploration for Regression Test Generation (ICSE: NIER Track).Kunal Taneja, Tao Xie, Nikolai Tillmann, Jonathan de Halleux, and Wolfram Schulte. Given two versions of the same software, the approach described in this paper can automatically generate a test suite that exercises only those program behaviors which are different. A prototype has been implemented as an extension to Pex.
- Improving Bug Tracking Systems (ICSE: NIER Track), Thomas Zimmermann, Rahul Premraj, Jonathan Sillito, Silvia Breu. We present a prototype of an interactive bug tracking system that gathers relevant information from users and automatically identifies files that need to be fixed to resolve a bug.
- Codebook: Social Networking over Code (ICSE: NIER Track). Andrew Begel and Robert DeLine. Codebook is a social networking service that connects software developers through the work artifacts that they share -- code, bugs, tests, specifications, etc -- to enable them to keep track of task dependencies, maintain connections to other teams, and understand the history and rationale behind the code they use.
- Exploiting the Synergy between Automated-Test-Generation and Programming-by-Contract (ICSE: Demos). M. Barnett, M. Fahndrich, P. de Halleux, F. Logozzo, N. Tillman. Pex, a unit-test generator, and Code Contracts, a design-by-contract system, provide even more benefits when used together for developing high-quality robust programs.
- VCC: Contract-based Modular Verification of Concurrent C (ICSE: Demos). Markus Dahlweid, Michal Moskal, Thomas Santen, Stephan Tobies, and Wolfram Schulte. Annotated C and the Verified C Compiler (VCC) form the first modular sound verification methodology for concurrent C that scales to real-world production code. VCC is currently used to verify the core of Microsoft Hyper-V, consisting of 50,000 lines of system-level C code.
Deconstructing Concurrency Heisenbugs (ICSE Demo). Thomas Ball, Sebastian Burckhardt, Madan Musuvathi, Shaz Qadeer. CHESS is a tool for finding and reproducing "Heisenbugs", which result from unexpected interference among threads. CHESS has been integrated into the test frameworks of many code bases inside Microsoft and is used by testers on a daily basis.
- An Empirical Study of Testing File-System-Dependent Software With Mock Objects (AST Workshop)
Madhuri Marri, Tao Xie, Nikolai Tillmann, Jonathan de Halleux and Wolfram Schulte. A case study on how to use parameterized mock objects in unit testing in combination with the test input generation tool Pex.
- A Brief History of Software - from Bell Labs to Microsoft Research (MSR workshop, keynote)
Tom will report on the power of combining statistical expertise with software engineering expertise to address pressing problems of software production in a statistically valid manner. He will trace the history from early work at AT&T to present work at Microsoft.
Making CHASE Mainstream (CHASE Workshop keynote), Rob DeLine. Rob will discuss why “people issues” have not gotten enough attention among software engineering researchers and suggests ways to make research in this area more mainstream.
Coordination in Large-Scale Software Teams (CHASE Workshop). Andrew Begel, Nachiappan Nagappan, Christopher Poile, and Lucas Layman. A survey of Microsoft engineers shows that coordination between large-scale software teams is very challenging, but can be eased with better communication and tools tailored towards each engineer’s role in the collaboration.
- The Design of a Task Parallel Library (Working Group Software Engineering for parallel Systems, keynote), Wolfram Schulte. Wolfram discusses the design and implementation of the TPL, which makes it easy to exploit potential parallelism in a .NET program.
- Parameterized Unit Testing
(Tutorial): Principles, Techniques, and Applications in Practice.
Nikolai Tillmann, Jonathan de Halleux, Tao Xie, and Wolfram Schulte. A hands-on introduction to parameterized unit testing: how it relates to unit testing, how to leverage automated tools, what good test patterns are, and how it can be used in practice.
Cheers, Wolfram Schulte.