Producing secure software is challenging. The poor usability of security APIs makes this even harder. Many recommendations have been proposed to support developers by improving the usability of cryptography libraries and APIs; rooted in wider best practice guidance in software engineering and API design. In this SLR, we systematize knowledge regarding these recommendations. We identify and analyze 65 papers spanning 45 years, offering a total of 883 recommendations.We undertake a thematic analysis to identify 7 core ways to improve usability of APIs. We find that most of the recommendations focus on helping API developers to construct and structure their code and make it more usable and easier for programmers to understand. There is less focus, however, on documentation, writing requirements, code quality assessment and the impact of organizational software development practices. By tracing and analyzing paper ancestry, we map how this knowledge becomes validated and translated over time.We find evidence that less than a quarter of all API usability recommendations are empirically validated, and that recommendations specific to usable security APIs lag even further behind in this regard.
翻译:制作安全软件具有挑战性。安全性动保单的可用性差使这一点更加困难。许多建议都是为了支持开发者,办法是改进加密图书馆和API的可用性;植根于软件工程和API设计方面更广泛的最佳做法指导。在这个SRR中,我们将有关这些建议的知识系统化。我们确定和分析了长达45年的65份文件,共提出883项建议。我们进行了专题分析,以确定提高API可用性的7个核心方法。我们发现,大多数建议的重点是帮助API开发者构建和构建其代码,使之更便于程序员理解。然而,对于文件、写作要求、代码质量评估和组织软件开发做法的影响,没有那么重视。我们通过追踪和分析纸本研究,我们摸清了这一知识如何随着时间的推移得到验证和翻译。我们发现,只有不到四分之一的API可使用性建议得到了经验上的验证,在这方面,关于使用安全性动保单的具体建议也远远落后。