Descargar

Sistemas de Alta Integridad (página 2)

Enviado por Pablo Turmero


Partes: 1, 2, 3
edu.red

J. García Martín 15/06/2016 – 15 CENELEC EN50126

Independencia vs. Nivel de integridad

edu.red

J. García Martín 15/06/2016 – 16 CENELEC EN50126

Criterios de selección de técnicas

Para cada combinación Técnica/Nivel de Integridad:

M = Mandatory HR = Highly Recommended R = Recommended – = No recomendation NR = Positively Not Recommended

edu.red

J. García Martín 15/06/2016 – 17 CENELEC EN50126

Criterios de selección de técnicas

( tablas)

edu.red

J. García Martín 15/06/2016 – 18 DOD-178-B

Introducción

Desarrollado por RTCA

Dirigido para software crítico de vuelo en aviación comercial

El objetivo es la seguridad (safety)

Impone criterios y actividades para asegurar la seguridad del sistema

No impone CdV o metodología concreta

edu.red

J. García Martín 15/06/2016 – 19

Actividades

Lista de actividades que se espera que desarrollen en cada parte del proceso: Planificación Estándares Desarrollo Verificación de requisitos software Verificación de diseño software Verificación de código Verificación del proceso de integración Verificación del proceso de verificación Gestión de configuración Asegurar la calidad del software Verificación de las herramientas utilizadas

DOD-178-B

Cumple con los req. de bajo nivel Traceable los req. de bajo nivel Cumple con la arquitectura sw Traceable con la arquitectura sw Es correcto” y consistente Es verificable Conforme con estándares de sw

edu.red

J. García Martín 15/06/2016 – 20 TÉCNICAS DE VERIFICACIÓN

Introducción

Proceso por el que se asegura que la implementación satisface los requisitos (Validación: asegurar que los requisitos son correctos)

Planteamiento para analizar un lenguaje de programación:

Una facilidad del lenguaje se rechaza por dificultar la verificación.

edu.red

J. García Martín 15/06/2016 – 21

Introducción

Los estándares requieren 4 procesos de verificación:

Traceability Review Analysis Testing

TÉCNICAS DE VERIFICACIÓN

edu.red

J. García Martín 15/06/2016 – 22

Técnicas 1.- Traceability

Comprobar que la implementación es completa

Confrontación: De req. bajo nivel a req. alto nivel De procedimientos de test a requisitos, diseño e implementación De código objeto a código fuente

p.e. Algunas facilidades ==> código del compilador muy extenso, difícil de verificar

p.e. Relación muchos-a-muchos en la descomposición de niveles ==> difícil verificar

TÉCNICAS DE VERIFICACIÓN

edu.red

J. García Martín 15/06/2016 – 23

Técnicas 2.- Review

Llevadas a cabo por personas Más o menos formal Personas independientes del equipo de desarrollo (obligatorio) Sobre requisitos, diseño, código, procedimientos de test, informes etc.

p.e. Algunas facilidades del lenguaje ==> dificultan la revisión del código

TÉCNICAS DE VERIFICACIÓN

edu.red

J. García Martín 15/06/2016 – 24

Técnicas 3.- Analysis (estático):

Sobre requisitos, diseño y código Los estándares combinan 10 métodos de análisis Código objeto OCA Flujo de datos FA (Flow Analysis) Flujo de control FA Flujo de la información FA Comprobación de rangos RC Utilización de la memoria OMU Utilización de la pila Stk Cumplimientos temporales Tmg Verificación formal del código FC (Functional Correctness) Ejecución simbólica FC

TÉCNICAS DE VERIFICACIÓN

edu.red

J. García Martín 15/06/2016 – 25

Técnicas 4.- Testing (dinámico)

