一句话:通过混合方法研究揭示开发者选择代码实现方案时的决策类型、考量、过程与专长,发现实现决策需持续关注高层设计。
该研究关注软件开发中一个此前较少被研究的问题:在面对多种潜在替代方案时,开发者如何选择用某一种具体方式在代码中实现某个行为,作者称之为“实现设计决策”。研究采用混合方法,收集了 46 份问卷回答,并对专业开发者进行了 14 次半结构化访谈,围绕决策类型、考量因素、决策过程与专长展开分析。结果显示,实现设计决策并非高层设计(如需求与架构)的自然产物,而是要求开发者持续监控这些高层设计选择;同时,开发者的实现决策过程具有一致的一般结构,但不存在完全相同的单一过程。作者进一步讨论了这些发现对研究、教育与实践的启示,包括如何教授开发者进行实现设计决策。
Decision-making is a key software engineering skill. Developers constantly make choices throughout the software development process, from requirements to implementation. While prior work has studied developer decision-making, the choices made while choosing what solution to write in code remain understudied. In this mixed-methods study, we examine the phenomenon where developers select one specific way to implement a behavior in code, given many potential alternatives. We call these decisions implementation design decisions. Our mixed-methods study includes 46 survey responses and 14 semi-structured interviews with professional developers about their decision types, considerations, processes, and expertise for implementation design decisions. We find that implementation design decisions, rather than being a natural outcome from higher levels of design, require constant monitoring of higher level design choices, such as requirements and architecture. We also show that developers have a consistent general structure to their implementation decision-making process, but no single process is exactly the same. We discuss the implications of our findings on research, education, and practice, including insights on teaching developers how to make implementation design decisions.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{LiangAKKL23,
title = {A Qualitative Study on the Implementation Design Decisions of Developers},
author = {Jenny T. Liang and Maryam Arab and Minhyuk Ko and Amy J. Ko and Thomas D. LaToza},
booktitle = {ICSE},
year = {2023},
doi = {10.1109/icse48619.2023.00047}
}