Title: Taller de Producci
1Taller 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
2Objetivos
- 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
3Certificació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
4Norma 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 . ...
5Normas 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.
6Métodos Formales y Desarrollo Industrial de
Software
Aplicaciones Industriales Críticas
Métodos formales
- 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
- ...
7Algunas 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
8Má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
9Aplicació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)
10Buenas 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.
11Buenas 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.
12El 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
13En 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
14Programa
- 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
15Programa
- Definiciones Inductivas
- principios de inducción y esquemas de recursión
- Construcción de programas certificados usando Coq
- programas funcionales e imperativos
16Referencias
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.