Nov 26, 2017 Developer Testing in the IDE

Keywords: Programming Practices Keywords: Programming Practices

Moritz Beller, Gousios Georgios, Annibale Panichella, Sebastian Proksch, Sven Amann, and Andy Zaidman: "Developer Testing in The IDE: Patterns, Beliefs, And Behavior". IEEE Transactions on Software Engineering, in process, 10.1109/TSE.2017.2776152. Software testing is one of the key activities to software quality in practice. Despite its importance, however, we have a remarkable lack of knowledge on how developers test in real-world projects. In this paper, we report on the surprising results of a large-scale field study with 2,443 software engineers whose development activities we closely monitored over the course of 2.5 years in four Integrated Development Environments (IDEs). Our findings question...

Nov 26, 2017 Abbreviated vs. Full-Word Identifier Names

Keywords: Programming Languages Keywords: Programming Languages

Giuseppe Scanniello, Michele Risi, Porfirio Tramontana, and Simone Romano: "Fixing Faults in C and Java Source Code: Abbreviated vs. Full-Word Identifier Names". ACM Transactions on Software Engineering and Methodology 25(2), October 2017, 10.1145/3104029. We carried out a family of controlled experiments to investigate whether the use of abbreviated identifier names, with respect to full-word identifier names, affects fault fixing in C and Java source code. This family consists of an original (or baseline) controlled experiment and three replications. We involved 100 participants with different backgrounds and experiences in total. Overall results suggested that there is no difference in terms of...

Nov 20, 2017 Data Science for Software Engineering

Keywords: Education Keywords: Education

We have just posted a short article at DataCamp (where I now work) titled "Using Data Science to Explore Software Development". We'd be grateful for feedback, and doubly grateful if you could help get it some attention: the more people who look and comment, the sooner we can move ahead with building some online courses to teach people how to get, clean, analyze, and make sense of software engineering data.

May 8, 2017 Empirical Software Engineering Using R

Keywords: Education Keywords: Education

A new update of Derek Jones' Empirical Software Engineering Using R is now available. At 283 pages, it includes an introduction to statistics, an overview of the forces shaping actual software engineering practices, lots of practical case studies that students can work through, and almost 700 references. What's more, the code and data are all on GitHub, along with slides to use in workshops. This is a tremendous resource, and we hope the community rallies behind it.

Dec 1, 2016 Hiatus

Keywords: Community Keywords: Community

This site is on hiatus until further notice: in the wake of recent political events, our community's energy and attention should be focused on more important things. If you can, please get involved in projects like this.

Nov 2, 2016 Empirical Software Engineering Using R

Keywords: Book Keywords: Book

Derek Jones has begun assembling a book to be titled Empirical Software Engineering Using R. You can view the work so far or file issues in this GitHub repo. I think this is a really exciting development, and I'm looking forward to seeing it evolve.

Oct 5, 2016 Test-Driven Development

Keywords: Testing Keywords: Testing

Davide Fucci, Giuseppe Scanniello, Simone Romano, Martin Shepperd, Boyce Sigweni, Fernando Uyaguari, Burak Turhan, Natalia Juristo, and Markku Oivo: "An External Replication on the Effects of Test-driven Development Using a Multi-site Blind Analysis Approach". ESEM 2016, http://people.brunel.ac.uk/~csstmms/FucciEtAl_ESEM2016.pdf. Context: Test-driven development (TDD) is an agile practice claimed to improve the quality of a software product, as well as the productivity of its developers. A previous study (i.e., baseline experiment) at the University of Oulu (Finland) compared TDD to a test-last development (TLD) approach through a randomized controlled trial. The results failed to support the claims. Goal: We want to validate the...

Oct 2, 2016 Revisiting the Anatomy and Physiology of the Grid

Keywords: Software Architecture, Grid Computing Keywords: Software Architecture, Grid Computing

Chris A. Mattmann, Joshua Garcia, Ivo Krka, Daniel Popescu, and Nenad Medvidovic: "Revisiting the Anatomy and Physiology of the Grid". Journal of Grid Computing, 13(1), March 2015, http://link.springer.com/article/10.1007/s10723-015-9324-0. A domain-specific software architecture (DSSA) represents an effective, generalized, reusable solution to constructing software systems within a given application domain. In this paper, we revisit the widely cited DSSA for the domain of grid computing. We have studied systems in this domain over the last ten years. During this time, we have repeatedly observed that, while individual grid systems are widely used and deemed successful, the grid DSSA is actually underspecified to...

