Browse > Article
http://dx.doi.org/10.1016/j.net.2015.11.008

A Document-Driven Method for Certifying Scientific Computing Software for Use in Nuclear Safety Analysis  

Smith, W. Spencer (Computing and Software Department, McMaster University)
Koothoor, Nirmitha (Computing and Software Department, McMaster University)
Publication Information
Nuclear Engineering and Technology / v.48, no.2, 2016 , pp. 404-418 More about this Journal
Abstract
This paper presents a documentation and development method to facilitate the certification of scientific computing software used in the safety analysis of nuclear facilities. To study the problems faced during quality assurance and certification activities, a case study was performed on legacy software used for thermal analysis of a fuelpin in a nuclear reactor. Although no errors were uncovered in the code, 27 issues of incompleteness and inconsistency were found with the documentation. This work proposes that software documentation follow a rational process, which includes a software requirements specification following a template that is reusable, maintainable, and understandable. To develop the design and implementation, this paper suggests literate programming as an alternative to traditional structured programming. Literate programming allows for documenting of numerical algorithms and code together in what is termed the literate programmer's manual. This manual is developed with explicit traceability to the software requirements specification. The traceability between the theory, numerical algorithms, and implementation facilitates achieving completeness and consistency, as well as simplifies the process of verification and the associated certification.
Keywords
Literate Programming; Nuclear Safety Analysis; Numerical Simulation; Requirements Specification; Software Engineering; Software Quality;
Citations & Related Records
연도 인용수 순위
  • Reference
