Research in Software Engineering (RiSE)
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:
|
Browser/JavaScript |
||
|
New Ways to Program |
||
|
Modeling and Design |
||
|
Contracts and Types |
||
|
Verification |
||
|
Symbolic Methods |
Automata, BEK, Duality, Rex, SymDiff, Z3 | |
|
Testing |
||
|
Runtime Reliability |
||
|
Performance |
||
|
Concurrency & Parallelism |
||
|
Measurement and Prediction |
||
|
User Studies |
Games | |
|
Critical Technologies |
Research Overviews
- Looking Back on the Language and Hardware Revolutions: Measured Power, Performance, and Scaling, H. Esmaeilzadeh, T. Cao, X. Yang, S. M. Blackburn, and K. S. McKinley, ASPLOS 2011
- Empirical Software Engineering at Microsoft Research, C. Bird, B. Murphy, N. Nagappan, and T. Zimmermann, CSCW 2011
- SAGE: Whitebox Fuzzing for Security Testing, P. Godefroid, M. Y. Levin, D. Molnar, ACM Queue 2012
- Satisfiability Modulo Theories: Introduction and Applications, Leonardo De Moura, Nikolaj Bjørner, CACM 2011
- Specification and Verification: The Spec# Experience, M. Barnett, M. Fähndrich, K. R. M. Leino, P. Müller, W. Schulte, H. Venter, CACM 2011
- A Decade of Software Model Checking with SLAM, T. Ball, V. Levin, S. K. Rajamani, CACM 2011
- Microsoft's Protocol Documentation Program: Interoperability Testing at Scale, A discussion with N. Kicillof, W. Grieskamp, and B. Binder (work based on SpecExplorer). CACM 2011
- Predictable and Progressive Testing of Multithreaded Code, T. Ball, S. Burckhardt, P. de Halleux, M. Musuvathi, S. Qadeer, IEEE Software 2011
Publications
2012
- Emad Shihab, Christian Bird, and Thomas Zimmermann, The Effect of Branching Strategies on Software Quality, in Proceedings of the ACM/IEEE International Symposium on Empirical Software Engineering and Measurement, ACM, September 2012
- Shuvendu Lahiri, Chris Hawblitzel, Ming Kawaguchi, and Henrique Rebelo, SymDiff: A language-agnostic semantic diff tool for imperative programs, in Computer Aided Verification (CAV '12) (Tool description), Springer, July 2012
- Sebastian Burckhardt, Manuel Fahndrich, Daan Leijen, and Benjamin P. Wood, Cloud Types for Eventual Consistency, in Proceedings of the 26th European Conference on Object-Oriented Programming (ECOOP), Springer, 15 June 2012
- Manuel Fahndrich, Michael Barnett, Daan Leijen, and Francesco Logozzo, Integrating a Set of Contract Checking Tools into Visual Studio, in Proceedings of the 2012 Second International Workshop on Developing Tools as Plug-ins (TOPI 2012), IEEE, 3 June 2012
- Ting Coa, Tiejin Gao, Stephen M. Blackburn, and Kathryn S. McKinely, The Yin and Yang of Power and Performance for Asymmetric Hardware and Managed Software, in ACM/IEEE International Symposium on Computer Architecture, June 2012
- Christian Bird and Nachiappan Nagappan, Who? Where? What? Examining Distributed Development in Two Large Open Source Projects, in Proceedings of the International Working Conference on Mining Software Repositories, IEEE, June 2012
- Thomas Zimmermann, Nachiappan Nagappan, Philip J. Guo, and Brendan Murphy, Characterizing and Predicting Which Bugs Get Reopened, in Proceedings of the 34th International Conference on Software Engineering (ICSE 2012 SEIP Track), IEEE, June 2012
- Clemens Kolbitsch, livshits, and zorn, Rozzle: De-Cloaking Internet Malware, in Proceedings of the Oakland Symposium on Security and Privacy, IEEE, 20 May 2012
- Drew Davidson and Benjamin Livshits, MoRePriv: Mobile OS Support for Application Personalization and Privacy, no. MSR-TR-2012-50, 3 May 2012
- Sebastian Burckhardt, Manuel Fahndrich, Daan Leijen, and Mooly Sagiv, Eventually Consistent Transactions, in Proceedings of the 22n European Symposium on Programming (ESOP), Springer, 24 March 2012
- Nikhil Swamy, Joel Weinberger, Juan Chen, Ben Livshits, and Cole Schlesinger, Monadic Refinement Types for Verifying JavaScript Programs , no. MSR-TR-2012-37, 20 March 2012
- Margus Veanes and Nikolaj Bjorner, Symbolic Automata: The Toolkit, in TACAS'12, Springer Verlag, March 2012
- K. Rustan M. Leino and Aleksandar Milicevic, Program Extrapolation with Jennisys, no. MSR-TR-2012-12, February 2012
- Thomas Zimmermann and Christian Bird, Collaborative Software Development in Ten Years: Diversity, Tools, and Remix Culture, in Proceedings of the CSCW Workshop on the Future of Collaborative Software Development (FutureCSD 2012), ACM, February 2012
- Miryung Kim, Thomas Zimmermann, and Nachiappan Nagappan, Appendix to A Field Study of Refactoring Rationale, Benefits, and Challenges at Microsoft, no. MSR-TR-2012-4, 11 January 2012
- Christoph M. Wintersteiger, Youssef Hamadi, and Leonardo de Moura, Efficiently Solving Quantified Bit-Vector Formulas, in Formal Methods in System Design, Springer, 2012
- Akash Lal, Shaz Qadeer, and Shuvendu Lahiri, Corral: A Solver for Reachability Modulo Theories, no. MSR-TR-2012-9, January 2012
- Pierre-Yves Strub, Nikhil Swamy, Cedric Fournet, and Juan Chen, Self-Certification: Bootstrapping Certified Typecheckers in F* with Coq, in In Proceedings of the ACM Symposium on Principles on Programming Languages, ACM, January 2012
- Saurabh Joshi, Shuvendu Lahiri, and Akash Lal, Underspecified Harnesses and Interleaved Bugs, in Principles of Programming Languages (POPL) 2012, ACM SIGPLAN, January 2012
- Francesco Logozzo, Our Experience with the CodeContracts Static Checker, in Proceedings of the Verified Software: Theories, Tools, and Experiments, Springer, January 2012
- Margus Veanes, Pieter Hooimeijer, Benjamin Livshits, David Molnar, and Nikolaj Bjorner, Symbolic Finite State Transducers: Algorithms and Applications, in POPL’12, ACM SIGPLAN, January 2012
2011
- Ashish Gupta, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan, Thirumalesh Bhat, and Syed Emran, Detecting Energy Patterns in Software Development, no. MSR-TR-2011-106, 16 November 2011
- Margus Veanes, David Molnar, Benjamin Livshits, and Lubomir Litchev, Generating Fast String Manipulating Code Through Transducer Exploration and SIMD Integration, no. MSR-TR-2011-124, November 2011
- Margus Veanes and Nikolaj Bjorner, Alternating simulation and IOCO, in International Journal on Software Tools for Technology Transfer (STTT) , Springer, November 2011
- Tim Menzies, Andrew Butcher, Andrian Marcus, and Thomas Zimmermann, Local vs Global Models for Effort Estimation and Defect Prediction, in Proceedings of the 26st IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), IEEE, November 2011
Links

Try a Coding Duel at www.pexforfun.com
Try our tools!
RiSE @ Channel9
- 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
- ICSE 2011: Grigore Rosu - The Art and Science of Program Verification