Oct 2, 2016 FIDEX: Filtering Spreadsheet Data using Examples

Keywords: Spreadsheets, Programming by Example Keywords: Spreadsheets, Programming by Example

Xinyu Wang, Sumit Galwani, and Rishabh Singh: "FIDEX: Filtering Spreadsheet Data using Examples". OOPSLA 2016, https://www.cs.utexas.edu/~xwang/pubs/oopsla16.pdf. Data filtering in spreadsheets is a common problem faced by millions of end-users. The task of data filtering requires a computational model that can separate intended positive and negative string instances. We present a system, FIDEX, that can efficiently learn desired data filtering expressions from a small set of positive and negative string examples. There are two key ideas of our approach. First, we design an expressive DSL to represent disjunctive filter expressions needed for several real-world data filtering tasks. Second, we develop an...

Oct 1, 2016 Apex: Automatic Programming Assignment Error Explanation

Keywords: Education, Tools, Program Analysis, Symbolic Execution Keywords: Education, Tools, Program Analysis, Symbolic Execution

Dohyeong Kim, Yongwhi Kwon, Peng Liu, I Luk Kim, David Mitchel Perry, Xiangyu Zhang, and Gustavo Rodriguez-Rivera: "Apex: Automatic Programming Assignment Error Explanation". OOPSLA 2016, http://researcher.watson.ibm.com/researcher/files/us-liup/apex.pdf. This paper presents Apex, a system that can automatically generate explanations for programming assignment bugs, regarding where the bugs are and how the root causes led to the runtime failures. It works by comparing the passing execution of a correct implementation (provided by the instructor) and the failing execution of the buggy implementation (submitted by the student). The technique overcomes a number of technical challenges caused by syntactic and semantic differences of the two...

Sep 30, 2016 Purposes, Concepts, Misfits, and a Redesign of Git

Keywords: Programming Tools, Software Design Keywords: Programming Tools, Software Design

