Taller de Produccin de Programas sin Fallas Nora
- Slides: 16
Taller de Producción de Programas sin Fallas Nora Szasz Grupo de Métodos Formales Instituto de Computación Universidad de la República Montevideo, Uruguay www. fing. edu. uy/~mf/TPPSF 1
Objetivos m Generales: Iniciación al uso de métodos formales para la producción de software correcto por construcción m Particulares: – presentación de la. Teoría de Tipos como lógica de programación – familiarización con ambientes de desarrollo de programas basados en ese formalismo TTPSF 2
Certificación de Calidad de Software m Normas internacionales de calidad (ISO 9001, ITSEC, TCSEC, etc. ) m Diferentes niveles/criterios de calidad que involucran evaluación de – el proceso de producción – el producto m Niveles altos de garantía exigen la aplicación de métodos formales en – la especificación – la verificación del código fuente – la verificación del código objeto TTPSF 3
Norma ITSEC Assurance Correctness Level E 6 Construction - The developement process E 6 1. The sponsor shall provide the target of evaluation (TOE) and the following documentation: [. . . ] – Formal description of the architecture of the TOE. – Library test programs and tools used for testing the TOE, including tools which can be used to detect inconsistencies, between source code and executable code if there any security enforcing or security relevant to source code components (e. g. Disassembler and/or a debugger). – Informal description of correspondence between source code or hardware drawings and the detailed design and the formal specification of security enforcing functions. [. . . ] TTPSF 4
Normas ITSEC y TCSEC (Cont. ) Phase 4 - Implementation E 6. 11 [. . . ] It shall explain the correspondance between the security mechanisms as represented in the source code or hardware drawings and the formal specification of security enforcing functions in the security target. [. . . ] E 6. 12 [. . . ] The test documentation shall explain the correspondence between tests and the formal specification of security enforcing functions defined in the security target. E 6. 13 [. . . ] Investigate any suspected inconsistencies between source code and executable code found during testing using the sponsor supplied tools. TTPSF 5
Métodos Formales y Desarrollo Industrial de Software Aplicaciones Industriales Críticas Métodos formales m Verificación de modelos m Transporte m Lenguajes para sistemas m Aeronáutica comunicantes m Lógicas de programación - Lógica de Hoare - Lógicas de orden superior - Teorías de tipos. . . m Centrales nucleares m Dispositivos médicos m Comercio electrónico TTPSF . . . 6
Algunas razones. . . m La variedad de aplicaciones críticas se ha incrementado recientemente m No hay estándares definidos sobre qué técnicas formales utilizar m La incorporación de métodos formales en el desarrollo de software no es inmediata – requiere cierto dominio de técnicas abstractas – muchas veces oscurecen nociones operacionalemente claras TTPSF 7
Más razones m Gran parte de las herramientas han sido desarrolladas y utilizadas en laboratorios de investigación – Estimación incorrecta de factores de escala en la funcionalidad de las herramientas m Comunicación Investigación Industria no es simple – La gran variedad de técnicas formales dificulta la correcta selección de las técnicas apropiadas TTPSF 8
Aplicación de métodos formales en el desarrollo de software m Tiene (hoy) un costo elevado m Es rentable a largo plazo – desarrollo incremental y descubrimiento temprano de incoherencias entre los requerimientos – calidad del diseño – mantenimiento – documentación fiable – comunicación no ambigua (posibilita la terciarización de servicios y la verificación de la funcionalidad) – evaluación de los planes de calidad (en particular, de los protocolos de test) TTPSF 9
Buenas perspectivas. . . m Actualmente se verifican sistemas de porte significativo (sistemas de centenares de miles de líneas) [Craigen 93 a, Craigen 93 b] m Proyecto CICS conducido por IBM en colaboración con Universidad de Oxford [Houston 91] especificación en la notación formal de Z de una parte del sistema y desarrollo del código a partir de esta especificación. TTPSF 10
Buenas perspectivas. . . m Utilización de sistema B por GEC-Alsthom en el proyecto del metro de Calcuta [Silva 92] especificación en la notación formal de B de una parte del sistema y desarrollo formal del código ejecutable a partir de esta especificación. TTPSF 11
El Grupo de Métodos Formales del In. Co m Las áreas de investigación: – Verificación formal de corrección de programas – Verificación de sistemas reactivos – Programación genérica TTPSF 12
En este curso Métodos formales Aplicaciones Críticas Lógicas de Programación - Teorías de Tipos - Asistente de Pruebas Coq - Dyade - Dassault Aviation - CNET Especificación formal: – lenguaje formal (Teoría de Tipos) – razonamiento sobre la especificación y demostración propiedades – asistentes mecánicos TTPSF 13
Programa m Asistentes de pruebas para lógicos y matemáticos – una presentación formal de la lógica proposicional y de primer orden m Asistentes de pruebas para programadores – cálculo lambda como lenguaje de programación funcional m Pruebas y programas. Especificaciones y Tipos – isomorfismo de Curry-Howard – extracción de programas a partir de pruebas – construcción de pruebas a partir del programa y la especificación TTPSF 14
Programa m Definiciones Inductivas – principios de inducción y esquemas de recursión m Construcción de programas certificados usando Coq – programas funcionales e imperativos TTPSF 15
Referencias [Craigen 93 a] D. CRAIGEN, S. DERHART and T. RALSTON. An international Survey on Industrial Applications of Formal Methods, 1: Purpose, Approach, Analysis and Conclusions. Technical Report N 93/626, NISTGCR, U. S. Dept. of Commerce, Tehcnology Administration, NIST, Comp. syst. Lab. , Githersburg, MD 20899, Nat, Institut of Standart and Technology, 1993. [Craigen 93 b] D. CRAIGEN, S. DERHART and T. RALSTON. An international Survey on Industrial Applications of Formal Methods, 2: Case Studies. Technical Report N 93/626, NISTGCR, U. S. Dept. of Commerce, Tehcnology Administration, NIST, Comp. syst. Lab. , Githersburg, MD 20899, Nat, Institut of Standart and Technology, 1993. [HOUSTON 91] I. HOUSTON and S. KING. CICS project report, experiences and results from the use of Z in IBM. Srpinger Verlag, 1991, LNCS, volume 551. [SILVA 92] C. D. SILVA, B. DEHBONEI and F. MEJIA. Formal specification in the development of industrial applications: the subway speed control mechanism. FORTE'92, ed. by M. DIAZ and R. GROTH, North Hollland, 1992. TTPSF 16