Design and Implementation for Safety Critical Software Systems

Ehab Shafei, Ibrahim Moawad, Mostafa Aref
2014 The International Conference on Electrical Engineering  
In recent years software has become a key element of safety critical systems. The use of Safety Critical Software Systems (SCSSs) has been increased in many critical systems such as Nuclear Power Plants (NPPs), radiotherapy, aircrafts, and many medical devices. These systems rely on the use of safety critical software in controlling and monitoring critical devices. SCSSs are developed in accordance with a set of guidelines and standards produced by the industry, or imposed by a regulator.
more » ... a regulator. Despite of the vital role of SCSSs in saving human life, the environment, and properties, there is no generic methodology for developing such systems based on standards and guidelines. This methodology sets an integrated model that concerned about the safety of critical software systems as a component of the critical systems. It consists of the needed processes required for developing SCSSs free of faults. This methodology ensures that SCSSs are developed using processes based on appropriate standards and guidelines and can be certified accordingly. The objective of this methodology is to produce certified critical software systems that conform to standards and guidelines. The methodology consists of three phases (safety planning and requirements phase, safety analysis phase, and design, implementation, and operation phase). This paper is going to focus on design and implementation phase. The insulin pump system is applied as a case study on the design and implementation phase. overall critical systems not limited to software, but extended to include computer hardware, electronics/electrical hardware, and operators. Certification of SCSSs is the hot issue in many industries. SCSSs must be certified before installation and operation phase. Certification ensures that the system will not fail consequently will not cause harm to human beings or the environment and if it fails, it will fail safely. Considering existing models for developing SCSSs, most of existing methodology did not follow standards, guidelines and related documents for developing SCSSs. The methodology consists of three phases: Phase1, safety planning and requirements which are discussed in [1] that consists of four processes (describe the critical system, identify critical system functions, determine the SCSSs safety plan, and identify the functions of SCSSs). Phase2, safety analysis which is discussed in [2] that consists of (analyze and identify the hazards, apply risk management process, specify safety requirements of critical software systems). Phase3, design and implementation that consists of (design and implement SCSSs, verify and validate SCSSs, certify SCSSs, operate, and maintain SCSSs). This paper is going to focus on design and implementation phase. Literatures showed that safety issue should be considered in the whole critical software systems and from the beginning. Already there are three methodologies for modeling software safety in safety critical computing systems. Some of them share common processes and differ in other processes. Also the implementation and the sequence of such common processes are different. Although of already exciting models follow standards in developing some process and neglect standards in developing other processes, beside they did not based on standards from early process. The first methodology [3] is a primitive one, it's based on four essential processes for developing safety software. These processes are software safety planning, safety critical computer system function identification, software and computing system hazard analyses, and finally validation and verification. The second methodology [4] is a more complex model with more seven processes than the first one. The new processes are software safety requirements analysis, software safety architecture design analysis, software safety detailed design analysis, software safety code analysis, software safety test analysis, software safety evaluation, and software safety process review and documentation. The third methodology [5] nearly is the same process as the second methodology. These models neglecting describing the critical system in which the software is a subcomponent of the whole system. They are missing the importance of developing critical software systems, according to standards and guidelines. They did not give attention to the process of software certification. The missing processes could produce deficient critical software systems which might cause failures during the operation. For these reasons the proposed methodology for developing SCSSs based on standards and guidelines is presented to overcome the weak points of exciting models. The paper is organized as follows: section 2 describes SCSSs. Section 3 presents the methodology for SCSSs design and implementation for developing certified SCSSs based on standards and guidelines. Section 4 presents a case study performed according to our methodology. The last section concludes the discussion, and explores trends for future research work. SAFETY CRITICAL SOFTWARE SYSTEMS SCSSs can be defined as software that monitors, exercises direct command and controls over the condition or state of hardware components. And if not performed, performed out-of-sequence, or performed incorrectly could result in improper control functions, which could cause a hazard or
doi:10.21608/iceeng.2014.30388 fatcat:ctng7kyxdfgppo24ougfhr6wom