Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Our research
Content type
+
Downloads (454)
+
Events (444)
 
Groups (151)
+
News (2726)
 
People (744)
 
Projects (1102)
+
Publications (12528)
+
Videos (5665)
Labs
Research areas
Algorithms and theory47205 (335)
Communication and collaboration47188 (214)
Computational linguistics47189 (234)
Computational sciences47190 (220)
Computer systems and networking47191 (757)
Computer vision208594 (906)
Data mining and data management208595 (105)
Economics and computation47192 (104)
Education47193 (82)
Gaming47194 (76)
Graphics and multimedia47195 (233)
Hardware and devices47196 (215)
Health and well-being47197 (91)
Human-computer interaction47198 (887)
Machine learning and intelligence47200 (881)
Mobile computing208596 (54)
Quantum computing208597 (32)
Search, information retrieval, and knowledge management47199 (674)
Security and privacy47202 (309)
Social media208598 (42)
Social sciences47203 (261)
Software development, programming principles, tools, and languages47204 (620)
Speech recognition, synthesis, and dialog systems208599 (129)
Technology for emerging markets208600 (32)
1–25 of 620
Sort
Show 25 | 50 | 100
1234567Next 
Abram Hindle, Christian Bird, Thomas Zimmermann, and Nachiappan Nagappan

Large organizations like Microsoft tend to rely on formal requirements documentation in order to specify and design the software products that they develop. These documents are meant to be tightly coupled with the actual implementation of the features they describe. In this paper we evaluate the value of high-level topic-based requirements traceability and issue report traceability in the version control system, using Latent Dirichlet Allocation (LDA). We evaluate LDA topics on practitioners...

Publication details
Date: 1 December 2015
Type: Article
Publisher: Springer
Yoli Shavit, Boyan Yordanov, Sara-Jane Dunn, Christoph M. Wintersteiger, Youssef Hamadi, and Hillel Kugler
Publication details
Date: 1 September 2015
Type: Inproceeding
Publisher: Springer
Publication details
Date: 1 September 2015
Type: Inproceeding
Publisher: Springer
He Zhu, Aditya V. Nori, and Suresh Jagannathan

We propose the integration of a random test generation system(capable of discovering program bugs) and a refinement type system (capable of expressing and verifying program invariants), for higher-order functional programs, using a novel lightweight learning algorithm as an effective intermediary between the two. Our approach is based on the well-understood intuition that useful, but difficult to infer, program properties can often be observed from concrete program states generated by tests; these...

Publication details
Date: 1 August 2015
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Ravi Mangal, Xin Zhang, Aditya V. Nori, and Mayur Naik

Program analysis tools often produce undesirable output due to various approximations.
We present an approach and a system \system\ that allows user feedback
to guide such approximations towards producing the desired output.
We formulate the problem of user-guided program analysis in terms of solving a
combination of hard rules and soft rules: hard rules capture soundness while soft rules
capture degrees of approximations and preferences of users.
Our technique solves the...

Publication details
Date: 1 August 2015
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Klaus v. Gleissenthall, Boris Kopf, and Andrey Rybalchenko

Proving quantitative properties of programs, such as bounds on resource usage or information leakage, often leads to verification conditions that involve cardinalities of sets. Existing approaches for dealing with such verification conditions operate by checking cardinality bounds for given formulas. However, they cannot synthesize formulas that satisfy given cardinality constraints, which limits their applicability for inferring cardinality-based inductive arguments. In this paper we present an...

Publication details
Date: 1 July 2015
Type: Inproceeding
Publisher: Springer
Ankush Das, Shuvendu K. Lahiri, Akash Lal, and Yi Li

Verification of open programs can be challenging in the presence of an unconstrained environment. Verifying properties that depend on the environment yields a large class of uninteresting false alarms. Using a verifier on a program thus requires extensive initial investment in modeling the environment of the program. We propose a technique called angelic verification for verification of open programs, where we constrain a verifier to report warnings only when no acceptable environment...

Publication details
Date: 1 July 2015
Type: Inproceeding
Publisher: Springer
Rui DING, Hucheng ZHOU, Jian-Guang LOU, Hongyu ZHANG, Qingwei LIN, Qiang FU, Dongmei ZHANG, and Tao XIE

Logging has been a common practice for monitoring and diagnosing performance issues. However, logging comes at a cost, especially for large-scale online service systems. First, the overhead incurred by intensive logging is non-negligible. Second, it is costly to diagnose a performance
issue if there is a tremendous amount of redundant logs. Therefore, we believe that it is important to limit the overhead incurred by logging, without sacrificing the logging effectiveness. In this paper we propose...