Santiago Perez De Rosso and Daniel Jackson: "Purposes, Concepts, Misfits, and a Redesign of Git", SPLASH 2016. Git is a widely used version control system that is powerful but complicated. Its complexity may not be an inevitable consequence of its power but rather evidence of flaws in its design. To explore this hypothesis, we analyzed the design of Git using a theory that identifies concepts, purposes, and misfits. Some well-known difficulties with Git are described, and explained as misfits in which underlying concepts fail to meet their intended purpose. Based on this analysis, we designed a reworking of Git (called...

Sep 21, 2016 Paradise Unplugged

Keywords: Diversity Keywords: Diversity

Denae Ford, Justin Smith, Philip J. Guo, and Chris Parnin: "Paradise Unplugged: Identifying Barriers for Female Participation on Stack Overflow". FSE'16, https://denaeford.wordpress.com/2016/07/20/paradise-unplugged-barriers-to-stack-overflow-use/. It is no secret that females engage less in programming fields than males. However, in online communities, such as Stack Overflow, this gender gap is even more extreme: only 5.8% of contributors are female. In this paper, we use a mixed-methods approach to identify contribution barriers females face in online communities. Through 22 semi-structured interviews with a spectrum of female users ranging from non-contributors to a top 100 ranked user of all time, we identified 14 barriers preventing...

Sep 16, 2016 Five From ICER'16

Keywords: Education Keywords: Education

These papers were all presented at the 12th Annual International Computing Education Research conference in Melbourne earlier this month, and give a good sense of what CS education researchers are looking at and what they're finding. Elizabeth Patitsas, Jesse Berlin, Michelle Craig, and Steve Easterbrook: "Evidence That Computer Science Grades Are Not Bimodal", 10.1145/2960310.2960312. Although it has never been rigourously demonstrated, there is a common belief that CS grades are bimodal. We statistically analyzed 778 distributions of final course grades from a large research university, and found only 5.8% of the distributions passed tests of multimodality. We then devised a...

Sep 9, 2016 ACM Permits Authors to Post Open Access Copies of Their Own Work

Keywords: Open Access Keywords: Open Access

I noted earlier this week that the ACM was making papers from this year's International Computing Education Research conference freely available—but only for two weeks, which isn't what anyone else means by "open access" (and is frankly ridiculous). I'm therefore grateful to Neil Brown for pointing out bullet #4 on this page, which says that authors and owners permanently hold the right to: Post the Accepted Version of the Work on (1) the Author's home page, (2) the Owner's institutional repository, (3) any repository legally mandated by an agency funding the research on which the Work is based, and (4)...

Sep 9, 2016 You Keep Using That Word...

Keywords: Opinion, Open Access Keywords: Opinion, Open Access

We decided in 2012 that we would only review material that is openly available. I was therefore pleased to discover earlier this week that I could actually download papers from this year's International Computing Education Research conference from the ACM's site. ...until I read that "#ICER2016 papers are open access for next two weeks" (emphasis added). If that's true, it's a real shame: a lot of very cool things are being presented at ICER that deserve to be more widely known, but there's no point posting links that are going to 403 by the time most people outside the Great...

Sep 9, 2016 A Multi-Site Joint Replication of a Design Patterns Experiment Using Moderator Variables to Generalize Across Contexts

Keywords: Replication, Design Patterns Keywords: Replication, Design Patterns

Jonathan L. Krein, Lutz Prechelt, Natalia Juristo, Aziz Nanthaamornphong, Jeffrey C. Carver, Sira Vegas, Charles D. Knutson, Kevin D. Seppi, and Dennis L. Eggett: "A Multi-Site Joint Replication of a Design Patterns Experiment Using Moderator Variables to Generalize Across Contexts". IEEE Trans. Software Engineering, 42(4), April 2016, 10.1109/TSE.2015.2488625. Context. Several empirical studies have explored the benefits of software design patterns, but their collective results are highly inconsistent. Resolving the inconsistencies requires investigating moderators—i.e., variables that cause an effect to differ across contexts. Objectives. Replicate a design patterns experiment at multiple sites and identify sufficient moderators to generalize the results across...

Sep 8, 2016 The Role of Ethnographic Studies in Empirical Software Engineering

Keywords: Qualitative Methods Keywords: Qualitative Methods

Helen Sharp, Yvonne Dittrich, and Cleidson R.B. de Souza: "The Role of Ethnographic Studies in Empirical Software Engineering". IEEE Trans. Software Engineering, 42(8), August 2016, 10.1109/TSE.2016.2519887. Ethnography is a qualitative research method used to study people and cultures. It is largely adopted in disciplines outside software engineering, including different areas of computer science. Ethnography can provide an in-depth understanding of the socio-technological realities surrounding everyday software development practice, i.e., it can help to uncover not only what practitioners do, but also why they do it. Despite its potential, ethnography has not been widely adopted by empirical software engineering researchers, and...

Aug 14, 2016 Do Code Smells Hamper Novice Programming?

Keywords: Novices, Code Smells Keywords: Novices, Code Smells

Felienne Hermans and Efthimia Aivaloglou: "Do Code Smells Hamper Novice Programming?" TUD-SERG-2016-006, 2016. Recently, block-based programming languages like Alice, Scratch and Blockly have become popular tools for programming education. There is substantial research showing that block-based languages are suitable for early programming education. But can block-based programs be smelly too? And does that matter to learners? In this paper we explore the code smells metaphor in the context of block-based programming language Scratch. We conduct a controlled experiment with 61 novice Scratch programmers, in which we divided the novices into three groups. One third receive a non-smelly program, while the...

Aug 3, 2016 Perspectives on Data Science for Software Engineering

Keywords: Announcements Keywords: Announcements

Perspectives on Data Science for Software Engineering presents the best practices of seasoned data miners in software engineering. Its goal is to transfer the knowledge of experts from seasoned software engineers and data scientists to newcomers in the field. While there are many books covering data mining and software engineering basics, they present only the fundamentals and lack the perspective that comes from real-world experience. This book offers unique insights into the wisdom of the community’s leaders. Ideas are presented in digestible chapters designed to be applicable across many domains. Topics included cover data collection, data sharing, data mining, and...

Aug 2, 2016 How Well Do Developers Understand Open Source Licenses?

Keywords: Research Keywords: Research