Введение

Стандарт оборонной службы США для разработки программного обеспечения DOD STD 2167A (Department of Defense Standard 2167A), названный "Развитие программного обеспечения для оборонных систем", был стандартом обороны Соединенных Штатов, опубликованным 29 февраля 1988 года, который обновлял менее известный DOD STD 2167 опубликованный 4 июня 1985 года. В этом документе установлены "однородные требования к разработке программного обеспечения, которые применяются на протяжении всего жизненного цикла системы". Эта редакция была написана для того, чтобы предоставить подрядчику большую гибкость, и была значительной реорганизацией и сокращением предыдущей редакции; например, в предыдущей редакции были предписаны страницы стандартов проектирования и кодирования, но в этой редакции была только одна страница общих требований к стандартам кодирования подрядчика; в то время как в DOD STD 2167 перечислены 11 факторов качества, которые должны быть рассмотрены для каждого программного компонента в SRS, DOD STD 2167A поручил подрядчику только рассмотреть соответствующие факторы качества в SRS. Как и DOD STD 2167, он был разработан для использования с DOD STD 2168, "Программа качества программного обеспечения системы обороны". 5 декабря 1994 года он был заменен MIL STD 498, который объединил DOD STD 2167A, DOD STD 7935A и DOD STD 2168 в единый документ и устранил некоторые критические замечания поставщиков.

Критика

Одной из критических оценок стандарта было то, что он был предвзятым по отношению к модели водопада. Хотя в документе говорится, что "подрядчик несет ответственность за выбор методов разработки программного обеспечения (например, быстрого прототипирования) ", он также требовал "формальных обзоров и аудитов", которые, казалось, закрепляли поставщика за проектированием и документированием системы до начала любой реализации. Еще одна критика заключалась в том, что основное внимание уделялось проектным документам, за исключением инструментов компьютерной помощи в разработке программного обеспечения (CASE), используемых в промышленности. Поставщики часто использовали инструменты CASE для разработки программного обеспечения, а затем писали несколько стандартных документов, необходимых для описания данных с форматированием CASE. Это создало проблемы с соответствием проектных документов фактическому продукту.

Предшественники

DOD STD 2167 и DOD STD 2168 (часто ошибочно называемые "MIL STD 2167" и "MIL STD 2168" соответственно) являются официальными номерами спецификаций для отмененных военных стандартов Министерства обороны США, описывающих документы и процедуры, необходимые для разработки военных компьютерных систем. В частности: DOD STD 2167 описывает необходимую проектную документацию, которая должна быть предоставлена при разработке компьютерной системы программного обеспечения "Критической задачи". DOD STD 2168 был стандартом обеспечения качества программного обеспечения Министерства обороны под названием "Программа качества программного обеспечения системы обороны".

Преемники

Одним из результатов этой критики стало начало разработки стандарта-преемника, который стал MIL STD 498. Другим результатом стало предпочтение формальным отраслевым стандартам (таким как IEEE 12207) и неформальным спецификациям "наилучшей практики", а не попыткам определить лучшие процессы и сделать их формальными требованиями к поставщикам. MIL STD 2167A с MIL STD 498 в конце концов стал основой для DO 178 в начале 1980-х годов, а DO 178 получил последующие изменения. MIL STD 2167 и MIL STD 498 вместе определяют стандартные процессы жизненного цикла разработки программного обеспечения, которые, как ожидается, будут реализованы и соблюдены, а также предписывают стандартный формат и содержание документа. Напротив, менее пропискивный DO 178B/C определяет цели, которые должны быть достигнуты как приемлемые средства демонстрации летной годности, позволяя относительную гибкость в жизненных циклах и процессах, используемых для достижения этих целей.