Our research
Content type
+
Downloads (438)
+
Events (396)
 
Groups (150)
+
News (2571)
 
People (820)
 
Projects (1053)
+
Publications (11929)
+
Videos (5174)
Labs
Research areas
Algorithms and theory47205 (255)
Communication and collaboration47188 (185)
Computational linguistics47189 (178)
Computational sciences47190 (184)
Computer systems and networking47191 (664)
Computer vision208594 (35)
Data mining and data management208595 (57)
Economics and computation47192 (94)
Education47193 (79)
Gaming47194 (67)
Graphics and multimedia47195 (198)
Hardware and devices47196 (192)
Health and well-being47197 (74)
Human-computer interaction47198 (773)
Machine learning and intelligence47200 (710)
Mobile computing208596 (26)
Quantum computing208597 (16)
Search, information retrieval, and knowledge management47199 (610)
Security and privacy47202 (262)
Social media208598 (20)
Social sciences47203 (239)
Software development, programming principles, tools, and languages47204 (543)
Speech recognition, synthesis, and dialog systems208599 (53)
Technology for emerging markets208600 (24)
1–25 of 543
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
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
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
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
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...

Publication details
Date: 1 November 2014
Type: Inproceeding
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
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
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
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
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
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)
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
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
Chieh-Jan Mike Liang, Nicholas D. Lane, Niels Brouwers, Li Zhang, Börje F. Karlsson, Hao Liu, Yan Liu, Jun Tang, Xiang Shan, Ranveer Chandra, and Feng Zhao

Scalable and comprehensive testing of mobile apps is extremely challenging. Every test input needs to be run with a variety of contexts, such as: device heterogeneity, wireless network speeds, locations, and unpredictable sensor inputs. The range of values for each context, e.g. location, can be very large. In this paper we present Caiipa, a cloud service for testing apps over an expanded mobile context space in a scalable way. It incorporates key techniques to make app testing more tractable, including...

Publication details
Date: 1 September 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
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 September 2014
Type: Proceedings
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
Gordon Stewart, Mahanth Gowda, Geoffrey Mainland, Bozidar Radunovic, Dimitrios Vytiniotis, and Doug Patterson

Software-defined radios (SDR) have the potential to bring major innovation in wireless networking design. However, their impact so far has been limited due to complex programming tools. Most of the existing tools are either too slow to achieve the full line speeds of contemporary wireless PHYs or are too complex to master. In this demo we present our novel SDR programming environment called Ziria. Ziria consists of a novel programming language and an optimizing compiler. The compiler is able to...

Publication details
Date: 1 August 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Konstantin Korovin and Margus Veanes

Combining classical automated theorem proving techniques with theory based reasoning, such as satisfiability modulo theories, is a new approach to first-order reasoning modulo theories. Skolemization is a classical technique used to transform first-order formulas into equisatisfiable form. We show how Skolemization can benefit from a new satisfiability modulo theories based simplification technique of formulas called monadic decomposition. The technique can be used to transform a theory dependent...

Publication details
Date: 1 August 2014
Type: Inproceeding
Publisher: Springer
Chen LUO, Jian-Guang LOU, Qingwei LIN, Qiang FU, Rui DING, Dongmei ZHANG, and Zhe WANG
Publication details
Date: 1 August 2014
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Karthick Jayaraman, Nikolaj Bjrner, Geoff Outhred, and Charlie Kaufman

Network connectivity policies are crucial for assuring the security and availability of large-scale datacenter. Managing these policies is fraught with complexity and operator errors. The difficulties are exacerbated when deploying large scale offerings of public cloud services where multiple tenants are hosted within customized isolation boundaries. In these large-scale settings it is impractical to depend on human effort or trial and error to maintain the correctness and consistency of...

Publication details
Date: 26 July 2014
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2014-102
Aditya V. Nori, Chung-Kil Hur, Sriram K. Rajamani, and Selva Samuel

We present a new Markov Chain Monte Carlo (MCMC) sampling algorithm for probabilistic programs. Our approach and tool, called R2, has the unique feature of employing program analysis in order to improve the efficiency of MCMC sampling. Given an input program P, R2 propagates observations in P backwards to obtain a semantically equivalent program P0 in which every probabilistic assignment is immediately followed by an observe statement. Inference is performed by a suitably modified version of the...

Publication details
Date: 1 July 2014
Type: Inproceeding
Publisher: AAAI
1–25 of 543
Sort
Show 25 | 50 | 100
1234567Next 
> Our research