What is Safety Critical Software?
Software whose failure could result in loss of life, significant property damage, or damage to the environment.
Why is Dronology considered Safety Critical?
Imagine deploying UAVs in an urban environment — perhaps where they have to fly over a crowd of people or alongide a highway. A UAV that malfunctions or deliberately behaves in an inappropriate way could crash into a vehicle causing an accident or could land on a person below. While this doesn’t represent the same degree of criticality as software in an avionics system or in an automobile’s braking system — it does provide an excellent proxy for investigating solutions for safety-critical software development. In other words, UAVs are somewhat safety-critical and therefore serve as great proxies for research in this area.
How is safety reflected in the development process?
In addition to following sound development practices, the software engineering process is imbued with Safety practices. You can learn more about these on our process page; however, to summarize we include:
- Preliminary hazard analysis processes to identify potential hazards and their contributing faults.
- Fault analysis to identify data and event-based faults which contribute to the hazards, either individually or in combination with other faults.
- Specification of Mitigating Requirements and constraints that if fully deployed will prevent hazards from occurring, or significantly reduce their impact.
- Traceability from code, design, and test, back to mitigating requirements, faults, and hazards to demonstrate that safety-related requirements have been implemented in the delivered system.
- Safety Assurance through constructing safety assurance cases that provide formal arguments demonstrating that the system is safe for use.
- Robust testing that includes diverse testing techniques ranging from unit tests, integration tests, performance tests, and monkey tests to full simulations.
When Dronology has failed! Lessons learned lead to improved safety.