stanislaw / awesome-safety-critical
- среда, 8 марта 2017 г. в 17:26:24
Makefile
List of resources about programming practices for writing safety-critical software.
This is a list of resources about programming practices for writing safety-critical software.
Disclaimer: I don't work on safety-critical software so the resources presented here are not necessarily authoritative documents on topic.
The starting point for me to create this resource was my interest in a solid software:
What kind of special training do engineers working on mission-critical software receive? [closed] and its followup on Reddit.
DO-178C, Software Considerations in Airborne Systems and Equipment Certification is the primary document by which the certification authorities such as FAA, EASA and Transport Canada approve all commercial software-based aerospace systems. The document is published by RTCA, Incorporated, in a joint effort with EUROCAE, and replaces DO-178B. The new document is called DO-178C/ED-12C and was completed in November 2011 and approved by the RTCA in December 2011. It became available for sale and use in January 2012.
The FAA approved AC 20-115C on 19 Jul 2013, making DO-178C a recognized "acceptable means, but not the only means, for showing compliance with the applicable airworthiness regulations for the software aspects of airborne systems and equipment certification." (Wikipedia)
IEC 61508 is an international standard published by the International Electrotechnical Commission of rules applied in industry. It is titled Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems (E/E/PE, or E/E/PES).
The ARINC Standards are prepared by the Airlines Electronic Engineering Committee (AEEC) where Rockwell Collins and other aviation suppliers serve as a contributor in support of their airline customer base. (Wikipedia)
Jet Propulsion Laboratory – scientific institution making a lot of research and development for NASA. JPL have been developing software for most of unmanned missions in the field of deep space and other planets exploration. Their portfolio includes such famous missions as Curiosity Mars rover and Voyager probe which left solar system after 25 years of flight and still providing scientific information. High level of automatization and long duration of missions led to superior demands to software quality. As a result of JPL amazing experience a set of code guidelines was developed and published recently.
This document is based on the "C Style Guide" (SEL-94-003). It contains recommendations for C++ implementations that build on, or in some cases replace, the style described in the C style guide.
This article contains interesting section on what is the difference between mission-critical and safety-critical software: Military COTS-based systems: Not necessarily right off the shelf
See What kind of special training do engineers working on mission-critical software receive? [closed] and its followup on Reddit. In the Reddit thread there are 2 expanded answers. The thread is also archived here.
TODO
Safety in Medical Device Software: Questions and Answers