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

Read more

Summary

Introduction

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]

Objectives
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call