Software Development Environments for Scientific and Engineering Software

Jeff Carver
Wednesday, November 4th
2:15 - 3:15 pm

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 in industry, government and academia for the study of many important topics from diverse application domains including: designing and maintaining nuclear weapons, defense against radiological attacks, crash simulation, and satellite data processing. 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. The CS&E community has a long history with many projects that were successful in meeting their underlying scientific or engineering goal. While most of these projects did not formally use software engineering practices, their successes were often due, at least in part, to the informal use of software engineering practices.

In this presentation I will discuss how empirical software engineering methods were applied to conduct a series of case studies of CS&E projects as part of the DARPA HPCS project. The main goal of these case studies was to better understand what makes CS&E projects unique. This type of understanding helps software engineering and CS&E researchers create more effective approaches for developing CS&E software. In this presentation, I will first describe the case study process and provide an overview of the projects studied. Then, I will discuss nine characteristics of CS&E software that make its development difficult. Finally, I will discuss observations from a series of workshops focused on this topic.