160 likes | 269 Views
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. Objetivos. Generales:
E N D
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 TPPSF
Objetivos • Generales: Iniciación al uso de métodos formales para la producción de software correcto por construcción • Particulares: • presentación de laTeoría de Tipos como lógica de programación • familiarización con ambientes de desarrollo de programas basados en ese formalismo
Certificación de Calidad de Software • Normas internacionales de calidad (ISO9001, ITSEC, TCSEC, etc.) • Diferentes niveles/criterios de calidad que involucran evaluación de • el proceso de producción • el producto • 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
Norma ITSECAssurance Correctness Level E6 Construction - The developement process E6 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 are 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 . [...]
Normas ITSEC y TCSEC (Cont.) Phase 4 - Implementation E6.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. [...] E6.12 [...] The test documentation shall explain the correspondence between tests and the formal specification of security enforcing functions defined in the security target. E6.13 [...] Investigate any suspected inconsistencies between source code and executable code found during testing using the sponsor supplied tools.
Métodos Formales y Desarrollo Industrial de Software • Verificación de modelos • Lenguajes para sistemas comunicantes • Lógicas de programación - Lógica de Hoare - Lógicas de orden superior - Teorías de tipos ... Aplicaciones Industriales Críticas Métodos formales • Transporte • Aeronáutica • Centrales nucleares • Dispositivos médicos • Comercio electrónico ...
Algunas razones... • La variedad de aplicaciones críticas se ha incrementado recientemente • No hay estándares definidos sobre qué técnicas formales utilizar • 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
Más razones • 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 • 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
Aplicación de métodos formales en el desarrollo de software • Tiene (hoy) un costo elevado • 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)
Buenas perspectivas ... • Actualmente se verifican sistemas de porte significativo (sistemas de centenares de miles de líneas) [Craigen93a, Craigen93b] • Proyecto CICS conducido por IBM en colaboración con Universidad de Oxford [Houston91] 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.
Buenas perspectivas... • Utilización de sistema B por GEC-Alsthom en el proyecto del metro de Calcuta [Silva92] 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.
El Grupo de Métodos Formales del InCo • Las áreas de investigación: • Verificación formal de corrección de programas • Verificación de sistemas reactivos • Programación genérica
En este curso Métodos formales Aplicaciones Críticas Especificación formal: • lenguaje formal (Teoría de Tipos) • razonamiento sobre la especificación y demostración propiedades • asistentes mecánicos Lógicas de Programación - Teorías de Tipos - Asistente de Pruebas Coq - Dyade - Dassault Aviation - CNET
Programa • Asistentes de pruebas para lógicos y matemáticos • una presentación formal de la lógica proposicional y de primer orden • Asistentes de pruebas para programadores • cálculo lambda como lenguaje de programación funcional • 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
Programa • Definiciones Inductivas • principios de inducción y esquemas de recursión • Construcción de programas certificados usandoCoq • programas funcionales e imperativos
Referencias • [Craigen 93a] D.CRAIGEN, S.DERHART and T.RALSTON. An international Survey on Industrial Applications of Formal Methods, 1: Purpose, Approach, Analysis and Conclusions. Technical Report N93/626, NISTGCR,U.S. Dept. of Commerce, Tehcnology Administration, NIST, Comp. syst. Lab., Githersburg, MD 20899, Nat, Institut of Standart and Technology, 1993. • [Craigen 93b] D.CRAIGEN, S.DERHART and T.RALSTON. An international Survey on Industrial Applications of Formal Methods, 2: Case Studies. Technical Report N93/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.