Document driven certification of computational science and engineering software

  • Authors:
  • Spencer Smith;Nirmitha Koothoor;Nedialko Nedialkov

  • Affiliations:
  • McMaster University, Hamilton, Ontario, Canada;McMaster University, Hamilton, Ontario, Canada;McMaster University, Hamilton, Ontario, Canada

  • Venue:
  • SE-HPCCSE '13 Proceedings of the 1st International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper presents a documentation and development methodology to facilitate the certification of Computational Science and Engineering (CSE) software that is produced by professional end user developers to solve mathematical models of physical systems. To study the problems faced during quality assurance and certification activities, a case study was performed on legacy software used by a nuclear power generating company for safety analysis in a nuclear reactor. Although no errors were uncovered in the code, the documentation still needed significant updating for certification, since its was incomplete and inconsistent. During the case study, 27 issues were found with the documentation. This work proposes improvements to the case study software and other CSE software via a new template for the Software Requirements Specification (SRS) that clearly and sufficiently states the requirements, while satisfying the desired qualities for a good SRS. For developing the design and implementation, this paper suggests Literate Programming (LP) as an alternative to traditional structured programming. Literate Programming documents the numerical algorithms and the logic behind the development and the code together in the same document, the Literate Programmer's Manual (LPM). The LPM is developed in connection with the SRS. The explicit traceability between the theory, numerical algorithms and implementation (code), facilitates completeness and consistency, and simplifies the process of verification and the associated certification.