This book will introduce techniques and tools for software design, development, testing, and performance analysis for use in computational science. The book will emphasize object-oriented programming (OOP), object-oriented design patterns, and parallel programming in modern Fortran, including mixed Fortran/C/C++. Extensive code examples will be incorporated into the text and will also be available on GitHub with portable, automated build scripts for students to compile and execute. All examples will work with free, open-source software that will be packaged in a companion virtual machine. Several video tutorials will also be posted to augment the book with lectures.