Разница в разработке программного обеспечения, критически важного для безопасности
При разработке программного обеспечения, критически важного для безопасности, с использованием некоторых стандартов качества (таких как, например, IEC 61508 или DO 178-C), разработчики должны заботиться о многих вещах. Я знаю, что проверка на каждом этапе разработки довольно трудоемкая и дорогая. Более того, я знаю, что используются некоторые сокращенные языки программирования.
Но меня интересует конкретное отличие от "нормального" процесса разработки ПО. Я имею в виду, что в стандартной V-модели проверка и тестирование также должны быть частью каждого этапа разработки. Что я должен рассмотреть, чтобы найти требования? Что я должен учитывать в дизайне ПО?
1 ответ
Это не столько изменение в "V-модели", которое помогает проверять критически важную систему, это то, что вы делаете на каждом этапе пути.
Например, вы можете предпочесть спланировать свое развитие с использованием водопада, чтобы иметь этапы проверки и контролируемые переходные периоды. Это дает преимущество в соответствии с любыми правительственными постановлениями, которые могут быть приняты.
При разработке часто используют ограниченное подмножество сборок (API), чтобы разработчики не могли выполнять опасные операции. Этот тип ограничения также может гарантировать, что разработчики правильно используют API, например, очистка объектов в качестве требования.
Как только продукт будет разработан, вы, вероятно, пройдете все этапы тестирования. В промышленности принято разрабатывать контрольные приборы, чтобы проверять и генерировать данные, чтобы доказать правительству или клиентам, что ваша система говорит, что она делает.
В общем, эта тема очень глубокая. Вы упомянули стандарты, еще один - стандарт ISO 2008. Я думаю, что вы должны иметь в виду, что процесс не сильно меняется (модель жизненного цикла остается в основном той же). Но то, что вы делаете на каждом этапе модели, будет меняться в зависимости от проекта. Вы можете брать уроки по управлению проектами... На самом деле это программа, а иногда и полная программа обучения. Так что есть много, чтобы узнать о процессе и о том, как управлять различными проектами.
Гугл-системы критически важных проектов и управления проектами, скорее всего, будут генерировать массу знаний.
Надеюсь, что это поможет пролить некоторые на эту тему.
РЕДАКТИРОВАТЬ: Поиск требований, как в процессе водопада, занимает очень много времени. Конечно, это потребует понимания потребностей и целей клиентов. В общем, вам приходится проводить много времени в этой области по государственным причинам и из-за архитектуры программного обеспечения. Это не совсем другая техника... Будьте ясны, понимание требований является наиболее важным. Система должна восстановиться после 90 секундных таймаутов в течение 5 секунд после сброса. <- как и все другие требования в разработке ПО... Явный и тестируемый. Объективно не субъективно. Думайте Граммер нацистский уровень рассмотрения.
Одним из примеров систем, критически важных для безопасности, являются блокираторы F-35... Руководства по системным требованиям огромны, и процесс внесения изменений требует встреч и большого количества бумажной работы.