metodologias formales
DESCRIPTION
Breve presentación de las metodologias formales, se tocan aspectos generalesTRANSCRIPT
WALDER CARDENAS POVEDA
COD:172001478
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.