TY - JOUR
T1 - Why Do Software Developers Use Static Analysis Tools? A User-Centered Study of Developer Needs and Motivations
AU - Do, Lisa Nguyen Quang
AU - Wright, James R.
AU - Ali, Karim
N1 - Publisher Copyright:
© 1976-2012 IEEE.
PY - 2022/3/1
Y1 - 2022/3/1
N2 - As increasingly complex software is developed every day, a growing number of companies use static analysis tools to reason about program properties ranging from simple coding style rules to more advanced software bugs, to multi-tier security vulnerabilities. While increasingly complex analyses are created, developer support must also be updated to ensure that the tools are used to their best potential. Past research in the usability of static analysis tools has primarily focused on usability issues encountered by software developers, and the causes of those issues in analysis tools. In this article, we adopt a more user-centered approach, and aim at understanding why software developers use analysis tools, which decisions they make when using those tools, what they look for when making those decisions, and the motivation behind their strategies. This approach allows us to derive new tool requirements that closely support software developers (e.g., systems for recommending warnings to fix that take developer knowledge into account), and also open novel avenues for further static-analysis research such as collaborative user interfaces for analysis warnings.
AB - As increasingly complex software is developed every day, a growing number of companies use static analysis tools to reason about program properties ranging from simple coding style rules to more advanced software bugs, to multi-tier security vulnerabilities. While increasingly complex analyses are created, developer support must also be updated to ensure that the tools are used to their best potential. Past research in the usability of static analysis tools has primarily focused on usability issues encountered by software developers, and the causes of those issues in analysis tools. In this article, we adopt a more user-centered approach, and aim at understanding why software developers use analysis tools, which decisions they make when using those tools, what they look for when making those decisions, and the motivation behind their strategies. This approach allows us to derive new tool requirements that closely support software developers (e.g., systems for recommending warnings to fix that take developer knowledge into account), and also open novel avenues for further static-analysis research such as collaborative user interfaces for analysis warnings.
KW - Program analysis
KW - development tools
KW - graphical environments
KW - integrated environments
KW - usability
UR - http://www.scopus.com/inward/record.url?scp=85127576510&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85127576510&partnerID=8YFLogxK
U2 - 10.1109/TSE.2020.3004525
DO - 10.1109/TSE.2020.3004525
M3 - Article
AN - SCOPUS:85127576510
SN - 0098-5589
VL - 48
SP - 835
EP - 847
JO - IEEE Transactions on Software Engineering
JF - IEEE Transactions on Software Engineering
IS - 3
ER -