The increase in the importance of Research Software (including computational science and engineering software) motivates the need to identify and understand which software engineering (SE) practices are appropriate. Because of the uniqueness of the research software domain, existing SE tools and techniques developed for the business/IT community are often not efficient or effective. Appropriate SE solutions must account for the salient characteristics of the research software development environment. To identify these solutions, members of the SE community must interact with members of the research software community.
This Website presents an ongoing Workshop series, and the results of interactions between the research group and research software projects.
Jeffrey C. Carver |
Nasir U. Eisty |
Daniel S. Katz |
George K. Thiruvathukal |
Neil Chue Hong |
Selim Ciraci |
Aziz Nanthaamornphong |
Dustin Heaton |
Research in various domains increasingly depends on the development and use of research software. Software enabled research, whether numerical relativity, weather forecasting, high-energy physics, linguistics, data science, or cancer research, supports the critical needs of the world. As a result, domain researchers are devoting increasingly larger portions of their research effort to software development where it is important that they proper software engineering practices. If the software is of poor quality, then the results are less trustworthy or prone to failure in mission-critical situations. In addition, gaining scientific insights and predicting natural phenomena clearly require trustworthy results. Regarding this impact, the discipline of software engineering focuses on developing techniques and tools to assist developers in efficiently building high-quality software.
With its collaborators, the SE Research Group of the University of Alabama focuses on complex software libraries, tools, and applications to ensure the reliability and quality of the research software that it develops. We are also working to understand the differences, necessities, impacts, and barriers of applying general SE practices to research software through ongoing projects around the world. We believe that, scientific communities must adopt good SE practices.
•Carver, J., Chue Hong, N., and Thiruvhukal, G. Software Engineering for Science. CRC Press. 2016.
• Nanthaamornphong, A. and Carver, J. "Test-Driven Development in HPC Science: A Case Study." Computing in Science & Engineering, vol. 20, no. 5, pp. 98-113 Sep./Oct. 2018.
• Nanthaamornphong, A. and Carver, J. "Test-Driven Development in Scientific Software: A Survey." Software Quality Journal. Online First. Sept. 2015. (bib)
• Heaton, D. and Carver, J. "Claims about the use of software engineering practices in science: A systematic literature review" Information and Software Technology. Volume 67. p. 207-219. DOI: 10.1016/j.infsof.2015.07.011. 2015 (bib)
• Nanthaamornphong, A., Carver, J., Morris, K. and Filippone, S. "Extracting UML Class Diagrams from Object-Oriented Fortran: ForUML" Scientific Programming. Volume 2015. Article ID 421816. DOI: 10.1155/2015/421816. 2015 (bib)
• Nanthaamornphong, A., Carver, J., Morris, K., Michelsen, H., Rouson, D. "Building CLiiME via Test-Driven Development: A Case Study" Computing in Science and Engineering. May/June 2014, p. 36-46. DOI: 10.1109/MCSE.2014.33 (bib)
• Carver, J. "Development of a Mesh Generation Code with a Graphical Front-End: A Case Study" Journal of Organizational and End-User Computing. 23(4):1-16, 2011
• Kendall, R., Carver, J., Fisher, D., Henderson, D., Mark, A., Post, D., Rhoades, C. and Squires, S. "Development of a Weather Forecasting Code: A Case Study" IEEE Software, 25(4): 59-65. July/August 2008. (bib)
• Basili, V., Carver, J., Cruzes, D., Hochstein, L., Hollingsworth, J., Shull, F. and Zelkowitz, M. "Understanding the High-Performance-Computing Community: A Software Engineer's Perspective" IEEE Software, 25(4): 29-36. July/August 2008. (bib)
• Carver, J., Hochstein, L., Kendall, R., Nakamura, T. Zelkowitz, M., Basili, V. and Post, D. "Observations about Software Development for High End Computing" CTWatch Quarterly. 2(4A): 33-37. November, 2006. (Invited Paper).
• Hochstein, L., Nakamura, T., Basili, V., Asgari, S., Zelkowitz, M., Hollingsworth, J., Shull, F., Carver, J., Voelp, M., Zazworka, N., and Johnson, P. "Experiments to Understand HPC Time to Development" CTWatch Quarterly, 2(4A): 24-32. November, 2006. (Invited Paper).
• Eisty, N., Thiruvathukal, G., Carver, J. "Use of Software Process in Research Software Development: A Survey" In Proceedings of the Evaluation and Assessment on Software Engineering (EASE '19). Copenhagen, Denmark, April 15 - 17, 2019.
• Eisty, N., Thiruvathukal, G., Carver, J. "A Survey of Software Metric Use in Research Software Development" Proceedings of the 14th International Conference on eScience. Amsterdam, Netherlands, Oct 29 - Nov 1, 2018.
• Carver, J., Kendall, R., Squires, S. and Post, D. "Software Development Environments for Scientific and Engineering Software: A Series of Case Studies" Proceedings of the 29th International Conference on Software Engineering. Minneapolis, USA. May 23-25, 2007. p. 550-559.
• Shull, F., Carver, J. , Hochstein, L., and Basili, V. " Empirical Study Design in the Area of High Performance Computing (HPC)." Proceedings of the 2005 International Symposium on Empirical Software Engineering (ISESE). Nov. 17-18, 2005. Noosa Heads, Australia. p. 305-314.
• Hochstein, L., Carver, J., Shull, F., Asgari, S., Basili, V., Hollingsworth, J., and Zelkowitz, M. " Parallel Programmer Productivity: A Case Study of Novice Parallel Programmers." Proceedings of SuperComputing 2005. (Awarded Best Paper By A Student Led Author) [© ACM, (2005). This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version is available at http://doi.acm.org/10.1109/SC.2005.53].
• Hochstein, L., Basili, V., Zelkowitz, M., Hollingsworth, J., and Carver, J. "Combining self-reported and automatic data to improve effort measurement" Proceedings of Joint 10th European Software Engineering Conference and 13th ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2005). [© ACM, (2005). This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version is available at http://doi.acm.org/10.1145/1081706.1081762]
• Carver, J., Chue Hong, N., and Ciraci, S. "The Fourth International Workshop on Software Engineering for HPC in Computational Science and Engineering." Computing in Science & Engineering. 19(2):91-95. March 2017.
• Carver, J., Chue Hong, N., and Ciraci, S. "Software Engineering for CSE." Scientific Programming. Volume 2015. Article ID 591562. DOI: 10.1155/2015/591562
• Carver, J. and Epperly, T. "Software Engineering for Computational Science and Engineering [Guest editors' introduction]." Computing in Science and Engineering. 16(3):6-9. May/June 2014.
• Carver, J., Heaton, D., Hochstein, L., Bartlett, R. "Self-Perceptions about Software Engineering: A Survey of Scientists and Engineers." Computing in Science and Engineering. 15(1): 7-11. Jan/Feb 2013.
• Carver, J. "Software Engineering for Computational Science and Engineering." Computing in Science and Engineering. 14(2):8-11. March/Apr 2012.
• Carver, J. "Report from the Second International Workshop on Software Engineering for Computational Science and Engineering (SE-CSE 09)." Computing in Science and Engineering. 11(6):14-19. Nov/Dec 2009.
• Carver, J. First International Workshop on Software Engineering for Computational Science and Engineering." Computing in Science and Engineering. 11(2): 8-11. March 2009.
• Carver, J. Post-Workshop report for the Third International Workshop on Software Engineering for High Performance Computing Applications (SE-HPC07)." ACM Software Engineering Notes. 32(5): 38-43, Sept. 2007.
• Halverson, C. and Carver, J. "Climbing the Plateau: Getting from Study Design to Data that Means Something." Proceedings of Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU) 2009. [Held during SPLASH2009]. October 2009.
• Carver, J. "SE-CSE09: The Second International Workshop on Software Engineering for Computational Science and Engineering." Proceedings of the 31st International Conference on Software Engineering (Companion Volume). May 2009. Vancouver, Canada. p. 484-485.
• Carver, J. "SE-CSE 2008: The First International Workshop on Software Engineering for Computational Science and Engineering." Proceedings of the 30th International Conference on Software Engineering. May 13, 2008. Leipzig, Germany. p. 1071. [© ACM, (2008). This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version is available at http://doi.acm.org/10.1145/1370175.1370252]
• Kendall, R., Post, D., Carver, J., Henderson, D. and Fisher, D. "A Proposed Taxonomy for Software Development Risks for High-Performance Computing (HPC) Scientific/Engineering Applications" Technical Note CMU/SEI-2006-TN-039. Software Engineering Institute, Carnegie Melon University. January, 2007.
• Carver, J. "Third International Workshop on Software Engineering for High Performance Computing (HPC) Applications." Proceedings of the 29th International Conference on Software Engineering - Companion Volume. Minneapolis, USA. May 25, 2007. p. 147.
• Kendall, R., Post, D., Carver, J., and Squires, S. "Case Study of the Eagle Code Project." Los Alamos Technical Report, LA-UR-06-1092. 2006.
• Asgari, S., Hochstein, L., Basili, V., Carver, J., Hollingsworth, J., Shull, F., Zelkowitz, M. "Generating Testable Hypotheses from Tacit Knowledge for High Productivity Computing"2nd Workshop on Software Engineering and High Performance Computing (held at ICSE 2005).
• Kendall, R., Carver, J., Mark, A., Post, D., Squires, S., and Shaffer, D. "Case Study of the Hawk Development Project " Los Alamos Technical Report, LA-UR-05-9011. 2005.
• Carver, J., Asgari, S., Basili, V., Hochstein, L., Hollingsworth, J., Shull, F., and Zelkowitz, M. "High Productivity Computing Systems (HPCS): Empirical Studies on Development Time." Poster. In Proceedings: Volume II: Poster and Fast Abstract Sessions of the 2004 International Symposium on Empirical Software Engineering. Redondo Beach, CA. August 2004.
• Carver, J., Asgari, S., Basili, V., Hochstein, L., Hollingsworth, J., Shull, F., and Zelkowitz, M "Studying Code Development for High Performance Computing: The HPCS Program." Proceedings of the Workshop on Software Engineering and High Performance Computing Applications (held at ICSE 2004). Edinburgh, Scotland.
• Asgari, S., Basili, V., Carver, J., Hochstein, L., Hollingsworth, J., Shull, F., and Zelkowitz, M. "Challenges in Measuring HPCS Learner Productivity in an Age of Ubiquitous Computing." Proceedings of the Workshop on Software Engineering and High Performance Computing Applications (held at ICSE 2004). Edinburgh, Scotland.
• Basili, V., Asgari, S., Carver, J., Hochstein, L., Hollingsworth, J., Shull, F., Zelkowitz, M. " A Pilot Study to Evaluate Development Effort for High Performance Computing" University of Maryland Technical Report CS-TR-4588. April 2004.
One important thrust of work in this area is an ongoing workshop series with the goal of uniting scientists and software engineers to discuss important problems, propose solutions, and set an agenda for resaerch needs. The Workshops page contains links to the individual pages for each workshop.
We offer tutorials on Code Review Process, Test-Driven Development, and Testing. Visit our Tutorials page for more infomation.
Here is a collection of related papers. Please visit our Paper-hub page to see the list of papers.
Please contact Jeffrey Carver for more information.