Explicit programming strategies

Explicit programming strategies
复制标题

DOI:
10.1007/s10664-020-09810-1
复制
发表时间:
2019-10
影响因子:
4.1
通讯作者:
Thomas D. Latoza;Maryam Arab;Dastyni Loksa;Amy J. Ko
Thomas D. Latoza;Maryam Arab;Dastyni Loksa;Amy J. Ko
中科院分区:
计算机科学2区
文献类型:
--
作者:
Thomas D. Latoza;Maryam Arab;Dastyni Loksa;Amy J. Ko

文献摘要

被引文献

相似文献

软件开发人员解决各种各样的问题。虽然软件工程研究通常关注支持解决问题的工具,但开发人员用于解决问题的策略至少同样重要。在本文中,我们提供了一种新颖的方法,使开发人员能够遵循明确的编程策略,这些策略描述了专家如何解决常见的编程问题。我们定义了明确的编程策略,将我们的定义建立在软件工程和其他采用更明确的问题解决程序的行业的先前工作中。然后,我们提出了一种称为 Roboto 的新颖符号和一种新颖的策略跟踪工具,该工具明确地将编程策略和框架执行策略表示为人类决策能力与计算机构建过程和保存信息的能力之间的协作努力。在形成性评估中,28 名具有不同专业知识的软件开发人员完成了设计任务和调试任务。我们发现,与自由选择策略的开发人员相比,给予明确策略的开发人员感觉他们的工作更有组织性、系统性和可预测性,但也更受限制。使用显式策略的开发人员客观上在设计和调试任务上更加成功。我们讨论了 Roboto 和这些发现的影响,设想了一个由明确策略组成的蓬勃发展的生态系统,可以加速和改善开发人员解决编程问题的能力。
Software developers solve a diverse and wide range of problems. While software engineering research often focuses on tools to support this problem solving, the strategies that developers use to solve problems are at least as important. In this paper, we offer a novel approach for enabling developers to follow explicit programming strategies that describe how an expert tackles a common programming problem. We define explicit programming strategies, grounding our definition in prior work both within software engineering and in other professions which have adopted more explicit procedures for problem solving. We then present a novel notation called Roboto and a novel strategy tracker tool that explicitly represent programming strategies and frame executing strategies as a collaborative effort between human abilities to make decisions and computer abilities to structure process and persist information. In a formative evaluation, 28 software developers of varying expertise completed a design task and a debugging task. We found that, compared to developers who are free to choose their own strategies, developers given explicit strategies experienced their work as more organized, systematic, and predictable, but also more constrained. Developers using explicit strategies were objectively more successful at the design and debugging tasks. We discuss the implications of Roboto and these findings, envisioning a thriving ecosystem of explicit strategies that accelerate and improve developers’ programming problem solving.