Software quality attributes
The software engineering community has defined universally applicable software quality attributes. Due to the trade-offs between software quality attributes, priorities need to be set for each software product. Likewise, depending on the application of the scientific software, the authors should prioritize different quality attributes. For example, in the world of big data, performance efficiency gains importance, while the handling of sensitive data requires that the analysis software is easily portable to the safe servers.
The bioinformatics community seems to struggle to implement the guidelines from the literature (10.7717/peerj-cs.839), (see section A review on software development practices in bioinformatics). Updating software development practices or gaining a good understanding of new concepts is not trivial. Scientific software developers must choose between various good practices depending on whether they aim to develop a software tool, a data analysis pipeline, or some other application (10.1016/j.jss.2020.110848). Importantly, the trade-offs between software quality attributes (e.g., performance vs. security, ISO/IEC 25010) should be recognized and adequately prioritized. As bioinformaticians are rarely familiar with the meaning and importance of these attributes (10.1109/CSEET.2009.44, 10.48550/arXiv.1804.01954, 10.1109/MS.2008.85), we present an overview and short descriptions in Table 1.
Based on the literature findings and our experiences, we think that functional suitability and performance are implicitly prioritized in bioinformatics, while other attributes, such as maintainability, portability, and reliability, are often neglected.
Through implicit prioritization, most software is developed as a prototype, even when the goal is to create a long-term product (10.1038/d41586-022-01901-x). By learning about the attributes, professionals can make more educated choices about the language selection, the tools to be used, and practices to be established for each project separately.
Software quality attributes and their description
Below is a high-level overview of the software quality attributes of the ISO 25010 standard.
Attribute | Description |
---|---|
Functional Suitability | Whether the software functions as expected. |
Performance Efficiency | Characterizes how well does the software product utilizes computational resources. |
Compatibility | Describes how well the software can work together with other components, e.g. other tools. |
Usability | The quality of the software from the perspective of the experience of the user. |
Reliability | A software product to behave as expected under pressure, tolerate failures, and recover quickly. |
Security | A software product to protect information and ensure authorized access only. |
Maintainability | The ease at which new features can be added and bugs can be fixed. |
Portability | The ease of moving the system onto a different environment, such as installing to a new device. |