@inproceedings{377cb75e5b174af0b1ae44ec0a557abd,
title = "Assessing the type annotation burden",
abstract = "Type annotations provide a link between program variables and domain-specific types. When combined with a type system, these annotations can enable early fault detection. For type annotations to be cost-effective in practice, they need to be both accurate and affordable for developers. We lack, however, an understanding of how burdensome type annotation is for developers. Hence, this work explores three fundamental questions: 1) how accurately do developers make type annotations; 2) how long does a single annotation take; and, 3) if a system could automatically suggest a type annotation, how beneficial to accuracy are correct suggestions and how detrimental are incorrect suggestions? We present results of a study of 71 programmers using 20 random code artifacts that contain variables with physical unit types that must be annotated. Subjects choose a correct type annotation only 51% of the time and take an average of 136 seconds to make a single correct annotation. Our qualitative analysis reveals that variable names and reasoning over mathematical operations are the leading clues for type selection. We find that suggesting the correct type boosts accuracy to 73%, while making a poor suggestion decreases accuracy to 28%. We also explore what state-of-the-art automated type annotation systems can and cannot do to help developers with type annotations, and identify implications for tool developers.",
keywords = "Abstract type inference, Dimensional analysis, Physical units, Program analysis, Robotic systems, Static analysis, Type checking, Unit consistency",
author = "Ore, {John Paul} and Carrick Detweiler and Sebastian Elbaum and Lambros Karkazis",
note = "Funding Information: We thank our subjects for taking part in the study. We would also like to thank NIMBUS lab members Urja Acharya, Carl Hildebrandt, Ajay Shankar, and Adam Plowcha for providing feedback on early versions of the type annotation test instrument. This work is supported by NSF award #CCF-1718040. Publisher Copyright: {\textcopyright} 2018 Association for Computing Machinery.; 33rd IEEE/ACM International Conference on Automated Software Engineering, ASE 2018 ; Conference date: 03-09-2018 Through 07-09-2018",
year = "2018",
month = sep,
day = "3",
doi = "10.1145/3238147.3238173",
language = "English (US)",
series = "ASE 2018 - Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering",
publisher = "Association for Computing Machinery, Inc",
pages = "190--201",
editor = "Christian Kastner and Marianne Huchard and Gordon Fraser",
booktitle = "ASE 2018 - Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering",
}