16
TPPSF 1 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

Taller de Producci ó n de Programas sin Fallas

Embed Size (px)

DESCRIPTION

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: - PowerPoint PPT Presentation

Citation preview

Page 1: Taller de Producci ó n de Programas sin Fallas

TPPSF 1

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, Uruguaywww.fing.edu.uy/~mf/TPPSF

Page 2: Taller de Producci ó n de Programas sin Fallas

Presentación - 2TTPSF

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

Page 3: Taller de Producci ó n de Programas sin Fallas

Presentación - 3TTPSF

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

Page 4: Taller de Producci ó n de Programas sin Fallas

Presentación - 4TTPSF

Norma ITSECAssurance Correctness Level E6

Construction - The developement processE6 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 . [...]

Page 5: Taller de Producci ó n de Programas sin Fallas

Presentación - 5TTPSF

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.

Page 6: Taller de Producci ó n de Programas sin Fallas

Presentación - 6TTPSF

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

...

Transporte Aeronáutica Centrales nucleares Dispositivos médicos Comercio electrónico

...

Métodos formalesAplicaciones IndustrialesCríticas

Métodos Formales y Desarrollo Industrial de Software

Page 7: Taller de Producci ó n de Programas sin Fallas

Presentación - 7TTPSF

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

Page 8: Taller de Producci ó n de Programas sin Fallas

Presentación - 8TTPSF

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

Page 9: Taller de Producci ó n de Programas sin Fallas

Presentación - 9TTPSF

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)

Page 10: Taller de Producci ó n de Programas sin Fallas

Presentación - 10TTPSF

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.

Page 11: Taller de Producci ó n de Programas sin Fallas

Presentación - 11TTPSF

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.

Page 12: Taller de Producci ó n de Programas sin Fallas

Presentación - 12TTPSF

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

Page 13: Taller de Producci ó n de Programas sin Fallas

Presentación - 13TTPSF

En este curso

Lógicas de Programación

- Teorías de Tipos

- Asistente de Pruebas Coq

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

- Dyade

- Dassault Aviation

- CNET

Page 14: Taller de Producci ó n de Programas sin Fallas

Presentación - 14TTPSF

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

Page 15: Taller de Producci ó n de Programas sin Fallas

Presentación - 15TTPSF

Programa

Definiciones Inductivas– principios de inducción y esquemas de recursión

Construcción de programas certificados usando Coq

– programas funcionales e imperativos

Page 16: Taller de Producci ó n de Programas sin Fallas

Presentación - 16TTPSF

[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.

Referencias