Our research
Content type
+
Downloads (442)
+
Events (398)
 
Groups (150)
+
News (2594)
 
People (803)
 
Projects (1066)
+
Publications (12016)
+
Videos (5256)
Labs
Research areas
Algorithms and theory47205 (268)
Communication and collaboration47188 (187)
Computational linguistics47189 (186)
Computational sciences47190 (197)
Computer systems and networking47191 (680)
Computer vision208594 (55)
Data mining and data management208595 (67)
Economics and computation47192 (95)
Education47193 (79)
Gaming47194 (69)
Graphics and multimedia47195 (199)
Hardware and devices47196 (196)
Health and well-being47197 (78)
Human-computer interaction47198 (779)
Machine learning and intelligence47200 (727)
Mobile computing208596 (34)
Quantum computing208597 (19)
Search, information retrieval, and knowledge management47199 (619)
Security and privacy47202 (269)
Social media208598 (21)
Social sciences47203 (240)
Software development, programming principles, tools, and languages47204 (556)
Speech recognition, synthesis, and dialog systems208599 (73)
Technology for emerging markets208600 (25)
1–25 of 556
Sort
Show 25 | 50 | 100
1234567Next 
Emerson Murphy-Hill, Thomas Zimmermann, Christian Bird, and Nachiappan Nagappan

When software engineers fix bugs, they may have several options as to how to fix those bugs. Which fix they choose has many implications, both for practitioners and researchers: What is the risk of introducing other bugs during the fix? Is the bug fix in the same code that caused the bug? Is the change fixing the cause or just covering a symptom? In this paper, we investigate alternative fixes to bugs and present an empirical study of how engineers make design choices about how to fix bugs. We start...

Publication details
Date: 1 December 2015
Type: Article
Publisher: IEEE – Institute of Electrical and Electronics Engineers
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
Menghui Lim, Jian-Guang LOU, Hongyu Zhang, Qiang FU, Andrew Teoh, Qingwei LIN, Rui Ding, and Dongmei Zhang

For a large-scale software system, especially an online service system, when a performance issue occurs, it is desirable to check whether this issue has occurred before. If there are past similar issues, a known remedy could be applied. Otherwise, a new troubleshooting process may have to be initiated. The symptom of a performance issue can be characterized by a set of metrics. Due to the sophisticated nature of software systems, manual diagnosis of performance issues based on metric data is typically...

Publication details
Date: 14 December 2014
Type: Inproceeding
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Tom Crick, Benjamin A. Hall, Samin Ishtiaq, and Kenji Takeda

The reproduction and replication of reported scientific results is a hot topic within the academic community. The retraction of numerous studies from a wide range of disciplines, from climate science to bioscience, has drawn the focus of many commentators, but there exists a wider socio-cultural problem that pervades the scientific community. Sharing data and models often requires extra effort, and this is currently seen as a significant overhead that may not be worth the time investment....

Publication details
Date: 1 December 2014
Type: Inproceeding
Benjamin Livshits and Todd Mytkowicz

Crowd-sourcing is increasingly being used for largescale polling and surveys. Companies such as SurveyMonkey and Instant.ly make crowd-sourced surveys commonplace by making the crowd accessible through an easy-to-use UI with easy to retrieve results. Further, they do so with a relatively low latency by having dedicated crowds at their disposal. In this paper we argue that the ease with which polls can be created conceals an inherent difficulty: the survey maker does not know how many workers to hire for...

Publication details
Date: 2 November 2014
Type: Inproceeding
Publisher: AAAI - Association for the Advancement of Artificial Intelligence
Akash Lal and Shaz Qadeer

he application of software-verification technology towards building realistic bug-finding tools requires working through several precision-scalability tradeoffs. For instance, a critical aspect while dealing with C programs is to formally define the treatment of pointers and the heap (usually termed as the “memory model”). A machine-level modeling is often intractable, whereas one that leverages high-level information (such as types) can be inaccurate. Another tradeoff is modeling integer arithmetic....

Publication details
Date: 1 November 2014
Type: Inproceeding
Chengnian SUN, Haidong Zhang, Jian-Guang LOU, Hongyu ZHANG, Qiang WANG, Siau-Cheng Khoo, and Dongmei ZHANG

