Virtual prototyping has established its place as an important tool in modern engineering design, and one increasingly hears about software prototypes as a means of exploring the behavior of natural systems as well as engineered products and systems. While an extensive body of literature addresses the technical aspects of such software, guides for the specialized aspects of technical, project, or program management relevant to such projects are few in number. In the present text, the authors have drawn on extensive personal experience in computational science and engineering to provide a collection of specialized principles and recommended practices for the software engineering and management aspects of virtual prototyping projects.
Most of the material is derived from experience with the US Department of Defense (DoD) Computational Research and Engineering Acquisition Tools and Environments (CREATE) element of the High Performance Computing Modernization Program (HPCMP). Accordingly, the technical examples in this text generally focus on technology areas within CREATE, such as ship, vehicle, or aircraft design, performance analysis, or testing. This means that important problem domains such as drug discovery and hydrological models are not covered. The insights about program, project, and personnel management are of general applicability, however, and will be useful at all stages of similar computational modeling-based projects in engineering or scientific research, whether operating under the umbrella of a single private enterprise, within a government program, or under other unifying directions.
The stage is set with introductory chapters on the history of virtual prototyping for product development and scientific research, and an overview of the human, computer, and data elements required to support successful virtual prototyping projects. What follows are chapters with discussions of specialized aspects, including the kinds of software tools generally required, factors to consider in selecting or developing software tools, advice and several examples on planning and managing software development and explaining the value proposition to users and organizational leadership. Program management topics are discussed next--specifically, program proposal development, planning and initiation, and then management, organization, risk management, and performance tracking and assessment. More technically focused readers will be interested in the two chapters that follow: software development principles and practices (chapter 9) and verification and validation (chapter 10). Personnel management is the subject of chapter 11, and the final chapter summarizes the state of the field at publication and potential future applications. An extensive list of references is included, listing material from a variety of sources ranging from general interest articles in the nontechnical press to special interest technical publications and conference publications on particular applications and solutions.
The stated audience is professional scientists and engineers who are assumed to have an appropriate scientific or engineering background and experience with particular domains, problems, or models. I would add software solution architects and project or program managers tasked with developing or managing a project in which computational science/engineering plays a critical part.
The authors make many of their points with examples, short case studies, and sidebars from actual projects, while using the CREATE program as a continuing case study throughout. (Fascinating though such individual illustrative examples may be, there are a lot of them and readers pressed for time may wish to treat them as digressions that can be skipped without loss of understanding.) The main principles and practices are clearly set forth in the “Lessons Learned” sections that conclude most chapters, and succinct summaries of recommended practices are included at various places throughout. In sum: this is an absorbing read for anybody interested in the practice of software prototypes for engineering applications, and an instructive guidebook for those responsible for planning, initiating, or managing such projects.