Abstract
Technical Debt (TD) is a software engineering metaphor that resembles the production of poor-quality code to going into debt. In particular, a development team that “ saves ” effort while developing by not removing inefficiencies, has to “ pay-back ” with interest, in the form of additional maintenance costs (i.e., fixing bugs, adding features, etc.) due to the poor maintainability of the developed code. Although maintainability assurance is an established practice in traditional software development (lately known as TD management), it has still not attracted the attention of scientific software developers; i.e., researchers writing code and developing tools for purely research purposes. Nevertheless, based on the literature and practice, maintainability seems to be ranked as an important key-driver for the development of such applications; since the effort needed to update the code before the experimentation (e.g., executing a simulation) is common and should not receive low priority. In this paper, we present the outcome of a 3-year research project on Technical Debt Management (TDM) for scientific software development. The outcome of the project is a framework (termed: EXA2PRO TDM framework) and an accompanying platform for assisting scientific software developers in managing the TD of their applications. The framework is a collection of methods tailored for the mainstream programming languages of scientific software development, which have been empirically validated through five pilot applications. The majority of the EXA2PRO framework suggestions have been applied by scientific software developers and eased future maintenance activities.
Highlights
Scientific software development refers to the process of developing software applications for research purposes [1]
Assessment of refactoring opportunities in two ways: conceptual assessment and technical debt (TD) assessment The results are organized into three subsections, based on the steps followed to locate and mitigate inefficiencies
A TD quantification at the design level: In particular, long and non-cohesive files and procedures which are in need of refactoring are identified through excessive metric values
Summary
Scientific software development refers to the process of developing software applications for research purposes (e.g., simulations, large-scale data analytics, etc.) [1]. The execution of such applications is so time-consuming that they are usually executed on High-Performance Computing (HPC) infrastructures [2]. TECHNICAL DEBT MANAGEMENT The technical debt (TD) metaphor was introduced in 1992 by Ward Cunningham [9] Cunningham used this analogy to emphasize the consequences of shipping ‘‘not-quite right’’ code (code with inefficiencies) for the first time. The presence of these inefficiencies hinders future software maintenance acting as interest that needs to be paid [9]. The primary benefit of the TD metaphor is that it serves as a channel of communication between technical and non-technical stakeholders [10]
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.