In a bug tracking system (e.g. Bugzilla), the lifetime of a bug report usually consists of a sequence of revisions to itself, referred to as bug report evolution in this paper. Each revision contains changes to one or more fields in the bug report. Such evolution information is an essential indicator of software process maturity evaluation in an organization. Understanding bug report evolution is also useful for research on mining bug repositories. However, current bug tracking systems provide limited...

Publication details
Date: 1 November 2014
Type: Proceedings
Tom Crick, Benjamin A. Hall, and Samin Ishtiaq

The reproduction and replication of novel scientific results has
become a major issue for a number of disciplines. In computer science
and related disciplines such as systems biology, the issues closely
revolve around the ability to implement novel algorithms and
approaches. Taking an approach from the literature and applying it in
a new codebase frequently requires local knowledge missing from the
published manuscripts and project websites. Alongside this...

Publication details
Date: 1 November 2014
Type: Inproceeding
Publisher: WSSSPE
André N. Meyer, Thomas Fritz, Gail C. Murphy, and Thomas Zimmermann

The better the software development community becomes at creating software, the more software the world seems to demand. Although there is a large body of research about measuring and investigating productivity from an organizational point of view, there is a paucity of research about how software developers, those at the front-line of software construction, think about, assess and try to improve their productivity. To investigate software developers' perceptions of software development productivity, we...

Publication details
Date: 1 November 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Kim Herzig

Software quality is one of the most pressing concerns for nearly all software developing companies. At the same time, software companies also seek to shorten their release cycles to meet market demands while maintaining their product quality. Identifying problematic code areas becomes more and more important. Defect prediction models became popular in recent years and many different code and process metrics have been studied. There has been minimal effort relating test executions during development with...

Publication details
Date: 1 November 2014
Type: Inproceeding
Publisher: IEEE – Institute of Electrical and Electronics Engineers
Miltiadis Allamanis, Earl T. Barr, Christian Bird, and Charles Sutton

Every programmer has a characteristic style, ranging from preferences about identifier naming to preferences about object relationships and design patterns. Coding conventions define a consistent syntactic style, fostering readability and hence maintainability.

collaborating, programmers strive to obey a project’s coding conventions. However, one third of reviews of changes contain feedback about coding conventions, indicating that programmers do not always follow them and that project members...

Publication details
Date: 1 November 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Position Paper

Event-driven programming avoids wasting user and CPU time, but is difficult to perform since program control flow is necessarily inverted and twisted. To make reactive programming easier, many advocate burying control flow within abstractions that are composed via data flow instead. This might be a mistake: data-flow has issues with expressiveness and usability that might not pan out. Instead, control flow could be re-invented to hide the adverse affects of CPU time while preserving expressiveness and...

Publication details
Date: 21 October 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Chris Hawblitzel, Jon Howell, Jacob R. Lorch, Arjun Narayan, Bryan Parno, Danfeng Zhang, and Brian Zill

An Ironclad App lets a user securely transmit her data to a remote machine with the guarantee that every instruction executed on that machine adheres to a formal abstract specification of the app’s behavior. This does more than eliminate implementation vulnerabilities such as buffer overflows, parsing errors, or data leaks; it tells the user exactly how the app will behave at all times. We provide these guarantees via complete, low-level software verification. We then use cryptography and secure...

Publication details
Date: 6 October 2014
Type: Inproceeding
Publisher: USENIX – Advanced Computing Systems Association
Milos Gligoric, Wolfram Schulte, Chandra Prasad, Danny van Velzen, Iman Narasamdya, and Benjamin Livshits

The efficiency of a build system is an important factor for developer productivity. As a result, developer teams have been increasingly adopting new build systems that allow higher build parallelization. However, migrating the existing legacy build scripts to new build systems is a tedious and error-prone process. Unfortunately, there is insufficient support for automated migration of build scripts, making the migration more problematic.

We propose the first dynamic approach for...

Publication details
Date: 1 October 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Sean McDirmid and Jonathan Edwards

Most languages expose the computer’s ability to globally read and write memory at any time. Programmers must then choreograph control flow so all reads and writes occur in correct relative orders, which can be difficult particularly when dealing with initialization, reactivity, and concurrency. Just as many languages now manage memory to unburden us from properly freeing memory, they should also manage time to automatically order memory accesses for us in the interests of...

Publication details
Date: 1 October 2014
Type: Inproceeding
Publisher: ACM
Akash Lal and Shaz Qadeer

