Grant: Discovery Grants Program - Individual
Royal Military College of Canada
$19,000.00
Identifying useful software engineering practices for scientists
FY 2012-13
Summary
Scientific software is computational application software that predicts paths of hurricanes, guides surgeons in orthopedic surgery, supports engineers who design bridges and aircraft, and supplies data for the safe operation of nuclear generating plants. It is software that is largely written by scientists and provides data to help scientists and engineers make decisions. There are two problems. First, numerous articles have been written either questioning the extent we can trust scientific software or giving examples where a very simple software error has compromised output data. Second, no software engineering practices have been empirically validated for use specifically with scientific software. The aim of our research is to identify and validate software engineering practices that are time-efficient and result-effective when used by the scientists themselves.
For various reasons, scientific software is extremely complex to write and is difficult to test. Insidious errors can remain hidden for years. The one quality unanimously important to scientists is that the software gives the ""right answer"". For a software engineering practice to be useful to a scientist, it must provide observable benefits in finding or preventing software errors that affect ""getting the right answer"". Those benefits must be balanced against the difficulty and time required for the scientists to put the practice into use.
The first step in our research is characterizing the development environment of scientific software. We have already made progress here. The second step is to validate the efficacy of specific practices in the environment of the scientific software developer. Practices can be related to the development of the software, its successful maintenance over its typically long lifetime, or the assessment of the software by testing or peer review. It is important that our researchers work directly with scientists to observe, to learn, to make adjustments and to verify that practices provide real benefits. The ultimate goal of this research is to provide the scientific software developer with a handbook of practices with pedigrees in the area of scientific development. This handbook will give the scientists efficient and effective ways to ensure their software ""gives the right answer"".
Program
Discovery Grants Program - Individual
Recipient
Location
Ontario, Canada
Recipient Type
Academia
Type
Grant
Source
NSERC's Awards Data
As published
Application id
312020-2009
Name nom
Kelly, Diane
Department département
Electrical and Computer Engineering
Organization id
30
Institution établissement
Royal Military College of Canada
Province en
Ontario
Province fr
Ontario
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2012
Competition year année de concours
2009
Award amount
19000
Program id
RGPIN
Program name en
Discovery Grants Program - Individual
Program name fr
Programme de subventions à la découverte - individuelles
Group en
Discovery grants programs
Group fr
Programmes de subventions à la découverte
Committee code
330
Committee name en
Computing and Information Sciences - A
Committee name fr
Informatique - A
Area of application code
801
Area of application group en
Information and communication services
Area of application group fr
Services d'information et de télécommunications
Area of application en
Computer software
Area of application fr
Logiciel
Research subject code
2706
Research subject group en
Information technology
Research subject group fr
Technologie de l'information
Research subject en
Software engineering
Research subject fr
Génie logiciel
Partie
4
Nb partie
5
Application title
Identifying useful software engineering practices for scientists
Keyword
NSERC
Application summary
Scientific software is computational application software that predicts paths of hurricanes, guides surgeons in orthopedic surgery, supports engineers who design bridges and aircraft, and supplies data for the safe operation of nuclear generating plants. It is software that is largely written by scientists and provides data to help scientists and engineers make decisions. There are two problems. First, numerous articles have been written either questioning the extent we can trust scientific software or giving examples where a very simple software error has compromised output data. Second, no software engineering practices have been empirically validated for use specifically with scientific software. The aim of our research is to identify and validate software engineering practices that are time-efficient and result-effective when used by the scientists themselves.
For various reasons, scientific software is extremely complex to write and is difficult to test. Insidious errors can remain hidden for years. The one quality unanimously important to scientists is that the software gives the ""right answer"". For a software engineering practice to be useful to a scientist, it must provide observable benefits in finding or preventing software errors that affect ""getting the right answer"". Those benefits must be balanced against the difficulty and time required for the scientists to put the practice into use.
The first step in our research is characterizing the development environment of scientific software. We have already made progress here. The second step is to validate the efficacy of specific practices in the environment of the scientific software developer. Practices can be related to the development of the software, its successful maintenance over its typically long lifetime, or the assessment of the software by testing or peer review. It is important that our researchers work directly with scientists to observe, to learn, to make adjustments and to verify that practices provide real benefits. The ultimate goal of this research is to provide the scientific software developer with a handbook of practices with pedigrees in the area of scientific development. This handbook will give the scientists efficient and effective ways to ensure their software ""gives the right answer"".