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.
- CSA. Quality assurance of analytical, scientific, and design computer programs for nuclear power plants. Technical Report N286.7-99, Canadian Standards Association, March 1999.Google Scholar
- ESA. ESA software engineering standards, PSS-05-0 issue 2. Technical report, European Space Agency, February 1991.Google Scholar
- John Hatcliff, Mats Heimdahl, Mark Lawford, Tom Maibaum, Alan Wassyng, and Fred Wurden. A Software Certification Consortium and its Top 9 Hurdles. Electronic Notes in Theoretical Computer Science, 238(4): 11--17, 2009. Google ScholarDigital Library
- IEEE. Recommended practice for Software Requirements Specifications. IEEE, June 1998.Google Scholar
- Andrew Johnson and Brad Johnson. Literate programming using noweb. Linux J., Article No 1, 1997. Google ScholarDigital Library
- Donald E. Knuth. The WEB system of structured documentation. Stanford Computer Science Report CS980, Stanford University, Stanford, CA, September 1983. Google ScholarDigital Library
- Donald E. Knuth. Literate Programming. CSLI Lecture Notes Number 27. 1992. Google ScholarDigital Library
- Donald E. Knuth and Silvio Levy. The CWEB System of Structured Documentation. Addison-Wesley, Reading, Massachusetts, 1993. Google ScholarDigital Library
- Nirmitha Koothoor. A document driven approach to certifying scientific computing software. Master's thesis, McMaster University, Hamilton, Ontario, Canada, 2013.Google Scholar
- Literate programming web site. http://www.literateprogramming.com.Google Scholar
- Thomas Maibaum and Alan Wassyng. A Product-Focused Approach to Software Certification. IEEE Computer, 41(2): 91--93, 2008. Google ScholarDigital Library
- Andrew P. Moore, Charles N. Payne, and Jr. Increasing assurance with literate programming techniques. In Proceedings of 11th Annual Conference on Computer Assurance. COMPASS '96, pages 187--198, 1996.Google ScholarCross Ref
- NASA. Software requirements DID, SMAP-DID-P200-SW, release 4.3. Technical report, National Aeronautics and Space Agency, 1989.Google Scholar
- Nedialko S. Nedialkov. VNODE-LP --- a validated solver for initial value problems in ordinary differential equations. Technical Report CAS-06-06-NN, Department of Computing and Software, McMaster University, 1280 Main Street West, Hamilton, Ontario, L8S 4K1, 2006. VNODE-LP is available at http://www.cas.mcmaster.ca/~nedialk/vnodelp.Google Scholar
- David L. Parnas and P. C. Clements. A rational design process: How and why to fake it. IEEE Transactions on Software Engineering, 12(2): 251--257, February 1986. Google ScholarDigital Library
- Matt Pharr and Greg Humphreys. Physically Based Rendering: From Theory to Implementation. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2004. Google ScholarDigital Library
- Joachim Schrod. Typesetting cweave output. CTAN, the Comprehensive TEX Archive Network, 1995.Google Scholar
- Judith Segal. End-user software engineering and professional end-user developers. In Dagstuhl Seminar Proceedings 07081, End-User Software Engineering, 2007.Google Scholar
- Judith Segal and Chris Morris. Developing scientific software. IEEE Software, 25(4): 18--20, July/August 2008. Google ScholarDigital Library
- Lisa M. C. Smith and Mansur H. Samadzadeh. An annotated bibliography of literate programming. ACM SIGPLAN Notices, 26(1): 14--20, 1991. Google ScholarDigital Library
- W. Spencer Smith, Lei Lai, and Ridha Khedri. Requirements analysis for engineering computation: A systematic approach for improving software reliability. Reliable Computing, Special Issue on Reliable Engineering Computation, 13, 2007.Google Scholar
- I. Sommerville and P. Sawyer. Requirement Engineering: A Good Practice Guide. John Wiley & Sons Ltd., 1997. Google ScholarDigital Library
Index Terms
- Document driven certification of computational science and engineering software
Recommendations
First International Workshop on Software Engineering for Computational Science & Engineering
In recognition of the general lack of exposure scientists have to software engineering and vice versa, a workshop was held during the 2008 International Conference on Software Engineering in Leipzig, Germany. The workshop's goal was to bring together ...
Software Engineering for Computational Science and Engineering
The guest editor describes the key issues and ongoing concerns in the field of software engineering for computational science and engineering, and discusses how the articles in this special issue explore necessary solutions.
Software Engineering Certification Schemes
The emerging ISO/IEC 24773 international standard could make software engineering certification globally portable.
Comments