Internet of Things (IoT) systems allow software to directly interact with the physical world. Recent IoT failures can be attributed to recurring software design flaws, suggesting IoT software engineers may not be learning from past failures. We examine the use of failure stories to improve IoT system designs. We conducted an experiment to evaluate the influence of failure-related learning treatments on design decisions. Our experiment used a between-subjects comparison of novices (computer engineering students) completing a design questionnaire. There were three treatments: a control group (N=7); a group considering a set of design guidelines (N=8); and a group considering failure stories (proposed treatment, N=6). We measured their design decisions and their design rationales. All subjects made comparable decisions. Their rationales varied by treatment: subjects treated with guidelines and failure stories made greater use of criticality as a rationale, while subjects exposed to failure stories more frequently used safety as a rationale. Building on these findings, we suggest several research directions toward a failure-aware IoT engineering process.
翻译:物联网(IoT)系统允许软件直接与物理世界交互。最近的IoT故障可以归因于反复出现的软件设计缺陷,这表明IoT软件工程师可能没有从过去的故障中学习到经验。我们研究使用故障史故事来改进IoT系统设计。我们进行了实验,以评估故障相关的学习处理对设计决策的影响。我们的实验使用了一种处理的方法,比较了初学者(计算机工程学生)完成设计问卷的情况。处理组包括:控制组(N=7),考虑一组设计指南的组(N=8)和考虑故障史故事的组(提出的处理方式,N=6)。我们测量了他们的设计决策及其设计理由。所有受试者做出了可比较的决策。根据处理方式,他们的理由有所不同:被指导方案和故障史故事处理方式组的受试者更多地使用临界性作为理由,而接触故障史故事的受试者更频繁地使用安全作为理由。在此基础上,我们提出了一些研究方向,旨在建立故障感知的IoT工程流程。