To improve software development methods and tools for research software, we first need to understand the current state of the practice. Therefore, we have developed a methodology for assessing the state of the software development practices for a given research software domain. For each domain we wish to answer questions such as: i) What artifacts (documents, code, test cases, etc.) are present? ii) What tools are used? iii) What principles, process and methodologies are used? iv) What are the pain points for developers? v) What actions are used to improve qualities like maintainability and reproducibility? To answer these questions, our methodology prescribes the following steps: i) Identify the domain; ii) Identify a list of candidate software packages; iii) Filter the list to a length of about 30 packages; iv) Gather source code and documentation for each package; v) Collect repository related data on each software package, like number of stars, number of open issues, number of lines of code; vi) Fill in the measurement template (the template consists of 108 questions to assess 9 qualities (including the qualities of installability, usability and visibility)); vii) Interview developers (the interview consists of 20 questions and takes about an hour); viii) Rank the software using the Analytic Hierarchy Process (AHP); and, ix) Analyze the data to answer the questions posed above. A domain expert should be engaged throughout the process, to ensure that implicit information about the domain is properly represented and to assist with conducting an analysis of the commonalities and variabilities between the 30 selected packages. Using our methodology, spreadsheet templates and AHP tool, we estimate (based on our experience with using the process) the time to complete an assessment for a given domain at 173 person hours.
翻译:为了改进软件开发方法和研究软件的工具,我们首先需要了解当前做法的目前状况。因此,我们制定了评估特定研究软件域软件开发做法状况的方法。我们希望回答的问题包括:(一) 存在哪些工艺品(文件、代码、测试案例等)?(二) 使用哪些工具?(三) 使用哪些原则、程序和方法?(四) 开发者有什么痛苦点?(五) 使用哪些行动来提高诸如维护性和可复制性等质量?为了回答这些问题,我们的方法规定了以下步骤:(一) 确定域域;(二) 确定一个候选软件包的清单;三) 将清单过滤到大约30个软件包的长度;(四) 收集每个软件包的源代码和文件;(五) 收集每个软件包的储存数据,如星数、公开问题的数量、提供的代码数量;(六) 填写测量模板(基于评估9个质量(包括安装质量、可用性和可见度)之间的问题,我们的方法规定了以下步骤:(七) 正确确定一个候选软件软件包的清单;(六) 使用一个为期20小时的访谈,使用一个流程;以及一个对一个内部的版本。