DOD-STD-2167A ( Department of Defense Standard 2167A), titulada "Desarrollo de software de sistemas de defensa", fue un estándar de defensa de los Estados Unidos , publicado el 29 de febrero de 1988, que actualizaba el menos conocido DOD-STD-2167 publicado el 4 de junio de 1985. Este documento estableció "requisitos uniformes para el desarrollo de software que son aplicables durante todo el ciclo de vida del sistema". [1] Esta revisión se escribió para permitir al contratista más flexibilidad [2] y fue una reorganización y reducción significativa de la revisión anterior; por ejemplo , donde la revisión anterior prescribía páginas de estándares de diseño y codificación, esta revisión solo proporcionó una página de requisitos generales para los estándares de codificación del contratista; mientras que DOD-STD-2167 enumeraba 11 factores de calidad que se debían abordar para cada componente de software en el SRS , DOD-STD-2167 A solo encargó al contratista abordar los factores de calidad relevantes en el SRS. [3] Al igual que DOD-STD-2167, fue diseñado para usarse con DOD-STD-2168 , "Programa de calidad del software del sistema de defensa".
El 5 de diciembre de 1994 fue reemplazado por MIL-STD-498 , que fusionó DOD-STD-2167A, DOD-STD-7935A y DOD-STD-2168 en un solo documento, [4] y abordó algunas críticas de los proveedores.
Una crítica a la norma fue que estaba sesgada hacia el modelo en cascada . Aunque el documento establece que "el contratista es responsable de seleccionar los métodos de desarrollo de software (por ejemplo, creación rápida de prototipos)", también exigía "revisiones y auditorías formales" que parecían obligar al proveedor a diseñar y documentar el sistema antes de comenzar cualquier implementación. [ cita requerida ]
Otra crítica fue el enfoque en los documentos de diseño, con exclusión de las herramientas de ingeniería de software asistida por computadora (CASE) que se utilizan en la industria. Los proveedores solían utilizar las herramientas CASE para diseñar el software y luego redactaban varios documentos requeridos por las normas para describir los datos con formato CASE. Esto creaba problemas para hacer coincidir los documentos de diseño con el producto real. [ cita requerida ]
DOD-STD-2167 y DOD-STD-2168 (a menudo denominados erróneamente " MIL-STD-2167 " y " MIL-STD-2168 ", respectivamente) son los números de especificación oficiales de las normas militares del Departamento de Defensa de los EE. UU. que describen los documentos y procedimientos necesarios para desarrollar sistemas informáticos militares . En concreto: [5]
Un resultado de estas críticas fue comenzar a diseñar un estándar sucesor, que se convirtió en MIL-STD-498 . [6] Otro resultado fue una preferencia por estándares formales diseñados por la industria (como IEEE 12207 ) y especificaciones informales de " mejores prácticas ", en lugar de tratar de determinar los mejores procesos y convertirlos en requisitos formales para los proveedores.
La norma MIL-STD-2167A junto con la norma MIL-STD-498 se convirtieron finalmente en la base de la norma DO-178 a principios de los años 1980 [7] , y la norma DO-178 recibió revisiones posteriores. La norma MIL-STD-2167 y la norma MIL-STD-498 definen conjuntamente los procesos estándar del ciclo de vida del desarrollo de software que se espera que se implementen y sigan, así como la definición prescriptiva del formato y el contenido estándar de los documentos. Por el contrario, la norma DO-178B/C, menos prescriptiva, define los objetivos que se deben cumplir como medios aceptables [8] para demostrar la aeronavegabilidad, lo que permite una relativa flexibilidad en los ciclos de vida y los procesos empleados para cumplir esos objetivos. [9]
Sin embargo, DOD-STD-2167A contiene una serie de deficiencias notables que fueron resueltas por MIL-STD-498.