Toward Research Software Categories

Wilhelm Hasselbring,Stephan Druskat,Jan Bernoth,Philine Betker,Michael Felderer,Stephan Ferenz,Anna-Lena Lamprecht,Jan Linxweiler,Bernhard Rumpe
2024-04-23
Abstract:Research software has been categorized in different contexts to serve different goals. We start with a look at what research software is, before we discuss the purpose of research software categories. We propose a multi-dimensional categorization of research software. We present a template for characterizing such categories. As selected dimensions, we present our proposed role-based, developer-based, and maturity-based categories. Since our work has been inspired by various previous efforts to categorize research software, we discuss them as related works. We characterize all these categories via the previously introduced template, to enable a systematic comparison.
Software Engineering
What problem does this paper attempt to address?
The problem that this paper attempts to solve is: How to effectively classify Research Software in order to better understand different types of research software and their specific quality requirements. Through this classification, guidance and support can be provided for the development, use, teaching, evaluation, and funding of research software. ### Core issues of the paper 1. **Define research software**: - Research software refers to the software created during the research process or designed for research purposes. Different from general - purpose commercial software, it has unique requirements. 2. **Purposes of classification**: - Provide a systematic framework to understand different types of research software and their quality requirements. - Provide a basis for institutions to develop guidelines and checklists. - Recommend appropriate software engineering methods. - Design teaching/education programs suitable for different types of research software. - Help stakeholders (such as research software engineers and their management) better understand the types of software they develop. - Better evaluate existing software to decide whether to reuse it. - Define appropriate funding schemes for research funding agencies. - Define appropriate metadata tags to achieve FAIR (Findable, Accessible, Interoperable, Reusable) research software. - Provide a classification framework for RSE research. ### Classification dimensions The paper proposes a multi - dimensional classification system, mainly classified from the following dimensions: 1. **Role - Based Categorization**: - **Modeling, Simulation and Data Analysis**: Including numerical modeling, agent - based modeling, data analysis, comprehensive analysis, and scientific visualization, etc. - **Proof - of - Concept Software**: Used to prove the feasibility of new concepts, methods or models. - **Research Infrastructure Software**: Such as experimental control and monitoring software, data collection tools, workflows and frameworks, libraries, laboratory notebooks, data management and software management, etc. 2. **Developer - Based Categorization**: - **Individual Researchers**: Such as doctoral students or post - doctoral fellows. - **Local Research Groups**. - **Project Teams**: Multiple research groups cooperate. - **Communities**: Communities around specific research topics. - **Contractors**: Professional software companies develop software for researchers. 3. **Maturity - Based Categorization**: - **Research Data Processes**: Analytical codes that capture research processes and methods. - **Novel Methods and Models**: Prototype tools that demonstrate new ideas, methods or models. - **Accepted Methods and Models**: Research software infrastructures that capture widely accepted and used ideas, methods and models. ### Conclusion By multi - dimensionally classifying research software, the paper aims to promote the effective development, recognition and utilization of research software, especially in the research community. This classification not only helps to develop specific development guidelines, but also helps stakeholders better understand the types of software they develop, so as to make more informed decisions. In addition, the classification can also help evaluate external software, improve the recognition of research software, and ensure its long - term maintenance and development.