Blogs (1) >>
ICSE 2019
Sat 25 - Fri 31 May 2019 Montreal, QC, Canada
Wed 29 May 2019 16:00 - 16:20 at Place du Canada - Studying Developers Chair(s): Thomas Fritz

Best practices for developers, as encoded in recent programming language designs, recommend the use of immutability whenever practical. However, there is a lack of empirical evidence about the uptake of this advice. Our goal is to understand the usage of immutability by C++ developers in practice. This work investigates how C++ developers use immutability by analyzing their use of the C++ immutability qualifier, const. In particular, we answer the following broad questions about const usage: 1) do developers actually write non-trivial (more than 3 methods) immutable classes and immutable methods? 2) do developers label their immutable classes and methods?

We analyzed 7 medium-to-large open source projects and collected two sources of empirical data: 1) const annotations by developers, indicating an intent to write immutable code; and 2) the results of a simple static analysis which identified easily const-able methods—those that clearly did not mutate state. On average, we found that about 12% of non-trivial classes are immutable. We found the vast majority of classes do benefit from immutability labels on methods: surprisingly, developers const-annotate 46% of methods, and we estimate that at least 51% of methods could be const-annotated. Furthermore, developers missed immutability labels on at least 6% of unannotated methods. We provide an in-depth discussion on how developers write const and the results of our analyses.

Wed 29 May

Displayed time zone: Eastern Time (US & Canada) change

16:00 - 18:00
Studying DevelopersPapers / Technical Track / New Ideas and Emerging Results / Journal-First Papers at Place du Canada
Chair(s): Thomas Fritz University of Zurich, University of British Columbia
16:00
20m
Talk
How C++ Developers Use Immutability Declarations: an Empirical StudyArtifacts AvailableArtifacts Evaluated ReusableTechnical TrackIndustry Program
Technical Track
Jon Eyolfson University of Waterloo, Patrick Lam University of Waterloo
16:20
10m
Talk
Need for Sleep: the Impact of a Night of Sleep Deprivation on Novice Developers' PerformanceIndustry ProgramJournal-First
Journal-First Papers
Davide Fucci University of Hamburg, Giuseppe Scanniello University of Basilicata, Simone Romano University of Basilicata, Natalia Juristo Universidad Politecnica de Madrid
16:30
20m
Talk
Latent Patterns in Activities: A Field Study of How Developers Manage ContextTechnical Track
Technical Track
Souti Chattopadhyay Graduate Student, Nicholas Nelson Oregon State University, Yenifer Ramirez Gonzalez Oregon State University, Annel Amelia Leon Oregon State University, Rahul Pandita Phase Change Software, Anita Sarma Oregon State University
16:50
20m
Talk
Developer Reading Behavior while Summarizing Java Methods : Size and Context MattersArtifacts AvailableArtifacts Evaluated ReusableTechnical Track
Technical Track
Nahla Abid , Bonita Sharif University of Nebraska-Lincoln, USA, Natalia Dragan Kent State University, Hend Alrasheed Kent State University, Jonathan I. Maletic Kent State University
17:10
20m
Talk
Distilling Neural Representations of Data Structure Manipulation using fMRI and fNIRSACM SIGSOFT Distinguished Paper AwardTechnical Track
Technical Track
Yu Huang University of Michigan, Xinyu Liu University of Michigan, Ryan Krueger University of Michigan, Tyler Santander University of California at Santa Barbara, Xiaosu Hu University of Michigan, Kevin Leach University of Michigan, Westley Weimer University of Michigan
Pre-print
17:30
10m
Talk
Biofeedback augmented software engineering: monitoring of programmers' mental effortNIER
New Ideas and Emerging Results
Ricardo Couceiro University of Coimbra, Gonçalo Duarte University of Coimbra, João Durães CISUC, Polytechnic Institute of Coimbra, João Castelhano ICNAS, University of Coimbra, Catarina Duarte ICNAS, University of Coimbra, Cesar Teixeira University of Coimbra, Miguel Castelo Branco ICNAS/CIBIT, University of Coimbra, Paulo Carvalho University of Coimbra, Henrique Madeira University of Coimbra
17:40
20m
Talk
Discussion Period
Papers