Software engineering principles to improve quality and performance of R software

被引:2
作者
Russell, Seth [1 ]
Bennett, Tellen D. [1 ,2 ]
Ghosh, Debashis [1 ,3 ]
机构
[1] Univ Colorado, Data Sci Patient Value, Anschutz Med Campus, Aurora, CO 80045 USA
[2] Univ Colorado, Pediat Crit Care, Sch Med, Aurora, CO USA
[3] Colorado Sch Publ Hlth, Dept Biostat & Informat, Aurora, CO USA
关键词
Unit testing; Profiling; Optimization; Software engineering; R language; Statistical computing; Case study; Reproducible research; Data science;
D O I
10.7717/peerj-cs.175
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
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.
引用
收藏
页数:26
相关论文
共 52 条
[1]  
Abrahms J., 2016, BIG O NOTATION EXPLA
[2]  
Agruss C, 2000, VIITATTU, V4, P2009
[3]  
Allaire J., 2018, RMARKDOWN DYNAMIC DO
[4]  
[Anonymous], 2018, The Definitive Guide
[5]  
[Anonymous], PeerJ Preprints, DOI [DOI 10.7287/PEERJ.PREPRINTS.3188V1, 10.7287/peerj.preprints.3188v1]
[6]  
[Anonymous], 2015, CURRICULUM GUIDELINE
[7]  
[Anonymous], 2018, PERF TIPS
[8]  
[Anonymous], UBIQUITY
[9]  
[Anonymous], 2001, The Agile Alliance
[10]  
[Anonymous], 1968, COMMUNICATIONS ACM