Recording Concerns in Source Code Using Annotations
This addresses the issue of implicit developer knowledge in software maintenance, offering a practical tool for improving comprehension and efficiency, though it is incremental in applying annotations to an existing problem.
The paper tackled the problem of capturing developers' intents in source code by using concern annotations, finding that these annotations significantly reduced program comprehension and maintenance time by 34% in a student experiment and improved correctness by 33% in an industrial developer experiment.
A concern can be characterized as a developer's intent behind a piece of code, often not explicitly captured in it. We discuss a technique of recording concerns using source code annotations (concern annotations). Using two studies and two controlled experiments, we seek to answer the following 3 research questions: 1) Do programmers' mental models overlap? 2) How do developers use shared concern annotations when they are available? 3) Does using annotations created by others improve program comprehension and maintenance correctness, time and confidence? The first study shows that developers' mental models, recorded using concern annotations, overlap and thus can be shared. The second study shows that shared concern annotations can be used during program comprehension for the following purposes: hypotheses confirmation, feature location, obtaining new knowledge, finding relationships and maintenance notes. The first controlled experiment with students showed that the presence of annotations significantly reduced program comprehension and maintenance time by 34%. The second controlled experiment was a differentiated replication of the first one, focused on industrial developers. It showed a 33% significant improvement in correctness. We conclude that concern annotations are a viable way to share developers' thoughts.