Scientific Software Design

The Object-Oriented Way

Scientific Software Design

This book concerns software design. Although many current discussions of scientific programming focus on scalable performance, this book focuses on scalable design. The authors analyze how the structure of a package determines its developmental complexity according to such measures as bug search times and documentation information content. The work presents arguments for why these issues impact solution cost and time more than does scalable performance. The final chapter explores the question of scalable execution and shows how scalable design relates to scalable execution. The book's focus is on program organization, which has received considerable attention in the broader software engineering community, where graphical description standards for modeling software structure and behavior have been developed by computer scientists. These discussions might be enriched by engineers who write scientific codes. This book aims to bring such scientific programmers into discussion with computer scientists. The authors do so by introducing object-oriented software design patterns in the context of scientific simulation.


"This book makes a good case for the usefulness of design patterns and object-oriented programming for maintainable code, but disregards runtime performance and scienti!c of those books that I wish I’d read earlier in my programming career." - Ramses van Zon, Computing in Science and Engineering, Jan/Feb 2012

"Scientific software must be consciously designed to grow with a research program and the hardware that supports the research program. And how to do that is precisely what the authors in this book have shown." - Dan Nagel, Scientific Programming