You are on page 1of 4

Mtodo formal

En ingeniera de software un mtodo formal es un ca- 2.2 Desventajas


mino a la construccin y anlisis de modelos matemti-
cos que permitan una automatizacin del desarrollo de El desarrollo de herramientas que apoyen la aplica-
sistemas informticos.[1] Los mtodos formales se carac- cin de mtodos formales es complicado y los pro-
terizan por emplear tcnicas y herramientas matemti- gramas resultantes son incmodos para los usuarios.
cas para lograr una facilitacin a la hora de encarar la
Los investigadores por lo general no conocen la
construccin o el anlisis de un modelo matemtico de
[2] realidad industrial.
un sistema.
Es escasa la colaboracin entre la industria y el mun-
do acadmico, que en ocasiones se muestra dema-
1 Historia siado dogmtico.

Se considera que la aplicacin de mtodos formales


En 1967, Robert Floyd propuso utilizar lo que se denomi-
encarece los productos y ralentiza su desarrollo.
n mtodo de aserciones intermedias como una manera
de estudiar las propiedades de los programas. Destac la
posibilidad de denir la semntica de las operaciones me-
diante reglas lgicas armando que estas aserciones son 3 Mtodos de Vericacin
vlidas despus de ejecutarse las operaciones basndose
en la informacin de las aserciones que son vlidas antes Entre los mtodos de vericacin ms utilizados, se en-
de ejecutarse dichas operaciones. cuentran:
Estas ideas fueron perfeccionadas por Hoare dando lugar
al mtodo axiomtico (precondiciones E/S) donde intro- Aserciones E/S
dujo la idea de invariante.
Precondicin ms dbil
En 1976, Edsger Dijkstra, present un mtodo formal lla-
mado precondicin ms dbil, basado en la transforma- Induccin estructural
cin de predicados wp (weakest precondition). De esta
manera rompa con las ideas de vericacin a posteriori
de Floyd y Dijkstra. La idea principal era invertir los m-
3.1 Aserciones E/S
todos de ambos de tal manera que se pudiera derivar la
Basado en la lgica de Hoare. El programa, en lgica de
precondicin a partir de la postcondicin.
Hoare, se especca mediante aserciones que relacionan
las entradas y salidas del programa. Se garantiza que si la
entrada actual satisface las restricciones de entrada (pre-
2 Ventajas condiciones) la salida satisface las restricciones de salida
(poscondiciones).
2.1 Ventajas Se utiliza una expresin del tipo P{programa}Q, siendo P
y Q aserciones de la lgica, para indicar que si P es cier-
Se comprende mejor el sistema.
to antes de la ejecucin del programa y dicho programa
La comunicacin con el cliente mejora ya que se dis- termina, entonces Q es cierto tras la ejecucin de dicho
pone de una descripcin clara y no ambigua de los programa. Este mtodo permite tanto la correccin par-
requisitos del usuario. cial como total de los programas.

El sistema se describe de manera ms precisa. Un caso especial son los bucles, donde los predicados de-
ben mostrar una relacin invariante, es decir, deben ser
El sistema se asegura matemticamente que es co- ciertos independientemente del nmero de vueltas del bu-
rrecto segn las especicaciones. cle, por lo tanto el predicado debe cumplir lo siguiente:
Mayor calidad en el software respecto al cumpli-
miento de las especicaciones. Es cierto a la entrada del bucle

Mayor productividad. Es cierto en cualquier paso del bucle

1
2 5 VASE TAMBIN

Junto con la negacin de la condicin del bucle, im- y operaciones sobre esos tipos. Para cada tipo se de-
plica que el predicado se cumple a la salida del bu- ne un conjunto de valores y operaciones sobre di-
cle. chos valores. Las operaciones de un tipo se denen a
travs de un conjunto de axiomas o ecuaciones que
especican las restricciones que deben satisfacer las
3.2 Precondicin ms dbil operaciones. Mtodos ms conocidos: Larch, OBJ,
TADs.
Bsicamente, consiste en dada una poscondicin POST,
encontrar, operando hacia atrs, un programa S tal que Especicacin de comportamiento:
wp(S, POST) (la precondicin) se satisfaga en un amplio
conjunto de situaciones
Mtodos basados en lgebra de procesos: modelan la
Dada una proposicin (P) S (Q) donde S es un conjunto interaccin entre procesos concurrentes. Esto ha po-
de sentencias de un mdulo de un programa, y donde P y tenciado su difusin en la especicacin de sistemas
Q son los predicados que se cumplen antes y despus de de comunicacin (protocolos y servicios de teleco-
S respectivamente, se dice que P es la precondicin ms municaciones) y de sistemas distribuidos y concu-
dbil (wp) de S, si es la condicin mnima que garantiza rrentes. Los ms conocidos son: CCS, CSP y LO-
que Q es cierto tras la ejecucin de S. TOS.

