MIL-STD-498

MIL-STD-498 (англ. MIL-STD-498; Military Standard Software Development and Documentation) — американский военный стандарт, определяющий единые требования к разработке и документации программного обеспечения[1]. Стандарт был принят 8 ноября 1994 года и заменил документы DOD-STD-2167A, DOD-STD-2168, DOD-STD-7935A и DOD-STD-1703. Он разрабатывался как временная мера, предназначенная действовать примерно в течение двух лет до появления коммерческого стандарта.

В отличие от более ранних документов, таких как базовый DOD-STD-2167A, сосредоточенный преимущественно на быстро развивающейся и рискованной области разработки ПО, MIL-STD-498 стал первой попыткой комплексного описания жизненного цикла разработки системы. MIL-STD-498 лег в основу промышленных стандартов, включая IEEE 828-2012 и IEEE 12207[1]. Многие положения стандарта впоследствии вошли в руководства по управлению проектами, такие как PMBOK (Project Management Body of Knowledge, свод знаний по управлению проектами). Документ MIL-STD-498 Overview and Tailoring Guidebook содержит 98 страниц; MIL-STD-498 Application and Reference Guidebook — 516 страниц. К стандарту прилагались шаблоны документов (Data Item Descriptions), позволяющие масштабировать процессы и документацию для проектов разного размера: от летательных аппаратов и спутников до промышленных объектов.

MIL-STD-498 был одним из немногих военных стандартов, переживших так называемую «записку Перри» — меморандум министра обороны США Уильяма Перри 1994 года, предписывавший сворачивание обязательных оборонных стандартов. Однако 27 мая 1998 года стандарт отменили, заменив его практически идентичной демилитаризованной версией EIA J-STD-016[2][3]. Эта версия стала примером процесса для IEEE 12207. Несмотря на отмену, стандарт продолжал использоваться вне военных программ США из-за удобства, свободного доступа к документам и высокой проработанности структуры, включая детальные описания поставляемых по контракту данных.

В области авиационного программного обеспечения MIL-STD-498 постепенно вытеснили гражданские стандарты, в частности RTCA DO-178B[4].

Описания элементов данных

Стандарт MIL-STD-498 описывает процессы разработки и документирования через 22 стандартных описания элементов данных (англ. data item descriptions, DID). DIDs определяют структуру и содержание документов, в которых фиксируются результаты соответствующих стадий разработки и сопровождения продукта. Например, описание проектирования программного обеспечения (Software Design Description DID) регламентирует оформление результатов по проектированию ПО. Каждый DID определяет требования к содержанию «элемента данных» — файла или документа, отражающего определённый аспект системы или одного из этапов её жизненного цикла. Форматы таких документов могут различаться: от исходного кода и установочных сценариев до отчётов на бумажном или электронном носителе. Заказчик вправе определять допустимые форматы представления данных.

Любой проект по разработке программного обеспечения должен выбирать из 22 возможных DID соответствующий набор, который фиксируется в форме списка требований к данным по контракту (англ. Contract Data Requirements List, CDRL) в рамках Унифицированного формата контракта (англ. Uniform Contract Format). CDRL содержит перечень документов, которые подрядчик обязан подготовить и передать заказчику по условиям контракта. DID всегда можно адаптировать под конкретный контракт: ненужные разделы могут быть исключены через соответствующие поля CDRL. Необходимый набор DIDs зависит от типа проекта и условий его реализации.

DID включают следующие типы документов:

Планы

  • План разработки программного обеспечения (SDP, Software Development Plan) — план выполнения работ по разработке ПО.
  • План установки программного обеспечения (SIP, Software Installation Plan) — порядок установки программного обеспечения на объектах пользователя.
  • План передачи программного обеспечения (STrP, Software Transition Plan) — порядок передачи программного обеспечения в организацию сопровождения.

Концепция и требования

  • Описание рабочей концепции (OCD, Operational Concept Description) — концепция функционирования системы.
  • Спецификация системы/подсистемы (SSS, System/Subsystem Specification) — требования к системе или подсистеме.
  • Спецификация требований к программному обеспечению (SRS, Software Requirements Specification) — требования к отдельному компоненту программного комплекса (CSCI).
  • Спецификация требований к интерфейсу (IRS, Interface Requirements Specification) — требования к одному или нескольким интерфейсам.

Проектирование

  • Описание проектирования системы/подсистемы (SSDD, System/Subsystem Design Description) — описание архитектуры системы или подсистемы.
  • Описание проектирования программного обеспечения (SDD, Software Design Description) — описание проектных решений для CSCI.
  • Описание проектирования базы данных (DBDD, Database Design Description) — подробное проектирование базы данных.
  • Описание проектирования интерфейсов (IDD, Interface Design Description) — проектирование одного или нескольких интерфейсов.

Квалификационные испытания

  • План тестирования программного обеспечения (STP, Software Test Plan) — порядок квалификационных испытаний.
  • Описание тестирования программного обеспечения (STD, Software Test Description) — сценарии и процедуры квалификационного тестирования.
  • Отчёт о тестировании программного обеспечения (STR, Software Test Report) — результаты квалификационных испытаний.

Руководства пользователя и оператора

  • Руководство пользователя программного обеспечения (SUM, Software User Manual) — инструкция для непосредственных пользователей ПО.
  • Руководство по входным/выходным данным программного обеспечения (SIOM, Software Input/Output Manual) — руководство по работе с пакетом для пользователей в условиях вычислительного центра.
  • Руководство оператора вычислительного центра (SCOM, Software Center Operator Manual) — инструкция для операторов пакетного или интерактивного ПО в вычислительном центре.
  • Руководство по эксплуатации компьютера (COM, Computer Operation Manual) — инструкция по эксплуатации ЭВМ.

Руководства по сопровождению

  • Руководство по программированию вычислительной техники (CPM, Computer Programming Manual) — инструкция для программистов ЭВМ.
  • Руководство по поддержке микропрограмм (FSM, Firmware Support Manual) — руководство по программированию и поддержке микропрограммных устройств.

Определение программного продукта

  • Спецификация программного продукта (SPS, Software Product Specification) — описание поставляемого программного обеспечения и исходных файлов, а также сведений для его сопровождения.
  • Описание версии программного обеспечения (SVD, Software Version Description) — перечень поставляемых файлов и сопутствующая информация.

Примечания

  1. 1 2 Guide to the Software Engineering Body of Knowledge Version 3.0 (SWEBOK) : [англ.]. — IEEE Computer Society, 2014. — «The planning focused on reconciling the software process views from IEEE Std. 1074 and the revised US DoD standard 2167A. The revision was eventually published as DoD Std. 498. The international standard was completed in 1995 with designation, ISO/IEC 12207, ...».
  2. Reed Sorensen (июнь 1996). “MIL-STD-498, J-STD-016, and the U.S. Commercial Standard”. CrossTalk Magazine [англ.]. Архивировано из оригинала 2004-12-16. Дата обращения 2024-06-05. Используется устаревший параметр |url-status= (справка); Проверьте дату в |date= (справка на английском)
  3. Software Standards (англ.). — «J-STD-016 is the “demilitarized” version of Mil-STD-498». Дата обращения: 5 июня 2024. Архивировано 17 марта 2013 года.
  4. Aviation Development & Certification Tech Info (англ.). AFuzion. — «In the latter ‘90’s and early 2000’s, DO-178B gradually eclipsed MIL-STD-498 for numerous reasons including avionics commonality between civil and military applications, re-use, improved supplier management, improved schedule and cost performance ... and tighter integration with provable safety guidelines [ARP4754, ARP4761]». Дата обращения: 8 августа 2022.

Ссылки