metodologias formales

14

Click here to load reader

Upload: walder-cardenas

Post on 09-Jul-2015

2.772 views

Category:

Technology


2 download

DESCRIPTION

Breve presentación de las metodologias formales, se tocan aspectos generales

TRANSCRIPT

Page 1: Metodologias formales

WALDER CARDENAS POVEDA

COD:172001478

Page 2: Metodologias formales

Que son?

Es cualquier serie de técnicas que trate

la construcción y/o el análisis de

modelos matemáticos que contribuyen a

la automatización del desarrollo de

sistemas informáticos.

Page 3: Metodologias formales

El papel en la IS

Los metodologías formales se basan enel empleo de técnicas, lenguajes yherramientas definidosmatemáticamente para cumplir objetivostales como facilitar el análisis yconstrucción de sistemas confiablesindependientemente de su complejidad,delatando posibles inconsistencias oambigüedades que de otra formapodrían pasar inadvertidas.

Page 4: Metodologias formales

En los últimos años la idea de formalizar elsoftware, ha tomado fuerza, los defensores,dicen que la utilización de este a lo largo delciclo de vida facilita el desarrollo deespecificaciones mas claras y concisas y noambiguas.

Sin embargo los detractores aseguran que elempleo de métodos formales supone unvolumen de trabajo considerable, aumento enlos costes y tiempo de desarrollo y que debequedar supeditado a herramientas que loautomaticen.

Page 5: Metodologias formales
Page 6: Metodologias formales

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

Page 7: Metodologias formales

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.

Page 8: Metodologias formales

Clasificación Especificaciones basadas en lógica de primer

orden y teoría de conjuntos: permiten especificar

el sistema mediante un concepto formal de

estados y operaciones sobre estados. Los datos y

relaciones/funciones se describen en detalle y sus

propiedades se expresan en lógica de primer

orden. La semántica de los lenguajes está basada

en la teoría de conjuntos. Los métodos de este

tipo más conocidos son: Z, VDM y B.

Especificaciones algebraicas: proponen una

descripción de estructuras de datos estableciendo

tipos y operaciones sobre esos tipos.

Page 9: Metodologias formales

Clasificación por

comportamiento Métodos basados en álgebra de procesos: modelan la

interacción entre procesos concurrentes. Esto ha potenciado sudifusión en la especificación de sistemas de comunicación(protocolos y servicios de telecomunicaciones) y de sistemasdistribuidos y concurrentes. Los más conocidos son: CCS,CSP yLOTOS.

Métodos basados en Redes de Petri: una red de petri es unformalismo basado en autómatas, es decir, un modelo formalbasado en flujos de información. Permiten expresar eventosconcurrentes. Los formalismos basados en redes de petriestablecen la noción de estado de un sistema mediante lugaresque pueden contener marcas..

Métodos basados en lógica temporal: se usan para especificarsistemas concurrentes y reactivos. Los sistemas reactivos sonaquellos que mantienen una continua interacción con su entornorespondiendo a los estímulos externos y produciendo salidas enrespuestas a los mismos, por lo tanto el orden de los eventos en elsistema no es predecible y su ejecución no tiene por qué terminar.

Page 10: Metodologias formales

Métodos de verificación

Aserciones E/S

Se especifica mediante aserciones que relacionan las entradas y salidas del programa. Se garantiza que si la entrada actual satisface las restricciones de entrada (precondiciones) la salida satisface las restricciones de salida (pos condiciones).

Se utiliza una expresión del tipo P{programa}Q, siendo P y Q aserciones de la lógica, para indicar que si P es cierto antes de la ejecución del programa y dicho programa termina, entonces Q es cierto tras la ejecución de dicho programa. Este método permite tanto la corrección parcial como total de los programas.

predicado debe cumplir lo siguiente:

Es cierto a la entrada del bucle

Es cierto en cualquier paso del bucle

Junto con la negación de la condición del bucle, implica que el predicado se cumple a la salida del bucle.

Page 11: Metodologias formales

Precondición más débil

Básicamente, consiste en dada una pos condición POST, encontrar, operando hacia atrás, un programa S tal que wp(S, POST) (la precondición) se satisfaga en un amplio conjunto de situaciones.

Dada una proposición (P) S (Q) donde S es un conjunto de sentencias de un módulo de un programa, y donde P y Q son los predicados que se cumplen antes y después de S respectivamente, se dice que P es la precondición más débil (wp) de S, si es la condición mínima que garantiza que R es cierto tras la ejecución de S.

Page 12: Metodologias formales

Inducción estructural

La inducción estructural es una técnica de verificación formalque se basa en el principio de inducción matemática.

Dado un conjunto S con una serie de propiedades y una proposición P que se desea probar, la inducción matemática:

Demuestra que P es cierto para el mínimo número de elementos (o casos triviales) de S.

Asume que P es cierto para un número de elementos (o casos posibles) de S menores o iguales a N.

Demuestra que entonces P es cierto para el elemento N+1 de S.

Page 13: Metodologias formales

Cuando se utilizan métodos formales,

se eliminan muchos de los problemas

que son difíciles de superar con las

metodologías habituales. La

ambigüedad, lo incompleto y la

inconsistencia se descubren y se

corrigen más fácilmente, mediante la

aplicación del análisis matemático.

Page 14: Metodologias formales

Esta forma de crear software ofrece un

producto libre de defectos. Sin embargo

se ha difundido poco, por ser caro de

desarrollar, requerir bastante tiempo y

es difícil de comunicar a clientes sin

muchos conocimientos técnicos.