В каких отраслевых известных стандартах безопасности программного обеспечения кто-то имел опыт в том, чтобы придерживаться при разработке программного обеспечения, которое занимается управлением устройством/системой, способной нанести вред людям, использующим его?
Стандарты безопасности программного обеспечения
Ответ 1
Начните здесь: http://www.aonix.com/safety_critical_overview.html
Прочтите это: http://www.ghs.com/products/safety_critical/index.html
Слушайте следующее: http://www.podnova.com/channel/388090/episode/7/
Это хорошо понятая тема. Военные строят безопасное для безопасности программное обеспечение в течение многих лет.
Ответ 2
Ссылка Aonix, приведенная выше, является хорошей для основных рассуждений. Если вам нужны примеры того, как работают определенные стандарты, вы можете использовать Google для:
- IEC61508: "Функциональная безопасность электрических/электронных/программируемых электронных систем, связанных с безопасностью (E/E/PES)". Базовый стандарт, на который ссылаются в различных отраслевых стандартах. Эта страница IEC является хорошей отправной точкой. Часть 61508-3 касается программного обеспечения.
- DO-178B: стандарт Avionics с аналогичным объемом, как IEC61508, который немного отличается от программного обеспечения.
- IEC60601-1-4: Предложения с "Программируемыми электрическими медицинскими системами" (часть стандартов серии 60601).
- EN5012x: Специфичные для железных дорог стандарты - 50128 - это программное обеспечение.
Ответ 3
MISRA является стандартом, применяемым в автомобильной промышленности, но является стандартом кодирования для обеспечения правильности работы и переносимости.
Чтобы понять сложность этой проблемы, вам нужно прочитать Therac accident.
Кроме того, НАСА и военные документы широко доступны и обсуждают стандарты кодирования, которые позволяют определять безопасность системы.
-Adam
Ответ 4
Различные отрасли промышленности имеют разные стандарты. Например, самолеты и робототехника. Стандарты все еще развиваются в некоторых новых отраслях, таких как хирургические роботы. Все еще есть некоторые общие элементы. Первое - это избыточность. Я работаю с промышленными роботами. Для критических элементов, таких как управление скоростью, мы используем три разных вычисления на двух разных контроллерах. Для систем аварийного останова мы используем двойные цепи, каждая красная кнопка e-stop имеет два физических переключателя.
Раньше я работал на самолетах. На автопилотах самолетов часто два или даже три отдельных компьютера выполняют вычисления и сравнивают результаты.
Цель состоит в том, чтобы не допустить, чтобы какой-либо один отказ приводил к нестабильной работе системы.
Вам необходимо ознакомиться с правилами и положениями, которые регулируют область, в которой вы работаете, чтобы узнать, что такое юридические требования, но вы должны сделать всю систему безопасной.
Ответ 5
Подходы варьируются в зависимости от поля. (извините, я ставлю только 1 ссылку...)
Avionics: DO-178B: (см. wikipedia)
Информационная безопасность Общие критерии (см. сайт портала Common Criteria)
FDA управляет программным обеспечением для медицинских устройств (подумайте о рентгеновских аппаратах) http://www.fda.gov/medicaldevices/deviceregulationandguidance/guidancedocuments/default.htm
Критически важный список рассылки (Великобритания) в У-Йорке в Великобритании - отличный ресурс В последнее время обсуждается вопрос о том, как применять стандарты SIL (см. wikipedia о стандартах SIL) к программным системам.
Ответ 6
Не стандарт saftey, но чтение comp.risks на некоторое время покажет проблемы, которые вам нужно будет усердно работать, чтобы предотвратить.
(Книга "Компьютерные риски" тоже очень хороша.)
Ответ 7
Программное обеспечение должно никогда запускать систему, которая может нанести вред кому-либо. Единственное возможное (и все еще сомнительное) время, которое может быть ложным, заключается в использовании безопасного безопасного ПЛК, который специально разработан для обеспечения безопасности.
Вы должны изучить: