Software Project Management and Quality Engineering Practices for Complex, Coupled Multiphysics, Massively Parallel Computational Simulations: Lessons Learned From ASCI

Many institutions are now developing large-scale, complex, coupled multiphysics computational simulations for massively parallel platforms for the simulation of the performance of nuclear weapons and certification of the stockpile, and for research in climate and weather prediction, magnetic and inertial fusion energy, environmental systems, astrophysics, aerodynamic design, combustion, biological and biochemical systems, and other areas. The successful development of these simulations is aided by attention to sound software project management and software engineering. We have developed “lessons learned” from a set of code projects that the Department of Energy National Nuclear Security Agency has sponsored to develop nuclear weapons simulations over the last 50 years. We find that some, but not all, of the software project management and development practices (rather than processes) commonly employed for non-technical software add value to the development of scientific software and we identify those that we judge add value. Another key finding, consistent with general software industry experience, is that the optimal project schedule and resource level are solely determined by the requirements once the requirements are fixed.

[1]  Gregory A. Moses,et al.  Inertial confinement fusion , 1982 .

[2]  Stan Rifkin Is Process Improvement Irrelevant to Produce New Era Software? , 2002, ECSQ.

[3]  Watts S. Humphrey Winning with Software: An Executive Strategy , 2001 .

[4]  A. Cockburn,et al.  Agile Software Development: The People Factor , 2001, Computer.

[5]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[6]  James A. Highsmith,et al.  Adaptive Software Development: A Collaborative Approach to Managing Complex Systems , 1999 .

[7]  T. Capers Jones,et al.  Estimating software costs , 1998 .

[8]  Rob Thomsett Radical Project Management , 2002 .

[9]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach (McGraw-Hill Series in Computer Science) , 2004 .

[10]  R. Pressman Software Engineering: a Practioner''s approach , 1987 .

[11]  Patrick Knupp,et al.  Code Verification by the Method of Manufactured Solutions , 2000 .

[12]  Frederik D. Wiersema,et al.  The Discipline of Market Leaders-Choose your customers , 2015 .

[13]  Tom DeMarco,et al.  Peopleware: Productive Projects and Teams , 1987 .

[14]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[15]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[16]  Richard Mateosian Managing software projects , 2003, IEEE Micro.

[17]  Robert B. Laughlin,et al.  The physical basis of computability , 2002, Computing in Science & Engineering.

[18]  Witold Pedrycz,et al.  Software Engineering: An Engineering Approach , 1999 .

[19]  John F. Hubbard Binary code reuse in a Linux environment , 2002 .

[20]  James D. Herbsleb,et al.  Software quality and the Capability Maturity Model , 1997, CACM.

[21]  Darius Karkaria Independent Verification and Validation: a Life Cycle Engineering Process for Quality Software, by R. O. Lewis, Wiley, 1992 (Book Review) , 1993, Softw. Test. Verification Reliab..

[22]  Patrick J. Roache,et al.  Verification and Validation in Computational Science and Engineering , 1998 .

[23]  Alistair Cockburn,et al.  Agile Software Development: The Business of Innovation , 2001, Computer.

[24]  Barry W. Boehm,et al.  The Agile Methods Fray , 2002, Computer.

[25]  Robert O. Lewis,et al.  Independent verification & validation: a life cycle engineering process for quality software , 1992 .

[26]  J. K. Buckle,et al.  Managing Software Projects , 1977 .

[27]  Dwayne Phillips,et al.  The Software Project Manager's Handbook: Principles That Work at Work , 2004 .

[28]  Steve McConnell,et al.  Software Project Survival Guide , 1997 .

[29]  Carole F. Sagun On Deadline , 1992 .

[30]  Charles R. Symons,et al.  Function Point Analysis: Difficulties and Improvements , 1988, IEEE Trans. Software Eng..

[31]  Harold C. Edwards,et al.  Parallel adaptive application development using the SIERRA framework , 2001 .

[32]  Gerard O’Regan,et al.  The Capability Maturity Model , 2002 .

[33]  Niels Bohr,et al.  INERTIAL CONFINEMENT FUSION , 2006 .

[34]  Dwayne Phillips The software project manager's handbook , 1998 .

[35]  Eric Verzuh,et al.  The Fast Forward MBA in Project Management , 1999 .

[36]  Tom DeMarco,et al.  Peopleware (2nd ed.): productive projects and teams , 1999 .

[37]  Watts S. Humphrey,et al.  Introduction to the Team Software Process , 1999 .

[38]  Timothy G. Trucano,et al.  Verification and validation. , 2005 .