Difficulties understanding update paths while understanding code cause developers to waste time and insert bugs. A detailed investigation of these difficulties suggests that a wide variety of problems could be addressed by more easily answering questions about update paths that existing tools do not answer. We are designing a feasible update path static analysis to compute these paths and a visualization for asking questions and displaying results. In addition to grounding the questions we answer and tailoring the program analysis in data, we will also evaluate the usefulness of our tool using lab and field studies. Categories and Subject Descriptors D.2.6 [Software Engineering]: Programming Environments; D.2.7 [Software Engineering]: Distribution, Maintenance, and Enhancement. General Terms Human Factors, Verification Keywords Code navigation, callgraph, program comprehension, empirical study, science of design, feasible paths
Thomas D. LaToza