A goal-directed search attempts to reveal only relevant information needed to establish reachability (or unreachability) of the goal from the initial state of the program. The further apart the goal is from the initial state, the harder it can get to establish what is relevant. This paper addresses this concern in the context of programs with assertions that may be nested deeply inside its call graph—thus, far away interprocedurally from main. We present a source-to-source transformation on...

Publication details
Date: 1 October 2014
Type: Inproceeding
Publisher: Formal Methods in Computer-Aided Design (FMCAD)
Rifat Shahriyar, Stephen M. Blackburn, and Kathryn S. McKinley

Garbage collectors are {xact or conservative. An exact collector identifies all references precisely and may move referents and update references, whereas a conservative collector treats one or more of stack, register, and heap references as ambiguous. Ambiguous references constrain collectors in two ways. (1) Since they may be pointers, the collectors must retain referents. (2) Since they may be values, the collectors cannot modify them, pinning their referents.

We explore conservative...

Publication details
Date: 1 October 2014
Type: Article
Andrew D. Gordon, Claudio Russo, Marcin Szymczak, Johannes Borgstrom, Nicolas Rolland, Thore Graepel, and Daniel Tarlow

We describe the design, semantics, and implementation of a probabilistic programming language where programs are spreadsheet queries. Given an input database consisting of tables held in a spreadsheet, a query constructs a probabilistic model conditioned by the spreadsheet data, and returns an output database determined by inference. This work extends probabilistic programming systems in three novel aspects: (1) embedding in spreadsheets, (2) dependently-typed functions, and (3) typed distinction...

Publication details
Date: 1 October 2014
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2014-135
Thomas Ball, Sebastian Burckhardt, Jonathan de Halleux, Michał Moskal, 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: 18 September 2014
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2014-127
David Lo, Nachiappan Nagappan, and Thomas Zimmermann

This appendix contains the full survey that we conducted in Microsoft (Appendix A) and the top-5 research ideas that were rated by developers, testers, and program managers, respectively (Appendix B).

Publication details
Date: 5 September 2014
Type: Technical report
Number: MSR-TR-2014-119
Markus N. Rabe, Christoph M. Wintersteiger, Hillel Kugler, Boyan Yordanov, and Youssef Hamadi

We present a novel technique to analyze the bounded reachability probability problem for large Markov chains. The essential idea is to incrementally search for sets of paths that lead to the goal region and to choose the sets in a way that allows us to easily determine the probability mass they represent. To effectively analyze the system dynamics using an SMT solver, we employ a finite-precision abstraction on the Markov chain and a custom quantifier elimination strategy. Through experimental...

Publication details
Date: 1 September 2014
Type: Inproceeding
Publisher: Springer
Kim Herzig and Nachiappan Nagappan

Context: Software testing is a crucial step in most software development processes. Testing software is a key component to manage and assess the risk of shipping quality products to customers. But testing is also an expensive process and changes to the system need to be tested thoroughly which may take time. Thus, the quality of a software product depends on the quality of its underlying testing process and on the effectiveness and reliability of individual test cases. Goal: In this paper, we...

Publication details
Date: 1 September 2014
Type: Inproceeding
Publisher: ACM
Ashish Gupta, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan, Thirumalesh Bhat, and Syed Emran

Context: With the advent of increased computing on mobile devices such as phones and tablets, it has become crucial to pay attention to the energy consumption of mobile applications. Goal: The software engineering field is now faced with a whole new spectrum of energy-related challenges, ranging from power budgeting to testing and debugging the energy consumption, for which exists only limited tool support. The goal of this work is to provide techniques to engineers to analyze power consumption and...

Publication details
Date: 1 September 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Martin Abadi, Philippa Gardner, Andrew D. Gordon, and Radu Mardare

Luca Cardelli has made exceptional contributions to the field of programming languages and beyond. Throughout his career, he has re-invented himself every decade or so, while continuing to make true innovations. His achievements span many areas: software; language design, including experimental languages; programming language foundations; and the interaction of programming languages and biology. These achievements form the basis of his lasting scientific leadership and his wide impact. A scientific...

Publication details
Date: 1 September 2014
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2014-104
Christian Bird, Thomas Zimmermann, and Edward K. Smith

This document contains the surveys used in our study on homegrown tools at Microsoft.

Publication details
Date: 1 September 2014
Type: Technical report
Number: MSR-TR-2014-118
1–25 of 556
Sort
Show 25 | 50 | 100
1234567Next 
> Our research