Введение
Стандарт оборонной службы США для разработки программного обеспечения 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 в единый документ и устранил некоторые критические замечания поставщиков.
DOD STD 2167A (Department of Defense Standard 2167A), titled "Defense Systems Software Development", was a United States defense standard, published on February 29, 1988, which updated the less well known DOD STD 2167 published 4 June 1985. This document established "uniform requirements for the software development that are applicable throughout the system life cycle." This revision was written to allow the contractor more flexibility and was a significant reorganization and reduction of the previous revision; e. g , where the previous revision prescribed pages of design and coding standards, this revision only gave one page of general requirements for the contractor's coding standards; while DOD STD 2167 listed 11 quality factors to be addressed for each software component in the SRS, DOD STD 2167A only tasked the contractor to address relevant quality factors in the SRS. Like DOD STD 2167, it was designed to be used with DOD STD 2168, "Defense System Software Quality Program". On December 5, 1994 it was superseded by MIL STD 498, which merged DOD STD 2167A, DOD STD 7935A, and DOD STD 2168 into a single document, and addressed some vendor criticisms.
Критика
Одной из критических оценок стандарта было то, что он был предвзятым по отношению к модели водопада. Хотя в документе говорится, что "подрядчик несет ответственность за выбор методов разработки программного обеспечения (например, быстрого прототипирования) ", он также требовал "формальных обзоров и аудитов", которые, казалось, закрепляли поставщика за проектированием и документированием системы до начала любой реализации. Еще одна критика заключалась в том, что основное внимание уделялось проектным документам, за исключением инструментов компьютерной помощи в разработке программного обеспечения (CASE), используемых в промышленности. Поставщики часто использовали инструменты CASE для разработки программного обеспечения, а затем писали несколько стандартных документов, необходимых для описания данных с форматированием CASE. Это создало проблемы с соответствием проектных документов фактическому продукту.
Предшественники
DOD STD 2167 и DOD STD 2168 (часто ошибочно называемые "MIL STD 2167" и "MIL STD 2168" соответственно) являются официальными номерами спецификаций для отмененных военных стандартов Министерства обороны США, описывающих документы и процедуры, необходимые для разработки военных компьютерных систем. В частности: DOD STD 2167 описывает необходимую проектную документацию, которая должна быть предоставлена при разработке компьютерной системы программного обеспечения "Критической задачи". DOD STD 2168 был стандартом обеспечения качества программного обеспечения Министерства обороны под названием "Программа качества программного обеспечения системы обороны".
DOD STD 2167 described the necessary project documentation to be delivered when developing a "Mission Critical" computer software system. DOD STD 2168 was the DoD's software quality assurance standard, titled "Defense System Software Quality Program".
Преемники
Одним из результатов этой критики стало начало разработки стандарта-преемника, который стал 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 определяет цели, которые должны быть достигнуты как приемлемые средства демонстрации летной годности, позволяя относительную гибкость в жизненных циклах и процессах, используемых для достижения этих целей.