Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Our research
Content type
+
Downloads (446)
+
Events (420)
 
Groups (143)
+
News (2639)
 
People (734)
 
Projects (1065)
+
Publications (12165)
+
Videos (5364)
Labs
Research areas
Algorithms and theory47205 (294)
Communication and collaboration47188 (190)
Computational linguistics47189 (193)
Computational sciences47190 (199)
Computer systems and networking47191 (702)
Computer vision208594 (882)
Data mining and data management208595 (78)
Economics and computation47192 (98)
Education47193 (81)
Gaming47194 (71)
Graphics and multimedia47195 (208)
Hardware and devices47196 (200)
Health and well-being47197 (82)
Human-computer interaction47198 (805)
Machine learning and intelligence47200 (785)
Mobile computing208596 (37)
Quantum computing208597 (20)
Search, information retrieval, and knowledge management47199 (630)
Security and privacy47202 (275)
Social media208598 (28)
Social sciences47203 (248)
Software development, programming principles, tools, and languages47204 (569)
Speech recognition, synthesis, and dialog systems208599 (88)
Technology for emerging markets208600 (27)
1–25 of 569
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
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: ACM – Association for Computing Machinery
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: ACM – Association for Computing Machinery
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: ACM – Association for Computing Machinery
Gordon Stewart, Mahanth Gowda, Geoffrey Mainland, Bozidar Radunovic, Dimitrios Vytiniotis, and Cristina Luengo Agulló

Software-defined radio (SDR) brings the flexibility of software to wireless protocol design, promising an ideal platform for innovation and rapid protocol deployment. However, implementing modern wireless protocols on existing SDR platforms often requires careful hand-tuning of low-level code, which can undermine the advantages of software.

Ziria is a new domain-specific language (DSL) that offers programming abstractions suitable for wireless physical (PHY) layer tasks while emphasizing the...

Publication details
Date: 1 March 2015
Type: Inproceeding
Publisher: ACM – Association for Computing Machinery
Andreas Frohlich, Armin Biere, Christoph M. Wintersteiger, and Youssef Hamadi

Satisfiability Modulo Theories (SMT) is essential for many practical applications, e.g., in hard- and software verification, and increasingly also in other scientific areas like computational biology. A large number of applications in these areas benefit from bit-precise reasoning over finite-domain variables. Current approaches in this area translate a formula over bit-vectors to an equisatisfiable propositional formula, which is then given to a SAT solver. In this paper, we present a novel stochastic...

Publication details
Date: 1 January 2015
Type: Inproceeding
Publisher: AAAI - Association for the Advancement of Artificial Intelligence
Robert A Cochran, Loris D’Antoni, Benjamin Livshits, David Molnar, and Margus Veanes

In this paper, we investigate an approach to program synthesis that is based on crowd-sourcing. With the help of crowd-sourcing, we aim to capture the “wisdom of the crowds” to find good if not perfect solutions to inherently tricky programming tasks, which elude even expert developers and lack an easy-to-formalize specification.

We propose an approach we call program boosting, which involves crowd-sourcing imperfect solutions to a difficult programming problem from developers and then...

Publication details
Date: 1 January 2015
Type: Proceedings
Publisher: ACM – Association for Computing Machinery
Thomas BALL and Jakub DANIEL

Dynamic symbolic execution (DSE) is a well-known technique for automatically generating tests to achieve higher levels of coverage in a program. Two keys ideas of DSE are to: (1) seed symbolic execution by executing a program on an initial input; (2) using concrete values from the program execution in place of symbolic expressions whenever symbolic reasoning is hard or not desired. We describe DSE for a simple core language and then present a minimalist implementation of DSE for Python (in Python) that...

Publication details
Date: 1 January 2015
Type: Article
Publisher: IOS Press
Aws Albargouthi, Josh Berdine, Byron Cook, and Zachary Kincaid

We propose SplInter, a new technique for proving properties of heap-manipulating programs that marries (1) a new separation logic–based analysis for heap reasoning with (2) an interpolation-based technique for refining heap-shape invariants with data invariants. SplInter is property directed, precise, and produces counterexample traces when a property does not hold. Using the novel notion of spatial interpolants modulo theories, SplInter can infer complex...

Publication details
Date: 1 January 2015
Type: Technical report
Number: MSR-TR-2015-4
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
Zhenyu Guo, Cheng Chen, Haoxiang Lin, Sean McDirmid, Fan Yang, Xueying Guo, Mao Yang, and Lidong Zhou

Our cloud services are losing too many battles to faults like software bugs, resource interference, and hardware failures. Many tools can help us win these battles: model checkers to verify, fault injection to find bugs, replay to debug, and many more. Unfortunately, tools are currently afterthoughts in cloud service designs that must either be tediously tangled into service implementations or integrated transparently in ways that fail to effectively capture the service’s problematic non-deterministic...

Publication details
Date: 26 November 2014
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2014-150
Baishakhi Ray, Meiyappan Nagappan, Christian Bird, Nachiappan Nagappan, and Thomas Zimmermann

Changes in software development come in many forms. Some changes are frequent, idiomatic, or repetitive (e.g. adding checks for nulls or logging important values) while others are unique. We hypothesize that unique changes are different from the more common similar (or non-unique) changes in important ways; they may require more expertise or represent code that is more complex or prone to mistakes. As such, these changes are worthy of study. In this paper, we present a definition of unique changes and...

Publication details
Date: 25 November 2014
Type: Technical report
Number: MSR-TR-2014-149
Benjamin Livshits and George Kastrinis

Crowd-sourcing is increasingly being used for providing answers to online polls and surveys. However, existing systems, while taking care of the mechanics of attracting crowd workers, poll building, and payment, generally provide little by way of cost-management (e.g. working with a tight budget), time-management (e.g. obtaining results as quickly as possible), and controlling the margin of error (e.g. working on a sample population which is largely different from the general census statistics). The...

Publication details
Date: 14 November 2014
Type: Technical report
Number: MSR-TR-2014-145
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
Alex Taylor, Jasmin Fisher, Byron Cook, Samin Ishtiaq, and Nir Piterman

Computational biology is a nascent field reliant on software coding and modelling to produce insights into biological phenomena. Extreme claims cast it as a field set to replace conventional forms of experimental biology, seeing software modelling as a (more convenient) proxy for bench-work in the wet-lab. In this article, we deepen and complicate the relations between computation and scientific ways of knowing by discussing a computational biology tool, BMA, that models gene regulatory networks. We...

Publication details
Date: 1 November 2014
Type: Article
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
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 November 2014
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2014-135
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
Danyel Fisher, Badrish Chandramouli, Robert DeLine, Jonathan Goldstein, Andrei Aron, Mike Barnett, John C. Platt, James F. Terwilliger, John Wernsing, danyelf badrishc, and rdeline jongold

Over the last two decades, data scientists performed increasingly sophisticated analyses on larger data sets, yet their tools and workflows remain low-level. A typical analysis involves different tools for different stages of the work, requiring file transfers and considerable care to keep everything organized. Temporal data adds additional complexity: users typically must write queries offline before porting them to production systems. To address these problems, this paper introduces Tempe, a web...

Publication details
Date: 1 November 2014
Type: Technical report
Publisher: Microsoft Research
Number: MSR-TR-2014-148
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
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
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
1–25 of 569
Sort
Show 25 | 50 | 100
1234567Next 
> Our research