- 1.0 A New Product Development Paradigm
- 1.1 Computational Engineering and Virtual Prototypes
- 1.2 Computational Science and Digital Surrogates
- 1.3 The Computational Engineering and Science Ecosystem
- 1.4 High-Performance Computers: The Enablers
- 1.5 Full-Featured Virtual Prototypes
- 1.6 The Advantages of Virtual Prototyping for Systems of Systems
- 1.7 Virtual Prototyping: A Successful Product Development and Scientific Research Paradigm
- 1.8 Historical Perspective
1.3 The Computational Engineering and Science Ecosystem
The virtual prototyping/digital surrogates/digital paradigm requires a computational ecosystem (see Table 1.2).
Table 1.2 Elements of the Computational Ecosystem
1. Computers (or at least computer time) 2. Computer networks (access to computers) 3. Data storage 4. Experienced and skilled users (customers) 5. Testing and test data 6. Application software (including developers and user support staff, if software is to be developed) |
Figure 1.5 presents an example of such an ecosystem for the DoD’s High-Performance Computer Modernization Program (HPCMP). The next chapter discusses these elements in more detail.
Figure 1.5 Illustration of essential elements of a successful customer-focused, secure ecosystem required to support virtual prototyping from HPCMP (Courtesy DoD HPC Modernization Program)
The HPCMP ecosystem supports both product development and scientific research. It includes secure, cloudlike, high-performance computing and networking resources, along with various software applications, including the CREATE family of virtual prototyping software applications. The outputs of this ecosystem are virtually tested air vehicle, ground vehicle, ship and antenna design, and scientific research results for DoD problems.
Although computers, computer networks, and data storage capabilities are at the forefront of advanced technologies, they are primarily general-purpose, commodity technologies that are available from commercial vendors along with supporting services (for example, the cloud and commercial communication networks). The need for a workforce with skills in the relevant engineering and scientific disciplines is obvious. Organizations already have much of the workforce they need to use computers for design or research and understand how to recruit to augment their workforce.
Acquiring the needed software applications presents a fundamentally different challenge than obtaining computers, communication networks, data handling, and even a capable engineering workforce. It is important to recognize that technical software is not like hardware. It is not a commodity and is not general purpose. Almost always, every technical software application is developed for a specific set of technical problems. Software used to calculate the effects of airflow across an airplane wing cannot be used to determine the performance of an antenna. Engineering and scientific software is based on the laws of science (physics, chemistry, and so on). Software that can address a complex technical problem is at least as complex as the problem. Case studies indicate that developing a good multiphysics engineering or scientific software application generally takes 5 to 10 years (Post 2004). At the top of the list of important requirements for an engineering and scientific software application is accuracy. By this, we mean that the software must be accurate enough to support its potential uses. Validation testing, including comparison of the software predictions with experimental test data, is a key requirement for demonstrating the needed accuracy.
For many design and analysis tasks, product development organizations can obtain application software from independent software vendors (ISVs). The competitive advantage shifts from the software to the effective use of the software. If commercial software products can meet an organization’s needs, licensing can be attractive. However, commercially available software may not meet the needs of a specific product development effort. Crucial features may be missing. The algorithms for important effects may not be accurate enough. In that case, it may be necessary to develop the needed software applications. Following the 5 to 10 years needed to develop the multiphysics simulation, the software will require continued support for the whole time it is needed. This book focuses on lessons learned from examples of real programs that have developed and deployed such software.
Scientific research organizations face similar challenges to develop and deploy scientific research software. Unless other research organizations have developed software that meets a research organization’s needs and are willing to share, each organization will need to develop its own software. Even if externally developed software is available, considerable modification and future development may be required to address evolving needs.
For both product development and research, a dearth of useful, actionable information exists about successful software engineering and project management principles and practices for developing large-scale scientific software applications. The evidence indicates that many, if not most, of these projects either fail to meet their goals or fail totally (Ewusi-Mensah 2003, Glass 1998, and Gorman 2006). The purpose of this book is to address this need.