skip to main content
research-article
Open access

Human-Centered Approach to Static-Analysis-Driven Developer Tools: The future depends on good HCI

Published: 16 September 2021 Publication History

Abstract

Complex and opaque systems do not scale easily. A human-centered approach for evolving tools and practices is essential to ensuring that software is scaled safely and securely. Static analysis can unveil information about program behavior, but the goal of deriving this information should not be to accumulate hairsplitting detail. HCI can help direct static-analysis techniques into developer-facing systems that structure information and embody relationships in representations that closely mirror a programmer's thought. The survival of great software depends on programming languages that support, rather than inhibit, communicating, reasoning, and abstract thinking.

References

[1]
Altmann, E. M. 2001. Near-term memory in programming: a simulation-based analysis. International Journal of Human-Computer Studies 54(2), 189?210; https://www.sciencedirect.com/science/article/abs/pii/S1071581900904075.
[2]
Asay, M. 2016. Open source is not to blame for a lack of industry standards. TechRepublic; https://www.techrepublic.com/article/open-source-is-not-to-blame-for-a-lack-of-industry-standards/.
[3]
Automatic Proof Search (Auto). 2017. Agda; https://agda.readthedocs.io/en/v2.5.3/tools/auto.html.
[4]
Brandt, J., Guo, P. J., Lewenstein, J., Klemmer, S. R. 2008. Opportunistic programming: how rapid ideation and prototyping occur in practice. Proceedings of the 4th International Workshop on End-user Software Engineering, 1?5; https://doi.org/10.1145/1370847.1370848.
[5]
Claburn, T. 2021. Accused murderer wins right to check source code of DNA testing kit used by police. The Register (February 4); https://www.theregister.com/2021/02/04/dna_testing_software/.
[6]
Codd, E. F. 1970. A relational model of data for large shared data banks. Communications of the ACM 13 (6), 377-387; https://dl.acm.org/doi/10.1145/362384.362685.
[7]
Czaplicki, E. 2015. Compiler errors for humans. Elm; https://elm-lang.org/news/compiler-errors-for-humans.
[8]
Gardner, M. 1970. The fantastic combinations of John Conway's new solitaire game "life." Scientific American 223, 120?123; https://web.stanford.edu/class/sts145/Library/life.pdf.
[9]
Grove, A. S. 1995. High-Output Management, 2nd edition. Vintage.
[10]
Guo, P. 2020. Philip Guo - UC San Diego. https://pg.ucsd.edu/.
[11]
Harel, D. 1987. Algorithmics: The Spirit of Computing. Addison-Wesley.
[12]
Henley, A. Z. 2021. Why is it so hard to see code from 5 minutes ago? Hacker News; https://web.eecs.utk.edu/~azh/blog/yestercode.html.
[13]
International Organization for Standardization. 2018. ISO 9241-11:2018: Ergonomics of human-system interaction?Part 11: Usability: definitions and concepts; https://www.iso.org/standard/63500.html.
[14]
Jacko, J. A., ed. 2012. Human?Computer Interaction Handbook, 3rd edition. CRC Press.
[15]
Karimi, H., Masoudi Alavi, N. 2015. Florence Nightingale: the mother of nursing. Nursing and Midwifery Studies 4(2), e29475; https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4557413/.
[16]
Knuth, D. E. 1984. Literate programming. The Computer Journal 27(2), 97?111; https://academic.oup.com/comjnl/article/27/2/97/343244.
[17]
Lamb, G. 2001. Improve your UI design process with object-oriented techniques. Microsoft Developer Network, Visual Basic Developer; https://web.archive.org/web/20130814153652/http://msdn.microsoft.com/en-us/library/aa227601(v=vs.60).aspx.
[18]
Lambdabot. 2021. Haskell; https://wiki.haskell.org/Lambdabot.
[19]
Mark, G., Gonzalez, V. M., Harris, J. 2005. No task left behind? Examining the nature of fragmented work. Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, 321?330; https://dl.acm.org/doi/abs/10.1145/1054972.1055017.
[20]
Mou, B. 1999. The structure of the Chinese language and ontological insights: a collective-noun hypothesis. Philosophy East and West 49(1), 45?62; https://www.jstor.org/stable/1400116.
[21]
Naveh-Benjamin, M., Guez, J. (2000). Effects of divided attention on encoding and retrieval processes: assessment of attentional costs and a componential analysis. Journal of Experimental Psychology: Learning, Memory, and Cognition 26(6), 1461-82; https://psycnet.apa.org/record/2000-12254-009.
[22]
Nielsen, J. 1994. 10 usability heuristics for user interface design. Nielsen Norman Group; https://www.nngroup.com/articles/ten-usability-heuristics/.
[23]
Norman, D. 2013. The Design of Everyday Things. New York, NY: Basic Books.
[24]
O'Conaill, B., Frohlich, D. 1995. Timespace in the workplace: dealing with Interruptions. Conference Companion on Human Factors in Computing Systems, 262-263; https://doi.org/10.1145/223355.223665.
[25]
Python Tutor. (n.d.). Visualize Code Execution; http://pythontutor.com/.
[26]
Rust-analyzer. (n.d.); https://rust-analyzer.github.io/.
[27]
Safety Research & Strategies Inc. 2013. Toyota unintended acceleration and the big bowl of "spaghetti" code (November 7); https://www.safetyresearch.net/toyota-unintended-acceleration-and-the-big-bowl-of-spaghetti-code/.
[28]
Sierra, K. 2013. Your app makes me fat. Serious Pony (July 24); http://seriouspony.com/blog/2013/7/24/your-app-makes-me-fat.
[29]
Weinschenk, S. 2012. The true cost of multi-tasking. Psychology Today (September 18); https://www.psychologytoday.com/us/blog/brain-wise/201209/the-true-cost-multi-tasking.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Queue
Queue  Volume 19, Issue 4
Static Analysis
July-August 2021
114 pages
ISSN:1542-7730
EISSN:1542-7749
DOI:10.1145/3487019
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 September 2021
Published in QUEUE Volume 19, Issue 4

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article
  • Popular
  • Editor picked

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 14,816
    Total Downloads
  • Downloads (Last 12 months)2,256
  • Downloads (Last 6 weeks)262
Reflects downloads up to 24 Dec 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Magazine Site

View this article on the magazine site (external)

Magazine Site

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media