A Software Engineering Process for Safety-critical Software Application

Safety-critical 소프트웨어 적용을 위한 소프트웨어 개발 절차

  • Published : 1995.02.01

Abstract

Application of computer software to safety-critical systems is on the increase. To be successful, the software must be designed and constructed to meet the functional and performance requirements of the system. For safety reason, the software must be demonstrated not only to meet these requirements, but also to operate safely as a component within the system. For longer-term cost consideration, the software must be designed and structured to ease future maintenance and modifications. This paper present a software engineering process for the production of safety-critical software for a nuclear power plant The presentation is expository in nature of a viable high quality safety-critical software development. It is based on the ideas of a rational design process and on the experience of the adaptation of such process in the production of the safety-critical software for the Shutdown System Number Two of Wolsong 2, 3 & 4 nuclear power generation plants. This process is significantly different from a conventional process in terms of rigorous software development phases and software design techniques. The process covers documentation, design, verification and testing using mathematically precise notations and highly reviewable tabular format to specify software requirements and software design. These specifications allow rigorous, stepwise verification of software design against software requirements, and code against software design using static analysis. The software engineering process described in this paper applies the principle of information-hiding decomposition in software design using a modular design technique so that when a change is' required or an error is detected, the affected scope can be readily and confidently located. It also facilitates a sense of high degree of confidence in the ‘correctness’ of the software production, and provides a relatively simple and straightforward code implementation effort.

Keywords