Article Preview
Top1. Introduction
The software controlled automotive systems comes under the category of safety critical system and in the recent past it has gained lot of attention due to the emerging challenges in its design. These systems uses up to 100 electronic control units (ECUs) communicating more than 2500 signals by using up to 5 different bus systems (Eyisi et al., 2013). These ECU’s control and monitor many vehicle subsystems such as anti-lock braking system (ABS), chassis control, vehicle stability, and engine control. A system is called a safety critical system when the human safety is at stake and dependent upon mechanical/electrical/automatic systems’ operation. In this paper the concentration is on the controlling software, which controls the safety critical system, but not on the any associated element meant for system operation.
The design and development of software module responsible for operational control of any system is a challenge for its precision. The high precision is expected in terms of reliability, functional safety, real-time behavior, resource sharing in operation etc. in order to ensure, zero defect system in any critical operations (Mössinger, 2010). Software failures in automotive systems may cause severe damages or loss of life. In recent past one-third of the car recalls was witnessed and understood that the failure is due to error in control software, which lead to system failure (Boulanger & Dao, 2008).. Here our analysis focused on reliability of the safety critical software system.
Software reliability is defined as the probability that the system will perform its intended functionality under specified design limits. Software reliability techniques are aimed at reducing or eliminating failures of software systems (Roshandel, 2004). In spite of rigorous validation and testing procedures, there are many accidents occurred leading to catastrophic failures and life-threatening situations. To circumvent such incidents research on failure analysis of safety critical system is of high importance to ascertain its reliability.
Designing for reliability is a systematic approach, which must be established in the early design stages with the sole objective of reducing the number of failures (Garg, 2015; Garg, Rani, & Sharma, 2014). This can be accomplished by the extensive implementation of design analyses, evaluations, testing and simulation techniques that can optimize and assess reliability. The objectives of the reliability assessment are: to identify potential hazards, to translate reliability requirements as functional requirements and to provide design assessment in the on-going design. Lutz et al have recommended that include validity checking for input, error handling, overflow protection and behavior of the system under unexpected conditions as requirements for defensive design (Lutz, 1993). In pursuing towards this, we have proposed a framework to study the probability of occurrence of software failures. This helps to assess the reliability and the number of errors associated in the controlling software. This leads to understand the relationship between the reliability and safety of the controlling software. Software failure occurs due to various reasons, one of the reason is due to missteps made during design phase, that are often challenging to visualize, categorize and debug (Xie & Lyu, 1996). The software reliability is estimated using the failure statistics observed in various situations of system operation. The observations are made at various critical points of occurrence for devising a more accurate failure prediction system.
In automotive safety-critical systems, the software controls and monitors critical vehicle functions namely steering and braking. Though these systems are designed with safety features, unpredicted interactions among the software, hardware, and environment might lead to potentially hazardous situations. The potential causes for software failures are software errors, and support software errors and hardware failures (Czerny, D’Ambrosio, Murray, & Sundaram, 2010). Software errors might be due to either inconsistent or incomplete requirements, design or coding.