Effectively Improve Software or System Safety
Safety design at architecture level can effectively improve software or system safety. This analysis focuses on how to consider safety in software architecture design phase and proposed a safety-oriented software architecture design approach. Through the system hazard analysis, this design approach uses the selected combination of safety tactics to effectively improve the software or system safety, providing a new way of thinking for software safety architecture design.
Safety Critical System (SCS) describes the system which has theoretically destructive power. Once such a system produced a failure, many significant consequences may be caused, such as casualties, property loss and environmental damage, and so on. In recent years, software application in SCS is more and more extensive, and the scale also progressively grows. From railway transit field to the aerospace field and from the power system to the medical system, this type of software plays a fundamental role in command-and-control standpoint for software safety. The core research in SCS safety is how to reduce the probability of unsafe system conditions that various SCS elements lead to, or weaken the SCS’s consequences that failures produce, through using a variety of management, organization, technical measures, which can help your business avoid litigation.
Because software architecture (SA) was originally proposed as a solution, it has been favored by many researchers and practitioners, and become an essential research field of software engineering. SA defines a system’s main structure, macroscopic properties, its key functions and characteristics. SA is the basis and the key to success of the whole software design. Currently, SA design methods mostly concentrate on system’s non-functional requirements (NFR), for instance safety or reliability, into concern. SA design combining with SA analysis method, researchers hope to find the potential risk in early software life cycle . The research on safe SA not only can ensure the safety of SA-based software development components, but also can ensure the safety of the final software product. Software safety and reliability have different characteristics. The former pays more consideration to software defect that lead to enter the unsafe state and how to reduce the risk of system failure which can led to the catastrophic accidents. So far, however, the work blended safety and SA design is very scarce. So, there is little guidance on how to deal with safety concerns in shaping a safe SA and how to improve SA by using basic safety tactics.
At present, many studies have showed that through explicitly presenting SA and its elements, such as components and connector, SA can handle high conceptual level’s design problems, such as the global structure and control structures, functions assigned to the calculating unit, high-level interactions between calculating units or other design problems. According to safety standards of software elements under design, IEC 61507 provide some general guidelines on the selection of these techniques. However, this guidance fails to illustrate further how to utilize these techniques to maximize the protection against failures. Reference classifies the existing conventional SA design methods into five categories, which are Artifact-Driven, User-Case-Driven, Pattern-Driven, Domain-Driven and Requirement-Driven, and respectively describes each kind of design method’s design process, design advantages and defects. For SCS architecture design, its safety assurance needs to be satisfied as well as its functional requirements.