1 Canadian Nuclear Safety Commission (CNSC), Computer Programs Used in Design and Safety Analyses of Nuclear Power Plants and Research Reactors, Technical Report G-149, Minister of Public Works and Government Services Canada, October 2000.
2 CSA, Quality Assurance of Analytical, Scientific, and Design Computer Programs for Nuclear Power Plants, Technical Report N286.7-99, Canadian Standards Association, Ontario, (Canada), 1999.
3 CSA, Guideline for the Application of N286.7-99, Quality Assurance of Analytical, Scientific, and Design Computer Programs for Nuclear Power Plants, Technical Report N286.7.1-09, Canadian Standards Association, Ontario, (Canada), 2009.
4 United States Department of Energy, Assessment Criteria and Guidelines for Determining the Adequacy of Software Used in the Safety Analysis and Design of Defense Nuclear Facilities, Technical Report CRAD - 4.2.4.1, Office of Environment, Health, Safety & Security, Department of Energy, USA, October 2003.
5 C. Ghezzi, M. Jazayeri, D. Mandrioli, Fundamentals of Software Engineering, second ed., Prentice Hall, Upper Saddle River (NJ), 2003.
6 P.J. Roache, Verification and Validation in Computational Science and Engineering, Hermosa Publishers, Albuquerque, New Mexico, 1998.
7 A.P. Davison, Automated capture of experiment context for easier reproducibility in computational research, Comput. Sci. Eng. 14 (2012) 48-56.
8 J.C. Carver, R.P. Kendall, S.E. Squires, D.E. Post, Software development environments for scientific and engineering software: a series of case studies, in: ICSE '07: Proceedings of the 29th International Conference on Software Engineering, IEEE Computer Society, Washington (DC), 2007, pp. 550-559. Available from: http://dx.doi.org/10.1109/ICSE.2007.77.   DOI
9 J. Segal, C. Morris, Developing scientific software, IEEE Softw. 25 (2008) 18-20.
10 P.F. Dubois, Maintaining correctness in scientific programs, Comput. Sci. Eng. 7 (2005) 80-85. Available from: http://dx.doi.org/10.1109/MCSE.2005.54.   DOI
11 W.S. Smith, J. McCutchan, F. Cao, Program families in scientific computing, in: J. Sprinkle, J. Gray, M. Rossi, J.-P. Tolvanen (Eds.), 7th OOPSLA Workshop on Domain Specific Modelling (DSM'07), Montreal, Quebec, October 2007, pp. 39-47.
12 D. Kelly, Industrial scientific software: a set of interviews on software development, in: Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research, CASCON '13, IBM Corp., Riverton (NJ), 2013, pp. 299-310. Available from: http://dl.acm.org/citation.cfm?id=2555523.2555555.
13 J. Segal, When software engineers met research scientists: a case study, Empir. Softw. Eng. 10 (2005) 517-536. Available from: http://dx.doi.org/10.1007/s10664-005-3865-y.   DOI
14 D.L. Parnas, P.C. Clements, A rational design process: how and why to fake it, IEEE Trans. Softw. Eng. 12 (1986) 251-257.
15 T. Maibaum, A. Wassyng, A product-focused approach to software certification, Computer 41 (2) (2008) 91-93.   DOI
16 N. Koothoor, A Document Driven Approach to Certifying Scientific Computing Software, Master's thesis, McMaster University, Hamilton, Ontario (Canada), 2013.
17 W.S. Smith, N. Koothoor, N. Nedialkov, Document driven certification of computational science and engineering software, in: Proceedings of the First International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering (SE-HPCCE), November 2013, 8 p.
18 H. van Vliet, Software Engineering: Principles and Practice, second ed., John Wiley & Sons, Inc., New York, 2000.
19 IEEE, Recommended practice for software requirements specifications, IEEE Std 830-1998 (1998) 1-40.
20 G. Antoniol, G. Canfora, G. Casazza, A. De Lucia, Ettore Merlo, Recovering traceability links between code and documentation, IEEE Trans. Softw. Eng. 28 (2002) 970-983. Available from: http://dx.doi.org/10.1109/TSE.2002.1041053.   DOI
21 I. Sommerville, P. Sawyer, Requirement Engineering: a Good Practice Guide, John Wiley & Sons Ltd., 1997.
22 H. Remmel, B. Paech, C. Engwer, P. Bastian, Design and rationale of a quality assurance process for a scientific framework, in: Proceedings of the 5th International Workshop on Software Engineering for Computational Science and Engineering, SE-CSE '13, IEEE Press, Piscataway (NJ), 2013, pp. 58-67. Available from: http://dl.acm.org/citation.cfm?id=2663370.2663379.
23 W.S. Smith, L. Lai, R. Khedri, Requirements analysis for engineering computation: a systematic approach for improving software reliability, Reliable Comput. 13 (2007). Special Issue on Reliable Engineering Computation.
24 D. Kelly, R. Sanders, The challenge of testing scientific software, in: Proceedings of the Conference for the Association for Software Testing, 2008, pp. 30-36.
25 ESA, ESA Software Engineering Standards, PSS-05-0 issue 2, Technical Report, European Space Agency, February 1991.
26 NASA, Software Requirements DID, SMAP-DID-P200-SW, release 4.3, Technical Report, National Aeronautics and Space Agency, 1989.
27 W.S. Smith, L. Lai, A new requirements template for scientific computing, in: J. Ralyte, P. gerfalk, N. Kraiem (Eds.), Proceedings of the First International Workshop on Situational Requirements Engineering Processes - Methods, Techniques and Tools to Support Situation-specific Requirements Engineering Processes, SREP'05, Paris, France, 2005, pp. 107-121. In conjunction with 13th IEEE International Requirements Engineering Conference.
28 A. Johnson, B. Johnson, Literate programming using noweb, Linux J. 42 (1997) 64-69.
29 Donald E. Knuth, The WEB System of Structured Documentation, Stanford Computer Science Report CS980, Stanford University, Stanford (CA), September 1983.
30 D.E. Knuth, Literate Programming, CSLI Lecture Notes Number 27, Center for the Study of Language and Information, 1992. Available from: http://csli-www.stanford.edu/publications/literate.html.
31 J. Schrod, The cweb Class, CTAN, the Comprehensive TEX Archive Network, TU Darmstadt, Computer Science Department, WG Systems Programming, Germany (November 1995). Available from: http://ctan.bppro.ca/macros/latex/contrib/cweb/cweb-user.pdf.
32 D.E. Knuth, S. Levy, The CWEB Systemof Structured Documentation,Addison-Wesley,Reading,Massachusetts,1993.
33 L.M.C. Smith, M.H. Samadzadeh, An annotated bibliography of literate programming, ACM SIGPLAN Notices 26 (1991) 14-20.   DOI
34 N.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, Hamilton, Ontario (Canada), 2006.
35 M. Pharr, G. Humphreys, Physically Based Rendering: From Theory to Implementation, Morgan Kaufmann Publishers Inc., San Francisco (CA), 2004.
36 A.P. Moore, C.N. Payne Jr., Increasing assurance with literate programming techniques, in: Proceedings of 11th Annual Conference on Computer Assurance. COMPASS '96, 1996, pp. 187-198.
37 D.F. Kelly, W.S. Smith, N. Meng, Software engineering for scientists, Comput. Sci. Eng. 13 (2011) 7-11.   DOI
38 D.L. Parnas, On the criteria to be used in decomposing systems into modules, Commun. ACM 15 (1972) 1053-1058.   DOI
39 E. Schulte, D. Davison, T. Dye, C. Dominik, A multi-language computing environment for literate programming and reproducible research, J. Stat. Softw. 46 (2012) 1-24. Available from: http://www.jstatsoft.org/v46/i03.
40 L.E. Malvern, Introduction to the Mechanics of Continuous Medium, Prentice Hall, Englewood Cliffs, New Jersey, 1969.
41 W.S. Smith, W. Yu, A document driven methodology for improving the quality of a parallel mesh generation toolbox, Adv. Eng. Softw. 40 (2009) 1155-1167. Available from: http://dx.doi.org/10.1016/j.advengsoft.2009.05.003.   DOI
42 E.W. Dijkstra, Notes on structured programming, in: O.J. Dahl, E.W. Dijkstra, C.A.R. Hoare (Eds.), Structure Programming, Academic Press Ltd., London, (UK), 1972, pp. 1-82. Available from: http://dl.acm.org/citation.cfm?id=1243380.1243381.