Software safety, a subset of system safety, focuses on optimizing safety in the design, development and maintenance of software systems.
Research shows that in the majority of accidents in which software was used to control actions of components, the cause can be traced to requirement flaws such as incomplete requirements in the specified and implemented software behavior.
Typically this occurs due to wrong assumptions made on how the control system operates in the production environment.
Of course, this is only part of the problem when it comes to software safety. There remains a huge risk if the software is not properly designed, built and tested.
Another problem in the software safety arena has been over-zealous developers (or sales and marketing staff) who may try to introduce more “value-added” features and functions to impress and please customers. All these extras may potentially introduce safety hazards into the system during operation and therefore have to be treated with great caution and care.
There is little doubt that many issues that result in a system or product causing a hazardous situation are traceable to incomplete or erroneous requirements. This is a problem that is seen across industries, and at different requirements levels.
Most experts in software safety agree that identifying hazardous situations is a key first step. International standards such as ISO 14971 (ISO/TR 24971) publish lists of potential hazardous situations, which can be a good idea to get you started.
However, no two systems are the same just as use cases differ between products. Following checklists can often result in a lack of rigor in the analysis, that would potentially identify new hazardous. Or it can result in overlooking the operation, use environment or intended use of the system or product.
Want to learn more? Tonex offers Software Safety courses that teach participants the philosophies and methodsin software safety and its primary objectives: to design, code, test, and support software with the appropriate Level‐of‐Rigor (LOR) to instill a confidence, or the assurance of safe software.