Ingeniería de Software para Sistemas Críticos: Planificación, Verificación y Certificación DO-178B
Clasificado en Diseño e Ingeniería
Escrito el en español con un tamaño de 6,43 KB
Ciclo de Vida del Desarrollo de Software en Entornos Críticos
La gestión del desarrollo de software en entornos críticos, como los definidos por la normativa RTCA DO-178B, requiere una metodología rigurosa que abarca desde la planificación inicial hasta la certificación final. A continuación, se detallan las fases y consideraciones clave.
Planificación del Software
La planificación del software implica restablecer las fechas de cumplimiento de los objetivos HITO (Hitos), los cuales se establecen en base a una línea base (baseline). Se definen los estándares a seguir y se establece el seguimiento continuo del plan de trabajo.
Gestión de Requisitos
La fase de Requisitos incluye:
- Reuniones con el cliente para la definición de requisitos iniciales.
- Propuesta de alternativas.
- Aseguramiento de que los requisitos sean: correctos, completos, atómicos, trazables, verificables, consistentes.
- Inclusión de su Rationale (justificación) y Source (origen).
El cliente suele solicitar documentos como el CORD (Customer Operational Requirements Document) y el ICD (Interface Control Document).
Trazabilidad
La trazabilidad es fundamental para:
- Modificar y encontrar elementos relacionados.
- Facilitar el control de cambios.
A nivel de software, se exige que se compruebe la adecuación del hardware (HW) y que se estudie el código para asegurar que no haya código inútil.
Desarrollo del Software
El software debe ser trazable, verificable y consistente. Si se detecta una entrada incorrecta (por ejemplo, durante la captura de requisitos, en el ciclo de vida o en la planificación), se deben imponer soluciones y avisar a los equipos de seguridad (safety) y al cliente.
Codificación
Durante la codificación, es crucial:
- Utilizar el mismo compilador que el empleado en las pruebas.
- Corregir todos los avisos del código fuente.
- Limitar la longitud de las líneas de código.
Implementación
En la implementación, se define el DAL (Design Assurance Level) en función de la criticidad del sistema. Para ello, se sigue la normativa RTCA DO-178B, que indica el tipo de pruebas y los niveles de satisfacción requeridos. También se definen qué elementos se revisan y cuáles se codifican.
Integración
La integración implica la aplicación de parches para corregir pequeños detalles y la comprobación exhaustiva de cómo afecta el parche al sistema en su conjunto.
Gestión de la Configuración (CM)
La Gestión de la Configuración (CM) es responsable de:
- Recopilar, archivar, numerar y reportar las actualizaciones de toda la documentación.
- Controlar los flujos de cada proceso.
- Servir como punto de referencia para las revisiones.
- Asegurar que los errores se corrijan.
- Establecer y documentar las herramientas utilizadas.
Verificación y Aseguramiento de la Calidad
Verificación del Proyecto
La verificación asegura que se cumplen las especificaciones del proyecto.
Planificación de la Verificación
La planificación de la verificación incluye:
- Identificación del sistema.
- Identificación de requisitos.
- Definición de métodos de prueba específicos y criterios.
- Identificación del "crédito" (cobertura o confianza) que tienen las pruebas.
Métodos de Verificación
Los métodos comunes de verificación son:
- Inspección y Revisión: Uso de checklists para verificar la completitud, revisiones del diseño y de las pruebas a realizar.
- Análisis: Examen detallado de la funcionalidad del sistema.
- Pruebas (Testing): Pruebas basadas en procedimientos, donde se registran los problemas surgidos (entradas y acciones requeridas, salidas previstas, versión del sistema bajo prueba y resultados).
- Experiencia en Servicio: Consideración de si el sistema ha sido utilizado previamente.
Actividades y Datos de Verificación
Las actividades de verificación son las acciones a realizar para la verificación, y los datos de verificación son los resultados obtenidos. El nivel de verificación está determinado por el DAL. El plan de verificación establece las estrategias para demostrar cómo una implementación satisface los requisitos.
Aseguramiento de la Calidad (QA)
El Aseguramiento de la Calidad (QA) establece que las planificaciones y estándares se cumplan. Responde a preguntas clave como: ¿Qué haremos? ¿Estamos haciendo lo que dijimos? ¿Vamos dentro de los plazos? ¿Funciona?
Sus funciones incluyen:
- Planificar suficientes revisiones para detectar fallos.
- Establecer calendarios para mostrar resultados al cliente.
- Planificar estándares.
- Realizar auditorías para controlar la evolución.
- Definir pasos a seguir.
- Vigilar el cumplimiento de las planificaciones.
- Evidenciar las fechas de entrega.
Certificación y Enlace con la Autoridad
Enlace de Certificación
El Enlace de Certificación atestigua que un producto cumple con todos los requisitos de certificación. Propone el plan de certificación y negocia con la autoridad.
Sus responsabilidades incluyen:
- Descripción funcional y operacional del hardware (HW) y software (SW).
- Relación entre el sistema y otros sistemas.
- Resumen de FHA (Functional Hazard Assessment) y PSSA (Preliminary System Safety Assessment), incluyendo objetivos y DAL.
- Descripción de los métodos a utilizar.
- Condiciones especiales para la certificación.
- Listado de datos a suministrar.
- Identificación del personal que trabajará en el proyecto.
Además, debe resolver todos los problemas con la autoridad y negociar soluciones para asegurar la certificación exitosa del producto.