El desarrollo de métodos formales se concreta en la creación de herramientas (FT) las cuales podemos caracterizar rugosamente de la siguiente manera:
La parte de inferencia mecánica se refiere al sustento operacional, generalmente en términos de la teoría de pruebas para una lógica, u operaciones de reducción en un álgebra. Se pretende que las propiedades fundamentales de un sistema que están siendo modeladas por el LF puedan ser demostradas: la construcción de pruebas formales constituye el vehículo principal para reflejar las propiedades del sistema que está siendo modelado, identificando posibles errores de diseño, inconsistencias, etc. Y más aún, la construcción de pruebas se vuelve trascendente cuando permite definir paradigmas abstractos de cómputo: cómputo como reducción de pruebas y cómputo como búsqueda de pruebas. En particular, para cuando el LF está fundamentado en una lógica, su IM se basa en un demostrador automático de teoremas que puede o no estar apoyado por un constructor de modelos.
Bajo éste punto de vista, una Especificación Formal no es más que una teoría construída sobre el LF y cuyas propiedades son sustentadas mediante pruebas formales (fig. 1).
De manera muy similar como ocurre con los lenguajes de programación, la utilidad de una FT está determinada por el equilibrio que ofrezca entre expresividad y desempeño, en particular éste último aspecto está estrechamente ligado con la construcción de pruebas que demuestran las propiedades del sistema, más que respecto al desempeño mismo del sistema modelado. Resulta natural seguir una estrategia experimental: construír prototipos interactivos de LF y sus correspondientes IM para apreciar sus bondades. Sin embargo, esta estrategia tiende a ser subjetiva, pues depende en gran medida de la comodidad que los usuarios sientan por la herramienta.
Resulta interesante observar que, en general, para un mismo LF se puedan ofrecer varios IM, inclusive que distintos LF (independientemente fundamentados en lógicas, cálculos o álgebras) puedan ser expresivamente equivalentes (atiendan el mismo DM). Se hace patente, por lo tanto considerar un nivel de abstracción superior: poder analizar las propiedades de los LF y de sus IM para identificar equivalencias o correspondencias entre distintos LF (ya sea basados en lógicas, cálculos ó álgebras). Para ello, se debe contar con un metalenguaje que permita expresar a los LF y los IM con la mayor generalidad posible: se considera que ese metalenguaje es la Teoría de Categorías (). No obstante, esa generalidad que ofrece la conduce también a establecer consideraciones pragmáticas, computacionalmente hablando. Aún cuando la es considerada como demasiado abstracta en el sentido que las estructuras matemáticas son analizadas en tal nivel de generalidad que la realización de cómputos sean posibles o deseables, se tienen antecedentes en su aplicación pragmática para la solución de problemas (que inclusive microsoft admite utilizar!).
En el campo de las aplicaciones, la emergente tecnología de Agentes
computacionales encuentra sitio en prácticamente todo ámbito:
desde sistemas operativos distribuidos, lenguajes de programación,
dispositivos de hardware, etc. hasta aplicaciones de Inteligencia Artificial,
como asistentes personales (interacción humano computadora), comercio
electrónico, etc. Las necesidades para asegurar interacción
confiable en tales sistemas deben ser satisfechas, por lo que el desarrollo
de Métodos Formales encuentra un campo fértil para proponer
y desarrollar soluciones a la amplia gama de retos existentes en los sistemas
MultiAgente (MAS).
Tradicionalmente, el uso de métodos formales se toma como una
fase separada entre la formulación de análisis y diseño
y la implantación y verificación del sistema (fig 2
(a)). Sin embargo, gracias a los modelos de cómputo abstracto que
semánticamente pueden sustentarse, es posible que la aplicación
de los MF se establezca como una correspondencia partiendo del análisis
y conduciendo a la implantación automática y confiable, refinando
crecientemente e interactivamente el diseño conforme las necesidades
así lo requieran (fig. 2 (b))
o en otras palabras, producir especificaciones eficientemente ejecutables.
Es de especial mención los avances en cuanto a la generación
semántica de compiladores y máquinas abstractas.