Our goal is to study software engineering issues in developing large scale software systems. We work on tools, languages and methodologies to dramatically increase the productivity of software development. We are interested in both analysis tools for existing software, as well as in asking questions about how software of the future should be designed.
Current focus
Our current focus is on three areas.
- PASTA = Program Analysis + Statistics
We are working on a variety of techniques that combine information from programs together with a large amount of data about development process, as well data from users to help handle the information overload associated with large projects (See projects: Tark, Holmes, Merlin and DebugAdvisor) - Constructive Concurrency
We are working on new techniques that help programmers write correct concurrent programs by construction (See projects: Isolator, WYPIWYG, Clarity projects) - Combining Static Analysis and Testing
We are working on combining static analysis with testing to find bugs in programs and also guarantee certain properties about programs. The combination of static analysis and testing techniques enables us to scale the techniques to larger programs, and solve new problems (See projects: Yogi, InvCop, Darwin)
Past projects
In the past, we have worked on the following projects:
- Preferential Path Profiling (PPP) is a joint project with the RAD group at MSR. PPP is a novel scheme for efficiently profiling paths in programs
- Netra is a static analysis tool to analyze access control configuration information. It can be used to identify potential vulnerabilities at the level of configuration metadata
- Michael C. Tschantz and Aditya V. Nori, Measuring the Loss of Privacy from Statistics, in Workshop on Quantitative Analysis of Software, June 2009
- Benjamin Livshits, Aditya V. Nori, Sriram K. Rajamani, and Anindya Banerjee, Merlin: Specification Inference for Explicit Information Flow Problems , in ACM SIGPLAN 2009 Conference on Programming Language Design and Implementation (PLDI), Association for Computing Machinery, Inc., June 2009
- Trishul Chilimbi, Ben Liblit, Krishna Mehra, Aditya V. Nori, and Kapil Vaswani, Holmes: Effective Statistical Debugging via Efficient Path Profiling, in Proceedings of the International Conference on Software Engineering (ICSE), May 2009
- Sriram Rajamani, G Ramalingam, Venkatesh Prasad Ranganath, and Kapil Vaswani, Isolator: Dynamically Ensuring Isolation in Concurrent Programs, in Proceedings of the Symposium on Architectural Support for Programming Languages and Operating Systems (ASPLOS), March 2009
- Aditya V. Nori, Sriram K. Rajamani, Sai Deep Tetali, and Aditya V. Thakur, The Yogi Project: Software Property Checking via Static Analysis and Testing, in TACAS '09: Tools and Algorithms for the Construction and Analysis of Systems, Springer Verlag, March 2009
- Manuel Fahndrich, Sriram K. Rajamani, and Jakob Rehof, Static Deadlock Prevention in Dynamically Configured Communication Networks, in Perspectives On Concurrency, Festchrift for Prof. P. S. Thiagarajan's 60th birthday, K. Lodaya, M. Mukund and R. Ramanujam (eds), Universities Press, December 2008
- Patrice Godefroid, Peli de Halleux, Michael Y. Levin, Aditya V. Nori, Sriram K. Rajamani, Wolfram Schulte, and Nikolai Tillmann, Automated Software Testing Using Program Analysis, in IEEE Software: Special Issue on Software Development Tools, IEEE Computer Society, October 2008
- Shilpa Bugde, Nachi Nagappan, G. Ramalingam, and Sriram Rajamani, Global Software Servicing: Observational Experiences at Microsoft , in International Conference on Global Software Engineering (IGCSE), October 2008
- Madhu Gopinathan and Sriram Rajamani, Enforcing Object Protocols by Combining Static and Dynamic Analysis, in ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages and Applications (OOPSLA), Association for Computing Machinery, Inc., October 2008
- Avik Chaudhuri, Prasad Naldurg, G. Ramalingam, Sriram Rajamani, and L. Velaga, EON: Modeling and Analyzing Access Control Systems with Logic Programs, in ACM Conference on Computer and Communications Security (CCS), Association for Computing Machinery, Inc., October 2008
- Nels E. Beckman, Aditya V. Nori, Sriram K. Rajamani, and Robert J. Simmons, Proofs from Tests, in Proceedings of the International Symposium on Software Testing and Analysis (ISSTA), Association for Computing Machinery, Inc., July 2008
- Roman Manevich, T. Lev-Ami, Mooly Sagiv, Ganesan Ramalingam, and Josh Berdine, Heap Decomposition for Concurrent Shape Analysis, in Static Analysis Symposium (SAS), Springer Verlag, July 2008
- Josh Berdine, T. Lev-Ami, Roman Manevich, Ganesan Ramalingam, and Mooly Sagiv, Thread Quantification for Concurrent Shape Analysis, in Computer Aided Verification (CAV), July 2008
- Avik Chaudhuri, Prasad Naldurg, and Sriram Rajamani, A Type System for Data-Flow Integrity on Windows Vista, in ACM Workshop on Programming Languages and Analysis for Security (PLAS), Association for Computing Machinery, Inc., June 2008
- Madhu Gopinathan and Sriram Rajamani, Runtime Verification of Object Invariants with Guarantee, in 8th workshop on Runtime Verification (RV), March 2008
- Bhargav S. Gulavani, Supratik Chakraborty, Aditya V. Nori, and Sriram K. Rajamani, Automatically Refining Abstract Interpretations, in Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), March 2008
- Roman Manevich, Tal Lev-Ami, Mooly Sagiv, Ganesan Ramalingam, and Josh Berdine, Heap Decomposition for Concurrent Shape Analysis, in Static Analysis, 15th International Symposium, SAS 2008, Valencia, Spain, July 16-18, 2008. Proceedings, Springer, 2008
Click here for a full publication list
Alumni
- Kanika Nema
- Krishna K. Mehra (Consultant)
- Aditya V. Thakur (Wisconsin)
- Lakshmisubrahmanyam Velaga (IIM Bangalore)
Visitors
- Supratik Chakraborty (IIT Bombay, 2007)
- Stefan Schwoon (University of Stuttgart, 2006, 2007)
- Prasad Sistla (University of Illinois, Chicago, 2006)
Interns
- 2009: Vijay Victor D'Silva (Oxford University)
- 2008: Jyotirmoy Deshmukh (UT Austin), Bhargav S. Gulavani (IIT Bombay) and Michael Tschantz (CMU)
- 2007: Nels E. Beckman (CMU), Shilpa Bugde (SCIT, Pune), Pavol Cerny (UPenn), Pallavi Joshi (UC Berkeley), Akash Lal (U Wisconsin), Robert J. Simmons (CMU), Christian Stefansen (DIKU) and Pushkar Tripathi (IIT Delhi
- 2006: Avik Chaudhuri (UC Santacruz), Prakash Chandrasekaran (CMI), Chris Conway (NYU), Madhu Gopinathan (IISc Bangalore), Bhargav S. Gulavani (IIT Bombay), Sumit Jha (CMU), Roman Manevich (Tel Aviv), and Kapil Vaswani (IISc Bangalore)
- 2005: Bhargav S. Gulavani (IIT Bombay) and Aditya Parameswaran (IIT Bombay)
Careers
Microsoft Research India offers an unparalleled opportunity to conduct innovative and cutting-edge research and to see your research results improve the software used by most of the world. Microsoft Research’s agenda combines world-class research together with our academic colleagues and a unique opportunity to put ideas into practice by working with Microsoft product groups. Researchers at Microsoft Research have an unequalled opportunity to conduct fundamental research with few resource constraints, publish in leading academic conferences, and at the same time, influence and improve software development in the world’s largest software company and its customers.
We are still interviewing for researchers in the Rigorous Software Engineering group. You can apply here. If you know us from prior interactions, please send email to sriram@microsoft.com. We get a lot of email from people who do not really have a research background, so please be considerate of our time when you send email.
We welcome applicants from all over the world, regardless of nationality. India, and in particular Bangalore, is booming with fresh energy and opportunities! If you have ever considered living in India, or returning to live in India, now is the time to apply!
We are also looking for interns throughout the year. We are fairly flexible about when we can start and end internships. For internships, please apply here (Select the "Rigorous Software Engineering" group).