Una comprobación absoluta es infactible Se puede comprobar la presencia de errores, no la ausencia Niveles de aplicación: Componentes sw; Integración sw; Integración hw-sw; Test del sistema Tipos: Basado en Requisitos (caja negra) Clases de equivalencia EC Valores extremos BV Basado en la estructura (caja blanca) SC Instrucciones cubiertas Decisiones (saltos) cubiertas Condiciones modificadas/Decisiones cubiertas p.e L.alto-nivel + L.ensamblador en un mismo módulo ==> dificultaría el test de la estructura

TÉCNICAS DE VERIFICACIÓN

edu.red

J. García Martín 15/06/2016 – 26 GUÍA PARA EL USO DE ADA

Introducción

Aplicar las técnicas vistas para que el sistema tenga un comportamiento predecible

¿Cuándo y cómo aplicamos las técnicas de análisis (estático y dinámico)?

Aproximación Retrospectiva: Cuando el sistema ya ha sido desarrollado A veces demasiado tarde; Correcciones costosas

Corrección por construcción: Mientras se desarrolla el código Ir validando los productos intermedios

edu.red

J. García Martín 15/06/2016 – 27 GUÍA PARA EL USO DE ADA

Selección de las facilidades del lenguaje

Se va a seleccionar una parte del lenguaje

Razones para necesitar/rechazar una facilidad del lenguaje

Conseguir ser predecible

Permitir la modelización

Consideraciones pragmáticas

edu.red

J. García Martín 15/06/2016 – 28 GUÍA PARA EL USO DE ADA

Selección de las facilidades del lenguaje

1.- Conseguir ser predecible (evitar ambigüedades) Efectos laterales p.e. Y = f(x) * g(x) Efectos de orden de elaboración de paquetes Efectos de mecanismos de paso de parámetros

2.- Permitir la modelización Análisis estático = construcción de modelo (grafo) para hacer comprobaciones Algunas facilidades complican la construcción de modelos p.e. Las excepciones complican la construcción de un grafo

edu.red

J. García Martín 15/06/2016 – 29 GUÍA PARA EL USO DE ADA

Selección de las facilidades del lenguaje

3.- Consideraciones pragmáticas Los métodos de análisis (estáticos y dinámicos) son efectivos si sw bien estructurado p.e Cada módulo (tarea) tiene 1 pto. de entrada y 1 pto. de salida

Verificar = relacionar fragmentos de código con fragmentos de req. (depende de la simplicidad)

edu.red

J. García Martín 15/06/2016 – 30 GUÍA PARA EL USO DE ADA

Elección del lenguaje

ADA tiene definición precisa => adecuado para sistemas de alta integridad

El núcleo del lenguaje facilita la verificación (modelización, elimina ambigüedad)

Hay que restringir el uso de algunas facilidades (excepciones, goto)

Conduce a un buen estilo de programación (facilita revisiones)

En esta guía se describen las propiedades de las facilidades

No se define un subconjunto del lenguaje

edu.red

J. García Martín 15/06/2016 – 31 GUÍA PARA EL USO DE ADA

Selección de un subconjunto del lenguaje ADA

Para cada facilidad/técnica verificación hay tres niveles de adecuación:

Excluido Tiempo/Coste prohibitivo

Permitido Esfuerzo extra

Incluido Disponible

La selección de una facilidad va a depender de: La propia aplicación Las técnicas de verificación que se van a emplear

(estándar a seguir y nivel de integridad)

edu.red

J. García Martín 15/06/2016 – 32 GUÍA PARA EL USO DE ADA

Selección de un subconjunto del lenguaje ADA

Pasos a seguir:

1.- Determinar las técnicas de verificación requeridas para los estándar relevantes

2.- Utilizar las tablas para determinar para cada facilidad: Incluida/Permitida

3.- Confirmar que el subconjunto y las técnicas elegidas satisfacen los requisitos de programación y verificación

edu.red

J. García Martín 15/06/2016 – 33 GUÍA PARA EL USO DE ADA

Selección …- Instrucciones

edu.red

J. García Martín 15/06/2016 – 34 GUÍA PARA EL USO DE ADA

Selección … – Paquetes

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente