NOTE: Papers and Presentations available on the Schedule page
An important type of software that has received little attention from software engineering researchers is software developed for computational science and engineering (CS&E) applications. This software is vital for the study of many important topics from diverse application domains. A list of the top 500 supercomputers , for which many CS&E applications are written, provides an example of the diversity of government, scientific, and commercial organizations that use CS&E and highlights its growing prevalence and impact on modern society. As an example of the importance and diversity of the types of problems addressed through CS&E, a recent article in the Computing Research News listed topics being addressed with CS&E at Los Alamos National Laboratory, including designing and maintain nuclear weapons, simulation of the public infrastructure, climate change, HIV vaccines, defense against radiological attacks, and astrophysics. In addition to these topics, other institutions are using CS&E to study problems related to crash simulation, satellite data processing, bioinformatics, and financial modeling. Because many of these domains are complex and involve advanced scientific or engineering concepts, much of the CS&E software is written by domain experts rather than by software engineers. This proposal uses research and education to address the lack of emphasis the software engineering community has placed on the development of CS&E software.
Furthermore, the design, implementation, development, and maintenance of CS&E applications can differ in significant ways from the systems and development processes more typically studied by the software engineering community:
- The requirements often include conformance to sophisticated mathematical models. Therefore, the requirements may take the form of an executable model in a system such as Matlab, with the implementation involving porting to proper platform.
- Often these projects are exploring unknown science making it difficult to determine a concrete set of requirements a prioiri.
- The software development process, or "workflow" for CS&E application development may differ profoundly from traditional software engineering processes. For example, one scientific computing workflow, dubbed the "lone researcher", involves a single scientist developing a system to test a hypothesis. Once the system runs correctly once and returns its results, the scientist has no further need of the system. This approach contrasts with more typical software engineering lifecycle models, in which the useful life of the software is expected to begin, not end, after the first correct execution.
- CS&E applications often require more computing resources than are available on a typical workstation. Existing solutions for providing more computational resources (e.g., clusters, supercomputers, grids) can be difficult to use, resulting in additional software engineering challenges.
- "Usability" in the context of CS&E application development may revolve around optimization to the machine architecture so that computations complete in a reasonable amount of time. The effort and resources involved in such optimization may exceed initial development of the algorithm.
For more information contact Jeffrey Carver.
Last Updated on October 12, 2007 by Jeffrey Carver