Scientific Software 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 discusses object-oriented programming in Fortran 2003 and C++
- This text is designed to help students and professionals solve complex computer problems
- Each chapter has a set of exercise problems
Reviews & endorsements
'… it's one of those books that I wish I'd read earlier in my programming career. I found many design patterns familiar simply because I'd seen them before in my own code. I'll likely turn to this book in the future whenever I suspect a program design problem might be solved already.' Computing in Science and Engineering
'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 these authors in this book have shown.' Scientific Programming
Product details
March 2014Paperback
9781107415331
406 pages
254 × 178 × 21 mm
0.7kg
119 b/w illus. 9 tables 23 exercises
Available
Table of Contents
- Preface
- Part I. The Tao of Scientific OOP:
- 1. Development costs and complexity
- 2. The object-oriented way
- 3. Scientific OOP
- Part II. SOOP to Nuts and Bolts:
- 4. Design patterns basics
- 5. The object pattern
- 6. The abstract calculus pattern
- 7. The strategy and surrogate patterns
- 8. The puppeteer pattern
- 9. Factory patterns
- Part III. Gumbo SOOP:
- 10. Formal constraints
- 11. Mixed-language programming
- 12. Multiphysics architectures.