Software Engineering for Science

Scientific research increasingly depends on the development and use of scientific software. Research in this domain, whether numerical relativity, weather forecasting, high-energy physics or cancer research, needs to support our world’s critical needs. As a result, scientists and engineers 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 NCSA Gravity Group focuses on complex software libraries, tools, and applications to ensure the reliability and quality of the scientific software that it develops. We are also working to understand the differences, necessities, impacts, and barriers of applying general software engineering practices to scientific software through ongoing projects at NCSA. We believe that, scientific communities must adopt good Software Engineering practices.

Project Members: Gabrielle Allen, Nasir Eisty, Roland Haas

Collaborators: Jeff Carver (U. Alabama), Daniel Katz (NCSA)