Software Engineering for Science provides an in-depth collection of peer-reviewed chapters that describe experiences with applying software engineering practices to the development of scientific software. It provides a better understanding of how software engineering is and should be practiced, and which software engineering practices are effective for scientific software.
The book starts with a detailed overview of the Scientific Software Lifecycle, and a general overview of the scientific software development process. It highlights key issues commonly arising during scientific software development, as well as solutions to these problems.
The second part of the book provides examples of the use of testing in scientific software development, including key issues and challenges. The chapters then describe solutions and case studies aimed at applying testing to scientific software development efforts.
The final part of the book provides examples of applying software engineering techniques to scientific software, including not only computational modeling, but also software for data management and analysis. The authors describe their experiences and lessons learned from developing complex scientific software in different domains.
About the Editors
Jeffrey Carver is an Associate Professor in the Department of Computer Science at the University of Alabama. He is one of the primary organizers of the workshop series on Software Engineering for Science (http://www.SE4Science.org/workshops).
Neil P. Chue Hong is Director of the Software Sustainability Institute at the University of Edinburgh. His research interests include barriers and incentives in research software ecosystems and the role of software as a research object.
George K. Thiruvathukal is Professor of Computer Science at Loyola University Chicago and Visiting Faculty at Argonne National Laboratory. His current research is focused on software metrics in open source mathematical and scientific software.
Table of Contents
Section I: Areas where traditional SE techniques have been applied to science. Section II: Areas where application of SE techniques to science problems have led to new advances in SE. Section III: Ideas coming from outside both SE and science but have relevance for the intersection of the two.
Jeffrey Carver is an Associate Professor at the University of Alabama, Tuscaloosa. His research focus on improving the quality and reliability of software through the use of Empirical Software Engineering. He is an Editorial Board Member of the Empirical Software Engineering Journal, Information and Software Technology Journal, and Software Quality Journal. He regularly organizes workshops on Software Engineering for Computational Science and Engineering. Neil Chue Hong is the founding Director of the Software Sustainability Institute at the University of Edinburgh. Graduating with an MPhys in Computational Physics from the University of Edinburgh, he began his career at EPCC, becoming Project Manager there in 2003. During this time he led the Data Access and Integration projects (OGSA-DAI and DAIT), and collaborated in many e-Science projects, including the EU FP6 NextGRID project. George Thiruvathukal is a Professor at Loyola University, Chicago. He holds a Ph.D. in Computer Science from the Illinois Institute of Technology in Chicago, Illinois. He attended there from 1988-1995, where he also completed the M.S. in 1990. In industry, Dr. Thiruvathukal worked as a member of the technical staff at Tellabs and R.R. Donnelley and Sons Technical (Research) Center. where he was a software development manager working in their Metromail division, which is now a part of Experian, on advanced research and development