3.3 Induccin estructural Mtodos basados en Redes de Petri: una red de pe-
tri es un formalismo basado en autmatas, es decir,
un modelo formal basado en ujos de informacin.
La induccin estructural es una tcnica de vericacin
Permiten expresar eventos concurrentes. Los forma-
formal que se basa en el principio de induccin matem-
lismos basados en redes de petri establecen la nocin
tica.
de estado de un sistema mediante lugares que pue-
Dado un conjunto S con una serie de propiedades y una den contener marcas. Un conjunto de transiciones
proposicin P que se desea probar, la induccin matem- (con pre y post condiciones) describe la evolucin
tica: del sistema entendida como la produccin y consu-
mo de marcas en varios puntos de la red.
Demuestra que P es cierto para el mnimo nmero
de elementos (o casos triviales) de S. Mtodos basados en lgica temporal: se usan para
especicar sistemas concurrentes y reactivos. Los
Asume que P es cierto para un nmero de elementos sistemas reactivos son aquellos que mantienen una
(o casos posibles) de S menores o iguales a N. continua interaccin con su entorno respondiendo a
los estmulos externos y produciendo salidas en res-
Demuestra que entonces P es cierto para el elemento puestas a los mismos, por lo tanto el orden de los
N+1 de S. eventos en el sistema no es predecible y su ejecu-
cin no tiene por qu terminar.

4 Clasicacin
5 Vase tambin
La clasicacin ms comn se realiza en base al modelo
matemtico subyacente en cada mtodo, de esta manera Lenguajes formales
podran clasicarse en:
Especicacin formal
Especicaciones basadas en lgica de primer or-
Demostracin automtica de teoremas
den y teora de conjuntos: permiten especicar
el sistema mediante un concepto formal de estados Vericacin formal
y operaciones sobre estados. Los datos y relacio-
nes/funciones se describen en detalle y sus propie- Diseo por contrato
dades se expresan en lgica de primer orden. La se-
mntica de los lenguajes est basada en la teora de Sistema formal
conjuntos. Los mtodos de este tipo ms conocidos
son: Z, VDM y B. Model checking

Ingeniera de software
Especicaciones algebraicas: proponen una des-
cripcin de estructuras de datos estableciendo tipos Lenguaje de especicacin
3

6 Referencias
[1] R. W. Butler (6 de agosto de 2001). What is Formal Met-
hods?. Consultado el 16 de noviembre de 2006.

[2] C. Michael Holloway. Why Engineers Should Consider


Formal Methods. 16th Digital Avionics Systems Confe-
rence (2730 October 1997). Archivado desde el original
el 26 de noviembre de 2015. Consultado el 16 de noviem-
bre de 2006.

7 Bibliografa
Jean Franois Monin and Michael G. Hinchey, Un-
derstanding formal methods, Springer, 2003, ISBN
1-85233-247-6.
Jonathan P. Bowen and Michael G. Hinchey, For-
mal Methods. In Allen B. Tucker, Jr. (ed.), Computer
Science Handbook, 2nd edition, Section XI, Softwa-
re Engineering, Chapter 106, pages 106-1 106-25,
Chapman & Hall / CRC Press, Association for Com-
puting Machinery, 2004.

Michael G. Hinchey, Jonathan P. Bowen, and Emil


Vassev, Formal Methods. In Philip A. Laplante
(ed.), Encyclopedia of Software Engineering, Taylor
& Francis, 2010, pages 308320.

8 Enlaces externos
Formal Methods Wiki
List of formal methods and tools
Formal methods publications
Whos who in formal methods

Formal Methods Europe (FME)


Formal method

Foldoc:formal methods
Evidence on Formal Methods uses and impact on
Industry soportado por el proyecto DEPLOY
Mtodos formales
4 9 ORIGEN DEL TEXTO Y LAS IMGENES, COLABORADORES Y LICENCIAS

9 Origen del texto y las imgenes, colaboradores y licencias


9.1 Texto
Mtodo formal Fuente: https://es.wikipedia.org/wiki/M%C3%A9todo_formal?oldid=87268599 Colaboradores: CEM-bot, Loveless, Tec-
sie, Franc00!, TiriBOT, Waeswaes, ZroBot, PABLOLIZ, KLBot2, MetroBot, Elvisor, BenjaBot y Annimos: 6

9.2 Imgenes

9.3 Licencia del contenido


Creative Commons Attribution-Share Alike 3.0