coordinates Microsoft's Research in Software Engineering in Redmond, USA. Our mission is to advance the state of the art in Software Engineering and to bring those advances to Microsoft’s businesses.
We are organized in five working groups spanning Compilers and Runtimes, Empirical Software Engineering, Formal Methods, Program Analysis, and Programming Languages, working on a variety of themes/projects:
Modeling and Design
|Advanced Graph Layout, DKAL, Formula|
|Automatic test generation, Moles, Pex|
|RobustHeap, ToleRace, Yarra|
|Automata, BEK, Duality, Rex, SymDiff, Z3|
Concurrency & Parallelism
Measurement and Prediction
In the News
- NY Times's Fostering Tech Talent in Schools features the work of Peli de Halleux, teaching TouchDevelop in Seattle high schools as part of the TEALS program.
- CNN Money "Excel 2013’s coolest new feature that should have been available years ago" describes Flash Fill, the result of Sumit Gulwani's work on program synthesis for end-users.
- The Zing model checker, from Shaz Qadeer and Sriram Rajamani, used for verifying USB 3.0 protocols in Windows 8.
- Most Influential PLDI Paper Award (2012): Extended Static Checking for Java, Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, Raymie Stata
- Most Influential OOPSLA Paper Award (2012): Reconsidering Custom Memory Allocation, Emery Berger, Benjamin G. Zorn, and Kathryn S. McKinley
- FSE Distinguished Paper Award (2012): Assessing the Value of Branches with What-if Analysis, Christian Bird and Thomas Zimmermann
- ICSE Software Engineering in Practice Best Paper Award (2012): Characterizing and Predicting Which Bugs Get Reopened, Thomas Zimmermann, Nachiappan Nagappan, Philip J. Guo, Brendan Murphy
- Synthesis from Examples: Interaction Models and Algorithms, SYNASC 2012, Sumit Gulwani
- Spreadsheet Data Manipulation using Examples, CACM 2012, Sumit Gulwani, William Harris, Rishabh Singh
- TouchDevelop - Programming Cloud-Connected Mobile Devices via Touchscreen, Nikolai Tillmann, Michal Moskal, Jonathan de Halleux, and Manuel Fahndrich
Play with RiSE tools at www.rise4fun.com Sources Dafny: a verification-oriented programming language CCI: Common compiler infrastructure
Downloads Z3: an automated theorem prover
Pex: parameterized unit testing Boogie language/tool for program verification tools
Automata: symbolic automata F*: verification of functional programs Code contracts CHESS: systematic concurrency testing
Advanced graph layout VCC: verification of concurrent C programs
Play with RiSE tools at www.rise4fun.com
Dafny: a verification-oriented programming language
CCI: Common compiler infrastructure
The RiSE team consists of 30+ passionate researchers and developers.
- Abram Hindle, Christian Bird, Thomas Zimmermann, and Nachiappan Nagappan, Do Topics Make Sense to Managers and Developers?, in Empirical Software Engineering, Springer, December 2015.
- Akash Lal and Shaz Qadeer, Deciding Reachability in Hierarchical Programs Using DAG Inlining, in Programming Language Design and Implementation (PLDI), ACM, June 2015.
- Kim Herzig, Michaela Greiler, Jacek Czerwonka, and Brendan Murphy, The Art of Testing Less without Sacrificing Quality, in Proceedings of the 2015 International Conference on Software Engineering, IEEE – Institute of Electrical and Electronics Engineers, May 2015.
- Jonathan Mace, Peter Bodik, Rodrigo Fonseca, and Madanlal Musuvathi, Retro: Targeted Resource Management in Multi-tenant Distributed Systems, in NSDI, May 2015.
- Michael Barnett, Christian Bird, Joao Brunet, and Shuvendu Lahiri, Helping developers help themselves: Automatic decomposition of code review changesets., in Proceedings of the 37th International Conference on Software Engineering, IEEE – Institute of Electrical and Electronics Engineers, May 2015.
- Christopher Theisen, Kim Herzig, Patrick Morrison, Brendan Murphy, and Laurie Williams, Approximating Attack Surfaces with Stack Traces, in Companion Proceedings of the 37th International Conference on Software Engineering, IEEE – Institute of Electrical and Electronics Engineers, May 2015.
- Kim Herzig and Nachiappan Nagappan, Empirically Detecting False Test Alarms Using Association Rules, in Companion Proceedings of the 37th International Conference on Software Engineering, IEEE – Institute of Electrical and Electronics Engineers, May 2015.
- Patrick Morrison, Kim Herzig, Brendan Murphy, and Laurie Williams, Challenges with Applying Vulnerability Prediction Models, in Proceedings of the 2015 Symposium and Bootcamp on the Science of Security, ACM – Association for Computing Machinery, April 2015.
- Arvind Haran, Montgomery Carter, Michael Emmi, Akash Lal, Shaz Qadeer, and Zvonimir Rakamaric, SMACK+Corral: A Modular Verifier (Competition Contribution), in Tools and Algorithms for the Construction and Analysis of Systems (TACAS), Springer, March 2015.
- Margus Veanes and Nikolaj Bjørner, Symbolic Tree Automata, in Information Processing Letters, vol. 115, no. 3, pp. 418-424, Elsevier, March 2015.
- Sebastian Burckhardt, Daan Leijen, Jonathan Protzenko, and Manuel Fähndrich, Global Sequence Protocol: A Robust Abstraction for Replicated Shared State, no. MSR-TR-2015-11, 1 January 2015.
- Robert A Cochran, Loris D’Antoni, Benjamin Livshits, David Molnar, and Margus Veanes, Program Boosting: Program Synthesis via Crowd-Sourcing, in POPL 2015: 42nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM – Association for Computing Machinery, January 2015.
- Margus Veanes, Todd Mytkowicz, David Molnar, and Benjamin Livshits, Data-Parallel String-Manipulating Programs, in POPL 2015: 42nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, ACM – Association for Computing Machinery, January 2015.
- Emerson Murphy-Hill, Thomas Zimmermann, Christian Bird, and Nachiappan Nagappan, The Design Space of Bug Fixes and How Developers Navigate It, in IEEE Transactions on Software Engineering, vol. 41, no. 1, pp. 65-81, IEEE – Institute of Electrical and Electronics Engineers, January 2015.
- Baishakhi Ray, Meiyappan Nagappan, Christian Bird, Nachiappan Nagappan, and Thomas Zimmermann, The Uniqueness of Changes: Characteristics and Applications, no. MSR-TR-2014-149, 25 November 2014.
- Benjamin Livshits and George Kastrinis, Optimizing Human Computation to Save Time and Money, no. MSR-TR-2014-145, 14 November 2014.
- Lucas Silva Figueiredo, Benjamin Livshits, David Molnar, and Margus Veanes, PrePose: Security and Privacy for Gesture-Based Programming, no. MSR-TR-2014-146, 14 November 2014.
- Kim Herzig, Using Pre-Release Test Failures to Build Early Post-Release Defect Prediction Models, in Proceedings of the 25th International Symposium on Software Reliability Engineering, IEEE – Institute of Electrical and Electronics Engineers, November 2014.
- André N. Meyer, Thomas Fritz, Gail C. Murphy, and Thomas Zimmermann, Software Developers’ Perceptions of Productivity, in FSE '14: Proceedings of the 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering, ACM – Association for Computing Machinery, November 2014.
- Sebastian Burckhardt, Principles of Eventual Consistency, vol. 1, no. 1-2, pp. 1-150, now publishers, 9 October 2014.
- Gifford Cheung, Thomas Zimmermann, and Nachiappan Nagappan, The First Hour Experience: How the Initial Play can Engage (or Lose) New Players, in CHI PLAY '14: Proceedings of the First ACM SIGCHI Annual Symposium on Computer-Human Interaction in Play, ACM – Association for Computing Machinery, October 2014.
- Thomas Ball, Sebastian Burckhardt, Jonathan de Halleux, Michał Moskal, and Nikolai Tillmann, Beyond Open Source: The TouchDevelop Cloud-based Integrated Development Environment, no. MSR-TR-2014-127, 18 September 2014.
- David Lo, Nachiappan Nagappan, and Thomas Zimmermann, Appendix to The Health of Software Engineering Research, no. MSR-TR-2014-119, 5 September 2014.
- Kim Herzig and Nachiappan Nagappan, The Impact of Test Ownership and Team Structure on the Reliability and Effectiveness of Quality Test Runs, in Proceedings of the 8th International Symposium on Empirical Software Engineering and Measurement, ACM, September 2014.
- Ashish Gupta, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan, Thirumalesh Bhat, and Syed Emran, Mining Energy Traces to Aid in Software Development: An Empirical Case Study, in ESEM '14: Proceedings of the 8th International Symposium on Empirical Software Engineering and Measurements, ACM – Association for Computing Machinery, September 2014.
Try a Coding Duel at www.pexforfun.com
- Microsoft Researchers on 2013 ICFP Competition
- Peter Heldens - Creating Scripts with TouchDevelop
- TouchDevelop - Getting Started
- Guido de Caso - Distributed Knowledge Authorization Language
- ICSE 2011: Conversation with Baris Aktemur
- ICSE 2011: Danny Dig - Retrofitting Parallelism into a Sequential World
- ICSE 2011: Dieter Rombach - Software Engineering Process Methodology