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
- Nels E. Beckman, Aditya V. Nori, Sriram K. Rajamani, Robert J. Simmons, Sai Deep Tetali, and Aditya V. Thakur, Proofs from Tests, in IEEE Transactions on Software Engineering (special issue on the ISSTA 2008 best papers), IEEE, February 2010
- Patrice Godefroid, Aditya V. Nori, Sriram K. Rajamani, and Sai Deep Tetali, Compositional May-Must Program Analysis: Unleashing the Power of Alternation, in Principles of Programming Languages (POPL), Association for Computing Machinery, Inc., January 2010
- Hagit Attiya, Ganesan Ramalingam, and Noam Rinetzky, Sequential Verification of Serializability, in Principles of Programming Languages (POPL), Association for Computing Machinery, Inc., January 2010
- Michal Segalov, Tal Lev-Ami, Roman Manevich, Ganesan Ramalingam, and Mooly Sagiv, Abstract Transformers for Thread Correlation Analysis, in Asian Symposium on Programming Languages and Systems (APLAS), Springer Verlag, December 2009
- David Lo, G Ramalingam, Venkatesh Prasad Ranganath, and Kapil Vaswani, Mining Quantified Temporal Rules: Formalism, Algorithms and Evaluation, in Proceedings of the Working Conference on Reverse Engineering (WCRE), October 2009
- Dawei Qu, Abhik Roychoudhury, Zengkai Lang, and Kapil Vaswani, Darwin: An Approach for Debugging Evolving Programs, in Proceedings of the Symposium on Foundations of Software Engineering (ESEC/FSE, ACM SIGSOFT Distinguished Paper), September 2009
- B. Ashok, Joseph Joy, Hongkang Liang, Sriram Rajamani, Gopal Srinivasa, and Vipindeep Vangala, DebugAdvisor: A Recommender System for Debugging, in Foundations of Software Engineering (ESEC/FSE), Association for Computing Machinery, Inc., 26 August 2009
- Bhargav Gulavani, Supratik Chakraborty, G. Ramalingam, and Aditya V. Nori, Bottom-up Shape Analysis, in SAS '09: Static Analysis Symposium, Springer Verlag, August 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
- Michael C. Tschantz and Aditya V. Nori, Measuring the Loss of Privacy from Statistics, in Workshop on Quantitative Analysis of Software, 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
- 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
- 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
- Sumit Gulwani, Krishna Mehra, and Trishul Chilimbi, SPEED: Precise and Efficient Static Estimation of Program Computational Complexity, in Principles of Programming Languages (POPL), Association for Computing Machinery, Inc., January 2009
Click here for a full publication list
Alumni
- Sai Deep Tetali (UCLA)
- Kanika Nema
- Krishna K. Mehra (Consultant)
- Aditya V. Thakur (Wisconsin)
- Lakshmisubrahmanyam Velaga (IIM Bangalore)
Visitors
- Anindya Banerjee (IMDEA, 2009)
- Supratik Chakraborty (IIT Bombay, 2007)
- Stefan Schwoon (University of Stuttgart, 2006, 2007)
- Prasad Sistla (University of Illinois, Chicago, 2006)
Interns
- 2009: Jong-Hoon An (Maryland), Ashish Kumar Agarwal (IIT Kanpur), Vijay Victor D'Silva (Oxford University), William R. Harris (Wisconsin), Nicholas P. Johnson (Princeton), Vijay Anand Korthikanti (UIUC), Prakash J. Prabhu (Princeton), Rahul Sharma (IIT Delhi), Dheeraj Singh (IIT Kharagpur), Abhishek Udupa (IISc Bangalore), Shashank Yaduvanshi (IIT Delhi)
- 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).
News
- Holmes @ Microsoft PDC '09!
- Abhishek Udupa joins RSE after completing his MSc at IISc!
- G. Ramalingam named Distinguished Member of ACM!
- Sequential Verification of Serializability and SMASH papers accepted at POPL '10
- We welcome Akash Lal to RSE
- Darwin wins the ACM SIGSOFT Distinguished paper award at FSE '09



