Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more

Scientific Software Design: The Object-Oriented Way Paperback – 1 Dec 2011

3.7 out of 5 stars
5 star
4 star
3 star
2 star
1 star
3.7 out of 5 stars 3 reviews from Amazon.com

See all 4 formats and editions Hide other formats and editions
Amazon Price
New from Used from
Kindle Edition
"Please retry"
Paperback, 1 Dec 2011

Man Booker International Prize 2017
A Horse Walks Into a Bar has won the Man Booker International Prize 2017. Learn more
click to open popover

Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

  • Apple
  • Android
  • Windows Phone

To get the free app, enter your mobile phone number.

Product details

Product description


'… 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

Book Description

This book concerns software design, focusing 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 final chapter explores the question of scalable execution.

See all Product description

Customer Reviews

There are no customer reviews yet on Amazon.co.uk.
5 star
4 star
3 star
2 star
1 star

Most Helpful Customer Reviews on Amazon.com (beta) (May include reviews from Early Reviewer Rewards Program)

Amazon.com: 3.7 out of 5 stars 3 reviews
1 of 2 people found the following review helpful
3.0 out of 5 stars Nice OOP approach to scientific software. Beware the compiler requirements for the examples! 1 May 2014
By A normal person - Published on Amazon.com
Format: Paperback Verified Purchase
I really like the authors approach to applying software engineering methodology to scientific software. This book is really about object oriented patterns as applied to scientific applications. I gave three stars for the examples. The book appears to focus on the object oriented Fortran. However, it does include C++ examples in the last two sections where it really matters. The problem is that many of the Fortran examples will only compile with two Fortran compilers -- gfortran and ifort will NOT work. This isn't clear from reading the book. The C++ examples are ok, but I wish that STL were used more. That means that most of us will find the Fortran examples interesting in the academic sense. It would have been better for the author to stick to C++.

This book assumes that you are familiar with Fortran (90 through 2003) and C++ templates. It also assumes that you are familiar with numerical methods. The book makes frequent use of UML. The authors make an attempt to ease the reader into the subject and bridge the gap between the older Fortran styles. Don't try to use this book for more than OOP patterns and an approach to software engineering in the scientific fields. However, there are better books that cover OOP and patterns in a generic sense that could easily be used in the sciences.
3 of 3 people found the following review helpful
5.0 out of 5 stars Excellent guidance for moving forward 14 Oct. 2012
By Dan Nagle - Published on Amazon.com
Format: Hardcover
I published a review of this book in Scientific Computing. I
read the entire text to do so.

_Scientific Software Design_ is an excellent text aimed towards
scientific programmers. The thrust of the text is how to manage
scientific software in an environment where the code is growing
in complexity, and the team developing it has diverging areas
of expertise. Object-oriented techniques are motivated as the means
to do so.

Terminology varies, and the text compares and contrasts terms
from C++, Fortran and UML. Getting the concepts right
is the important part, which the text does. The examples
show design patterns used to solve differential equations numerically
in a variety of circumstances, including parallel processing.

This book is valuable to anyone who has a large scientific code
developed over time and who is seeking a scheme for moving
the code into the future. It's also useful for someone who
wants to see complete examples in C++ and Fortran side-by-side.
I would quibble with the coding style (but I usually do).
2 of 3 people found the following review helpful
3.0 out of 5 stars Good idea, poor execution 8 July 2012
By Physics Professor - Published on Amazon.com
Format: Hardcover
I like the basic idea behind this book: the use of the methods of modern software engineering to speed up and improve the software development and V&V processes, which for scientific computing are frequently much more expensive than the cost of running the program. However, the book has a number of serious flaws.

1. The text is not very clearly written.
2. The book claims to be accessible to people from a C++ background, but it really is not. At a minimum, the book should have included an appendix on the syntax of modern Fortran (probably at the level of Fortran 95).
3. The book acknowledges that the widely used Fortran compilers are not consistent with the 2008 standard, but the authors said that they "hoped" this would be fixed by the publication date. The compiler we have, gfortran, still is not 100% compliant with Fortran 2003.
4. The programming style is abominable. For example, the authors use the class element T%t, which is meant to be the time (little t) derivative of the temperature (big T). Never mind the fact that Fortran is case insensitive! One of the big things I tell students is to use descriptive variable names, even if they are long. (Another example is "fin", which I think is either an input function, maybe an input file, or perhaps finalizes something. I always have search for the definition on some previous page when I come across "fin" in their code.)

All these faults are apparent in the first few chapters, which is as far as I got before realizing that correcting them would make the book too time- and labor-intensive to be useful as a textbook for a class I am planning to teach.
Were these reviews helpful? Let us know