J. García Martín 15/06/2016 – 15 CENELEC EN50126
Independencia vs. Nivel de integridad
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
J. García Martín 15/06/2016 – 17 CENELEC EN50126
Criterios de selección de técnicas
( tablas)
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
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
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.
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
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
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
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
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
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
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
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
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)
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
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)
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
J. García Martín 15/06/2016 – 33 GUÍA PARA EL USO DE ADA
Selección …- Instrucciones
J. García Martín 15/06/2016 – 34 GUÍA PARA EL USO DE ADA
Selección … – Paquetes
Página anterior | Volver al principio del trabajo | Página siguiente |