Publication details
Date: 1 July 2015
Type: Proceedings
Publisher: USENIX Annual Technical Conference
Edward K. Smith, Christian Bird, and Thomas Zimmermann

This technical report is a companion to the paper "Beliefs, Practices and Personalities of Software Engineers: A Survey in a Large Software Company". The technical report includes (1) the complete survey text and (2) the complete aggregated survey results.


Publication details
Date: 5 June 2015
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2015-44
Pantazis Deligiannis, Alastair Donaldson, Jeroen Ketema, Akash Lal, and Paul Thomson

Programming efficient asynchronous systems is challenging because it can often be hard to express the design declaratively, or to defend against interleaving-dependent bugs such as data races and other assertion violations. Previous work has only addressed these challenges individually, either by designing a new declarative language, or a new data race detection tool, or a new testing technique. We present P#, a language for high-reliability asynchronous programming co-designed with a static analysis...

Publication details
Date: 1 June 2015
Type: Inproceeding
Publisher: ACM
Akash Lal and Shaz Qadeer

A hierarchical program is one with multiple procedures but no loops or recursion. This paper studies the problem of deciding reachability queries in hierarchical programs. This problem is fundamental to verification and most directly applicable to doing bounded reachability in programs, i.e., reachability under a bound on the number of loop iterations and recursive calls.

The usual method of deciding reachability in hierarchical programs is to first
inline all procedures and then do...

Publication details
Date: 1 June 2015
Type: Inproceeding
Publisher: ACM
Aditya V. Nori, Sherjil Ozair, Sriram K. Rajamani, and Deepak Vijaykeerthy

We show how to automatically synthesize probabilistic programs from real-world datasets. Such a synthesis is feasible due to a combination of two techniques: (1) We borrow the idea of “sketching” from synthesis of deterministic programs, and allow the programmer to write a skeleton program with “holes”. Sketches enable the programmer to communicate domain-specific intuition about the structure of the desired program and prune the search space, and (2) we design an efficient Markov Chain Monte Carlo...

Publication details
Date: 1 June 2015
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Ofri Ziv, Alex Aiken, Guy Golan-Gueta, G. Ramalingam, and Mooly Sagiv
Publication details
Date: 1 June 2015
Type: Inproceeding
Xi Yang, Stephen M. Blackburn, and Kathryn S. McKinley

Developers and architects spend a lot of time trying to understand and eliminate performance problems. Unfortunately, the root causes of many problems occur at a fine granularity that existing continuous profiling and direct measurement approaches cannot observe. This paper presents the design and implementation of SHIM, a continuous profiler that samples at resolutions as fine as 15 cycles; three to five orders of magnitude finer than current continuous profilers. SHIM’s...

Publication details
Date: 1 June 2015
Type: Inproceeding
Publisher: ACM/IEEE International Symposium on Computer Architecture (ISCA)
Jacek Czerwonka, Michaela Greiler, and Jack Tilford

Because of its many uses and benefits, code reviews are a standard part of the modern software engineering workflow. Since they require involvement of people, code reviewing is often the longest part of the code integration activities. Using experience gained at Microsoft and with support of data, we posit (1) that code reviews often do not find functionality issues that should block a code submission; (2) that effective code reviews should be performed by people with specific set of skills; and (3)...

Publication details
Date: 17 May 2015
Type: Inproceeding
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Yi Wei, Nirupama Chandrasekaran, Sumit Gulwani, and Youssef Hamadi

Software developers heavily rely on code snippets and API usage examples searched on the Internet. This paper presents Bing Code Search, a Visual Studio extension that allows developers to write, within an IDE, free-form natural language questions, and get C# code snippets answering those questions. Bing Code Search automatically adapts the suggested snippets into the user’s programming context via variable renaming, and records users’ interactions to improve its suggestions. Compared to prior related...

Publication details
Date: 11 May 2015
Type: Technical report
Number: MSR-TR-2015-36
Thomas Ball, Sebastian Burckhardt, Jonathan de Halleux, Michał Moskal, Jonathan Protzenko, and Nikolai Tillmann

Software engineering tools and environments are migrating to the cloud, enabling more people to participate in programming from many more devices. To study this phenomenon in detail, we designed, implemented and deployed TouchDevelop (www.touchdevelop.com), a cloud-based integrated development environment (CIDE), which has been online for the past three years.

TouchDevelop combines a cross-platform browser-based IDE for the creation of mobile+cloud apps, an online programmer/user community, and...

Publication details
Date: 1 May 2015
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Amiangshu Bosu, Michaela Greiler, and Christian Bird

Over the past decade, both open source and commercial software projects have adopted contemporary peer code review practices as a quality control mechanism. Prior research has shown that developers spend a large amount of time and effort performing code reviews. Therefore, identifying factors that lead to useful code reviews can benefit projects by increasing code review effectiveness and quality. In a three-stage mixed research study, we qualitatively investigated what aspects of code reviews make them...

Publication details
Date: 1 May 2015
Type: Inproceeding
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Kim Herzig and Nachiappan Nagappan

Applying code changes to software systems and testing these code changes can be a complex task that involves many different types of software testing strategies, e.g. system and integration tests. However, not all test failures reported during code integration are hinting towards code defects. Testing large systems such as the Microsoft Windows operating system requires complex test infrastructures, which may lead to test failures caused by faulty tests and test infrastructure issues. Such false test...

Publication details
Date: 1 May 2015
Type: Inproceeding
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Kim Herzig, Michaela Greiler, Jacek Czerwonka, and Brendan Murphy

Testing is a key element of software development processes for the management and assessment of product quality. In most development environments, the software engineers are responsible for ensuring the functional correctness of code. However, for large complex software products, there is an additional need to check that changes do not negatively impact other parts of the software and they comply with system constraints such as backward compatibility, performance, security etc. Ensuring these system...

Publication details
Date: 1 May 2015
Type: Inproceeding
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Christopher Theisen, Kim Herzig, Patrick Morrison, Brendan Murphy, and Laurie Williams

Security testing and reviewing efforts are a necessity for software projects, but are time-consuming and expensive to apply. Identifying vulnerable code supports decision-making during all phases of software development. An approach for identifying vulnerable code is to identify its attack surface, the sum of all paths for untrusted data into and out of a system. Identifying the code that lies on the attack surface requires expertise and significant manual effort. This paper proposes an...

Publication details
Date: 1 May 2015
Type: Inproceeding
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Hucheng Zhou, Jian-Guang Lou, Hongyu Zhang, Haibo Lin, Haoxiang Lin, and Tingting Qin

Big Data computing platform has evolved to be a multi-tenant service. The service quality matters because system failure or performance slowdown could adversely affect business and user experience. There is few study in literature on service quality issues of production Big Data computing platform. In this paper, we present an empirical study on the service quality issues of Microsoft ProductA, which is a company-wide multi-tenant Big Data computing platform, serving thousands of customers from hundreds...

Publication details
Date: 1 May 2015
Type: Inproceeding
Publisher: ICSE SEIP
Edward K. Smith, Christian Bird, and Thomas Zimmermann

Developers sometimes take the initiative to build tools to solve problems they face. What motivates developers to build these tools? What is the value for a company? Are the tools built useful for anyone besides their creator? We conducted a qualitative study of tool building, adoption, and impact within Microsoft. This paper presents our findings on the extrinsic and intrinsic factors linked to toolbuilding, the value of building tools, and the factors associated with tool spread. We find that the...

Publication details
Date: 1 May 2015
Type: Inproceeding
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Michael Barnett, Christian Bird, Joao Brunet, and Shuvendu Lahiri

Code Reviews, an important and popular mechanism for quality assurance, are often performed on a changeset, a set of modified files that are meant to be committed to a source repository as an atomic action. Understanding a code review is more difficult when the changeset consists of multiple, independent, code differences. We introduce CLUSTERCHANGES, an automatic technique for decomposing changesets and evaluate its effectiveness through both a quantitative analysis and a qualitative...

Publication details
Date: 1 May 2015
Type: Inproceeding
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Na Meng, Lisa Hua, Miryung Kim, and Kathryn S. McKinley

When developers add features and fix bugs, they often make systematic edits—similar edits to multiple locations. Systematic edits may indicate that developers should instead refactor to eliminate redundancy. This paper explores this question by designing and implementing a fully automated refactoring tool called RASE, which performs clone removal. RASE (1) extracts common code guided by a systematic edit; (2) creates new types and methods as needed; (3) parameterizes differences in...

Publication details
Date: 1 May 2015
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
1–25 of 620
Sort
Show 25 | 50 | 100
1234567Next 
> Our research