Software engineering principles to improve quality and performance of R software

Today’s computational researchers are expected to be highly proficient in using software to solve a wide range of problems ranging from processing large datasets to developing personalized treatment strategies from a growing range of options. Researchers are well versed in their own field, but may l...

Full description

Bibliographic Details
Main Authors: Seth Russell, Tellen D. Bennett, Debashis Ghosh
Format: Article
Language:English
Published: PeerJ Inc. 2019-02-01
Series:PeerJ Computer Science
Subjects:
Online Access:https://peerj.com/articles/cs-175.pdf
_version_ 1818017138353373184
author Seth Russell
Tellen D. Bennett
Debashis Ghosh
author_facet Seth Russell
Tellen D. Bennett
Debashis Ghosh
author_sort Seth Russell
collection DOAJ
description Today’s computational researchers are expected to be highly proficient in using software to solve a wide range of problems ranging from processing large datasets to developing personalized treatment strategies from a growing range of options. Researchers are well versed in their own field, but may lack formal training and appropriate mentorship in software engineering principles. Two major themes not covered in most university coursework nor current literature are software testing and software optimization. Through a survey of all currently available Comprehensive R Archive Network packages, we show that reproducible and replicable software tests are frequently not available and that many packages do not appear to employ software performance and optimization tools and techniques. Through use of examples from an existing R package, we demonstrate powerful testing and optimization techniques that can improve the quality of any researcher’s software.
first_indexed 2024-04-14T07:23:13Z
format Article
id doaj.art-068eabbe91d84beda69340791b178e9c
institution Directory Open Access Journal
issn 2376-5992
language English
last_indexed 2024-04-14T07:23:13Z
publishDate 2019-02-01
publisher PeerJ Inc.
record_format Article
series PeerJ Computer Science
spelling doaj.art-068eabbe91d84beda69340791b178e9c2022-12-22T02:06:06ZengPeerJ Inc.PeerJ Computer Science2376-59922019-02-015e17510.7717/peerj-cs.175Software engineering principles to improve quality and performance of R softwareSeth Russell0Tellen D. Bennett1Debashis Ghosh2University of Colorado Data Science to Patient Value, University of Colorado Anschutz Medical Campus, Aurora, CO, USAUniversity of Colorado Data Science to Patient Value, University of Colorado Anschutz Medical Campus, Aurora, CO, USAUniversity of Colorado Data Science to Patient Value, University of Colorado Anschutz Medical Campus, Aurora, CO, USAToday’s computational researchers are expected to be highly proficient in using software to solve a wide range of problems ranging from processing large datasets to developing personalized treatment strategies from a growing range of options. Researchers are well versed in their own field, but may lack formal training and appropriate mentorship in software engineering principles. Two major themes not covered in most university coursework nor current literature are software testing and software optimization. Through a survey of all currently available Comprehensive R Archive Network packages, we show that reproducible and replicable software tests are frequently not available and that many packages do not appear to employ software performance and optimization tools and techniques. Through use of examples from an existing R package, we demonstrate powerful testing and optimization techniques that can improve the quality of any researcher’s software.https://peerj.com/articles/cs-175.pdfUnit testingProfilingOptimizationSoftware engineeringR languageStatistical computing
spellingShingle Seth Russell
Tellen D. Bennett
Debashis Ghosh
Software engineering principles to improve quality and performance of R software
PeerJ Computer Science
Unit testing
Profiling
Optimization
Software engineering
R language
Statistical computing
title Software engineering principles to improve quality and performance of R software
title_full Software engineering principles to improve quality and performance of R software
title_fullStr Software engineering principles to improve quality and performance of R software
title_full_unstemmed Software engineering principles to improve quality and performance of R software
title_short Software engineering principles to improve quality and performance of R software
title_sort software engineering principles to improve quality and performance of r software
topic Unit testing
Profiling
Optimization
Software engineering
R language
Statistical computing
url https://peerj.com/articles/cs-175.pdf
work_keys_str_mv AT sethrussell softwareengineeringprinciplestoimprovequalityandperformanceofrsoftware
AT tellendbennett softwareengineeringprinciplestoimprovequalityandperformanceofrsoftware
AT debashisghosh softwareengineeringprinciplestoimprovequalityandperformanceofrsoftware