It Will Never Work in Theory

Apr 26, 2016 Extremely Angry
Keywords: Research
From this thread by Mike Hoye, the Engineering Community Manager for Firefox at Mozilla: Extremely angry with the state of academic CS research right now. We've got a bunch of research papers that have come out of Mozilla's willingness to share a lot of our data. Bugzilla, lots of other stuff. We pay attention to that research. We read it carefully, and our operational decision-making is informed by those results. But we live and work in an evolving world, so the other thing we do as a matter of course is re-check our data to confirm our assumptions. What I...
Aug 23, 2015 Software Developers' Perceptions of Productivity
Keywords: Productivity
André N. Meyer, Thomas Fritz, Gail C. Murphy, and Thomas Zimmermann: "Software Developers' Perceptions of Productivity", FSE '14: Proceedings of the 22nd ACM SIGSOFT International Symposium on the Foundations of Software Engineering, Nov. 2014. 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...
Jul 24, 2015 A Hostage Situation
Keywords: Opinion
If you do software engineering research, and want your work to matter, you should go and read from Mozilla's Mike Hoye. Really.
Feb 13, 2015 On the Comprehension of Program Comprehension
Keywords: Program comprehension
Walid Maalej, Rebecca Tiarks, Tobias Roehm, and Rainer Koschke: "On the Comprehension of Program Comprehension" ACM Transactions on Software Engineering and Methodology, Vol. 23, No. 4, Article 31, Aug. 2014. Research in program comprehension has evolved considerably over the past decades. However, only little is known about how developers practice program comprehension in their daily work. This article reports on qualitative and quantitative research to comprehend the strategies, tools, and knowledge used for program comprehension. We observed 28 professional developers, focusing on their comprehension behavior, strategies followed, and tools used. In an online survey with 1,477 respondents, we analyzed...
Oct  8, 2014 Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems
Keywords: Defects, Failures
Ding Yuan, Yu Luo, Xin Zhuang, Guilherme Renna Rodrigues, Xu Zhao, Yongle Zhang, Pranay U. Jain, and Michael Stumm: "Simple Testing Can Prevent Most Critical Failures: An Analysis of Production Failures in Distributed Data-Intensive Systems" Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI '14), Oct. 2014. Large, production quality distributed systems still fail periodically, and do so sometimes catastrophically, where most or all users experience an outage or data loss. We present the result of a comprehensive study investigating 198 randomly selected, user-reported failures that occurred on Cassandra, HBase, Hadoop Distributed File System (HDFS),...
May  1, 2014 Happy software developers solve problems better: psychological measurements in empirical software engineering
Keywords: Controlled Experiments
Daniel Graziotin, Xiaofeng Wang and Pekka Abrahamsson: "Happy software developers solve problems better: psychological measurements in empirical software engineering" PeerJ 2(289), Mar. 2014. For more than thirty years, it has been claimed that a way to improve software developers' productivity and software quality is to focus on people and to provide incentives to make developers satisfied and happy. This claim has rarely been verified in software engineering research, which faces an additional challenge in comparison to more traditional engineering fields: software development is an intellectual activity and is dominated by often-neglected human factors (called human aspects in software engineering...
Apr 25, 2014 Cassandra: Proactive Conflict Minimization through Optimized Task Scheduling
Keywords: Collaborative Development, Coordination, Collaboration Conflicts, Task Scheduling
Bakhtiar Khan Kasi, and Anita Sarma: "Cassandra: Proactive Conflict Minimization through Optimized Task Scheduling." ICSE'13, 2013. Software conflicts arising because of conflicting changes are a regular occurrence and delay projects. The main precept of workspace awareness tools has been to identify potential conflicts early, while changes are still small and easier to resolve. However, in this approach conflicts still occur and require developer time and effort to resolve. We present a novel conflict minimization technique that proactively identifies potential conflicts, encodes them as constraints, and solves the constraint space to recommend a set of conflict-minimal development paths for the...
Jan 29, 2014 An Empirical Investigation into Programming Language Syntax
Keywords: Controlled Experiments, Programming Languages
Andreas Stefik and Susanna Siebert: "An Empirical Investigation into Programming Language Syntax." ACM Transactions on Computing Education, 13(4), Nov. 2013. Recent studies in the literature have shown that syntax remains a significant barrier to novice computer science students in the field. While this syntax barrier is known to exist, whether and how it varies across programming languages has not been carefully investigated. For this article, we conducted four empirical studies on programming language syntax as part of a larger analysis into the, so called, programming language wars. We first present two surveys conducted with students on the intuitiveness of syntax,...
Nov 16, 2013 A Modest Proposal
Keywords: Suggestions
Here's an idea: when conferences and journals send CS research papers out to academics for peer review of content, they should also send them to a couple of people in industry to rate how interesting they are. Their rating and comments would not be used as part of the acceptance decision, but would published with the paper in order to stimulate discussion. We learned a lot by asking practitioners what industry wants from research (see Jorge's discussion or these slides), and I think it would spark some useful dialog between the citizens of computing's two solitudes.
Sep 20, 2013 LASE: Locating and Applying Systematic Edits by Learning from Examples
Na Meng, Miryung Kim, and Kathryn S. McKinley: "LASE: Locating and Applying Systematic Edits by Learning from Examples." ICSE'13, 2013. Adding features and fixing bugs often require systematic edits that make similar, but not identical, changes to many code locations. Finding all the relevant locations and making the correct edits is a tedious and error-prone process for developers. This paper addresses both problems using edit scripts learned from multiple examples. We design and implement a tool called LASE that (1) creates a context-aware edit script from two or more examples, and uses the script to (2) automatically identify edit...
Aug 31, 2013 Does Task Automation Improve Code Reviews?
Keywords: Questions
Alex Gaynor, who is active in several open source communities, asked an interesting question on Twitter today: Looking for studies as to whether automation of auxiliary tasks (running tests, style checks, etc.) improves code reviews? If you know of any, I'm sure he'd enjoy hearing from you.
Aug 12, 2013 Review: The Essence of Software Engineering
Keywords: Book Reviews
Ivar Jacobson, Pan-Wei Ng, Paul E. McMahon, Ian Spence, and Svante Lidman: The Essence of Software Engineering: Applying the SEMAT Kernel. Addison-Wesley Professional, 2013, 978-0321885951. SEMAT started almost four years ago as a call to action to refound software engineering on a strong theoretical and empirical basis, and to move beyond fads and petty methodological wars to embrace a "kernel" of widely agreed elements. It had an impressive list of signatories, and SEMAT contributors have since sent a submission to the OMG describing what they think the essence of software engineering is, which they hope will become an Object Management...
Jul 24, 2013 Automatic Patch Generation Learned from Human-Written Patches
Keywords: Code Smells
François Gauthier and Ettore Merlo: "Semantic Smells and Errors in Access Control Models: A Case Study in PHP." ICSE'13, 2013. Access control models implement mechanisms to restrict access to sensitive data from unprivileged users. Access controls typically check privileges that capture the semantics of the operations they protect. Semantic smells and errors in access control models stem from privileges that are partially or totally unrelated to the action they protect. This paper presents a novel approach, partly based on static analysis and information retrieval techniques, for the automatic detection of semantic smells and errors in access control models. Investigation...
Jul  7, 2013 How, and Why, Process Metrics Are Better
Keywords: Code Smells, Metrics, Quantitative Studies
Foyzur Rahman and Premkumar Devanbu: "How, and Why, Process Metrics Are Better." ICSE'13, 2013, Defect prediction techniques could potentially help us to focus quality-assurance efforts on the most defect-prone files. Modern statistical tools make it very easy to quickly build and deploy prediction models. Software metrics are at the heart of prediction models; understanding how and especially why different types of metrics are effective is very important for successful model deployment. In this paper we analyze the applicability and efficacy of process and code metrics from several different perspectives. We build many prediction models across 85 releases of 12...
Jun 19, 2013 Reducing Human Effort and Improving Quality in Peer Code Reviews using Automatic Static Analysis and Reviewer Recommendation
Keywords: Code Review
Vipin Balachandran: "Reducing Human Effort and Improving Quality in Peer Code Reviews using Automatic Static Analysis and Reviewer Recommendation." ICSE'13, 2013, Peer code review is a cost-effective software defect detection technique. Tool assisted code review is a form of peer code review, which can improve both quality and quantity of reviews. However, there is a significant amount of human effort involved even in tool based code reviews. Using static analysis tools, it is possible to reduce the human effort by automating the checks for coding standard violations and common defect patterns. Towards this goal, we propose a tool called...
Jun 13, 2013 UML in Practice
Keywords: Case Studies
Marian Petre: "UML in practice" ICSE'13, 2013. UML has been described by some as "the lingua franca of software engineering". Evidence from industry does not necessarily support such endorsements. How exactly is UML being used in industry — if it is? This paper presents a corpus of interviews with 50 professional software engineers in 50 companies and identifies 5 patterns of UML use. The abstract for this distinguished paper doesn't do it justice. Over two years, the author interviewed over 50 developers from a broad cross-section of industries and countries. She found their use fell into five broad categories:...
Jun 13, 2013 The MSR Cookbook: Mining a Decade of Research
Keywords: Experience Reports, Literature Reviews, Mining
Hadi Hemmati, Sarah Nadi, Olga Baysal, Oleksii Kononenko, Wei Wang, Reid Holmes, and Michael W. Godfrey: "The MSR Cookbook: Mining a Decade of Research". ICSE'13, 2013, The Mining Software Repositories (MSR) research community has grown significantly since the first MSR workshop was held in 2004. As the community continues to broaden its scope and deepens its expertise, it is worthwhile to reflect on the best practices that our community has developed over the past decade of research. We identify these best practices by surveying past MSR conferences and workshops. To that end, we review all 117 full papers published...
Jun 13, 2013 It's Not a Bug, It's a Feature: How Misclassification Impacts Bug Prediction
Keywords: Mining, Quantitative Studies
Kim Herzig, Sascha Just, and Andreas Zeller: "It's not a Bug, it's a Feature: How Misclassification Impacts Bug Prediction". ICSE'13, 2013, In a manual examination of more than 7,000 issue reports from the bug databases of five open-source projects, we found 33.8% of all bug reports to be misclassified—that is, rather than referring to a code fix, they resulted in a new feature, an update to documentation, or an internal refactoring. This misclassification introduces bias in bug prediction models, confusing bugs and features: On average, 39% of files marked as defective actually never had a bug. We estimate the...
Jun 13, 2013 Formal Specifications Better Than Function Points for Code Sizing
Keywords: Estimation
Mark Staples, Rafal Kolanski, Gerwin Klein, Corey Lewis, June Andronick, Toby Murray, Ross Jeffery, and Len Bass: "Formal Specifications Better Than Function Points for Code Sizing". ICSE'13, 2013, Size and effort estimation is a significant challenge for the management of large-scale formal verification projects. We report on an initial study of relationships between the sizes of artefacts from the development of seL4, a formally-verified embedded systems microkernel. For each API function we first determined its COSMIC Function Point (CFP) count (based on the seL4 user manual), then sliced the formal specifications and source code, and performed a normalised line...
Jun  6, 2013 Does Bug Prediction Support Human Developers? Findings From a Google Case Study
Keywords: Case Studies, Tools
Chris Lewis, Zhongpeng Lin, Caitlin Sadowski, Xiaoyan Zhu, Rong Ou, and E. James Whitehead Jr.: "Does Bug Prediction Support Human Developers? Findings From a Google Case Study." ICSE'13, 2013, While many bug prediction algorithms have been developed by academia, they're often only tested and verified in the lab using automated means. We do not have a strong idea about whether such algorithms are useful to guide human developers. We deployed a bug prediction algorithm across Google, and found no identifiable change in developer behavior. Using our experience, we provide several characteristics that bug prediction algorithms need to meet in...

Comments powered by Disqus