Métodos Formales

Preview:

Citation preview

Métodos ormales

Modelo de Desarrollo de Software

¿Que es un método formal?

Modelo matemático para

- Diseñar.

- Especificar.

- Implementar.

- Verificar.

Sistemas informáticos.

istoria

Floyd (1967).Secuenciales

Ashcroft (1975).Concurrentes

En la geniería de Software

En la Ingeniería de Software los métodos formales se utilizan para: ● Las políticas de los requisitos● La especificación● Las pruebas de correspondencia entre la especificación y los

requisitos● Las pruebas de correspondencia entre el código fuente y la ● especificación● Pruebas de correspondencia entre el código máquina y el código

fuente

Ven ajas de los métodos formales

● Especificación

● Verificación

● Validación

Es ecificación

La ingeniería de Software tiene problemas para la especificación de comportamientos.

La especificación formal proporciona una mayor precisión.

Detección de ambigüedades y omisiones.

Verificación

“Se esta construyendo el producto correcto.”

Con los métodos comunes a pesar de la generación de manuales de pruebas rigurosos solo se logra eliminar los errores más evidentes.

Las técnicas de verificación formal dependen de especificaciones matemáticas precisas.

Validación

“Se esta construyendo el producto correcto.”

Utilizado principalmente para sistemas complejos como aquellos de modelado y simulación.

Ventajas

● Se comprende mejor el sistema.

● La comunicación con el cliente mejora ya que se dispone de una

descripción clara y no ambigua de los requisitos del usuario.

● El sistema se describe de manera más precisa.

● El sistema se asegura matemáticamente que es correcto según las

especificaciones.

● Mayor calidad software respecto al cumplimiento de las

especificaciones.

● Mayor productividad

Desventajas

● El desarrollo de herramientas que apoyen la aplicación de métodos

formales es complicado y los programas resultantes son incómodos

para los usuarios.

● Los investigadores por lo general no conocen la realidad industrial.

● Es escasa la colaboración entre la industria y el mundo académico,

que en ocasiones se muestra demasiado dogmático.

● Se considera que la aplicación de métodos formales encarece los

productos y ralentiza su desarrollo

Cla ificación

● Especificaciones basadas en lógica de primer orden y teoría de conjuntos

● Especificaciones algebraicas

● Especificación de comportamiento○ Métodos basados en álgebra de procesos○ Métodos basados en Redes de Petri○ Métodos basados en lógica temporal

Los 10 andamientos(Bowen, Hinchley)1. Seleccionarás la notación adecuada.2. Formalizarás, pero no de más.3. Estimarás los costes.4. Poseerás un experto en métodos formales a tu disposición.5. No abandonarás tus métodos formales de desarrollo.6. Documentarás suficientemente.7. No comprometerás los estándares de calidad.8. No serás dogmático.9. Comprobarás, comprobarás y volverás a comprobar.10. Reutilizarás cuanto puedas.

Los 7 itos de Hall

1. Los métodos formales pueden garantizar la corrección del software

2. Todos los métodos formales se refieren a la corrección de programas

3. Son de utilidad solamente para sistemas de altas prestaciones/alta integridad (safety-critical)

4. Su uso requiere una alta cualificación o entrenamiento matemático

5. Incrementan el coste de desarrollo6. Son inadecuados y no serán aceptados por los clientes7. No se usan en la realidad en proyectos software de gran

escala

Fracasos de la Aplicación de MF

● Algoritmo de división del procesador Pentium (1993)Costo: 475 millones de dólares, credibilidad de Intel

● Explosión de la misión espacial Ariane 5 (1996)Costo: 500 millones de dólares

● Orbitador climático de Marte (1998)Costo: 125 millones de dólares

Logros de la Aplicación de MF

● Metéor, Matra Transport, France:Herramienta: Atelier-BResultado: No se encontró ningún error durante el testing de 80000 líneas de código.

● SPOT 4, CS-CI, France:Herramienta: IFAD VDM-SL ToolboxResultado: Se redujo un 38% menos de código fuente y un 36%menos de esfuerzo total.

El futuro de los métodos formales

“Un mundo en el que los productos software siempre serán fiables, y que la labor de los ingenieros de software sea realmente Ingeniería.”

Logic in Computer Science26th International Conference on

Computer Aided Verification (CAV)

Conclusiones

Los métodos formales son técnicas matemáticas, a menudo soportadas por herramientas, para el desarrollo de sistemas software y hardware. Su rigor matemático le permite a los ingenieros analizar y verificar sus modelos en cualquier parte del ciclo de vida del desarrollo.

Conclusiones

Mediante un método formal, el sistema se deja de ver como un generador de eventos y se empieza a tratar como un transformador de estado.

Conclusiones

Los métodos formales tienen un nivel más elevado de precisión cuando se realizan procesos de validación y verificación del software, sobretodo en aplicaciones con grados altos de complejidad.

Bibliografía

● Ian Somerville. Ingeniería del Software 7ma. Edición. Pearson, 2005.

● Edgar Serna Montoya. Métodos formales e Ingeniería de Software. [Internet] Septiembre 2010. Disponible en: http://www.redalyc.org/pdf/1942/194214476008.pdf

● Rodolfo Quispe-Otazu. ¿Que son los Métodos Formales?. Blog de Rodolfo Quispe-Otazu [Internet]. Febrero 2009. Disponible en: http://www.rodolfoquispe.org/blog/que-son-los-metodos-formales.php

● Carlos Gustavo Lopez Pombo. Métodos formales en la ingeniería de software: en busca de la bala de plata. 2004. Disponible en: http://www-2.dc.uba.ar/charladeborrachos/presentaciones/charla_2004-29-10.pdf

Recursos Web 2.0