Litcius/Paper detail

BoneJ2 - refactoring established research software

Richard Domander, Alessandro Felder, Michael Doube

2021Wellcome Open Research157 citationsDOIOpen Access PDF

Abstract

Research software is often developed with expedience as a core development objective because experimental results, but not the software, are specified and resourced as a project output. While such code can help find answers to specific research questions, it may lack longevity and flexibility to make it reusable. We reimplemented BoneJ, our software for skeletal biology image analysis, to address design limitations that put it at risk of becoming unusable. We improved the quality of BoneJ code by following contemporary best programming practices. These include separation of concerns, dependency management, thorough testing, continuous integration and deployment, source code management, code reviews, issue and task ticketing, and user and developer documentation. The resulting BoneJ2 represents a generational shift in development technology and integrates with the ImageJ2 plugin ecosystem.

Topics & Concepts

Code refactoringSoftware engineeringDocumentationSoftware deploymentComputer scienceFlexibility (engineering)Software developmentSoftwarePlug-inCode reviewDependency (UML)Source codeCode (set theory)Static program analysisProgramming languageStatisticsMathematicsSet (abstract data type)Cell Image Analysis TechniquesScientific Computing and Data ManagementAdvanced Neural Network Applications
BoneJ2 - refactoring established research software | Litcius