MODELO DE MÉTODOS FORMALES
La denominación métodos formales se usa
para referirse a cualquier actividad relacionada con representaciones
matemáticas del software, incluyendo la especificación formal de sistemas,
análisis y demostración de la especificación, el desarrollo transformacional y
la verificación de programas. Todas estas actividades dependen de una
especificación formal del software.
Una especificación formal del software es
una especificación expresada en un lenguaje cuyo vocabulario, sintaxis y
semántica están formalmente definidos. Esta necesidad de una definición formal
significa que los lenguajes de especificación deben basarse en conceptos
matemáticos cuyas propiedades se comprendan bien. La rama de las matemáticas
usada es la de matemática discreta, y los conceptos matemáticos provienen de la
teoría de conjuntos, la lógica y el álgebra.
En la década de los 80, muchos
investigadores de ingeniería del software propusieron que el uso de métodos
formales de desarrollo era la mejor forma de mejorar la calidad del software.
Argumentaban que el rigor y el análisis detallado, que son una parte esencial
de los métodos formales, podrían dar lugar a programas con menos errores y más
adecuados a las necesidades de los usuarios. Predijeron que, en el siglo XXI,
una gran proporción del software estaría desarrollado usando métodos formales.
Claramente, esta predicción no se ha hecho
realidad. Existen cuatro razones principales para esto:
1.
Una ingeniería del software exitosa.
El
uso de otros métodos de ingeniería del software como los métodos estructurados,
gestión de configuraciones y ocultación de la información en el diseño del
software y procesos de desarrollo ha conducido a mejoras en la calidad del
software. La gente que sugirió que la única forma de mejorar la calidad del
software era usando métodos formales estaba claramente equivocada.
2. Cambios
en el mercado.
En
la década de los 80, la calidad del software fue vista como un problema clave
de la ingeniería del software. Sin embargo, desde entonces, la cuestión crítica
para muchas clases de desarrollo del software no es la calidad, sino la
oportunidad de mercado. El software debe desarrollarse rápidamente, y los
clientes están dispuestos a aceptar software con algunos defectos si se les
entrega rápidamente. Las técnicas para el desarrollo rápido del software no funcionan
de forma efectiva con las especificaciones formales. Por supuesto, la calidad todavía
es un factor importante, pero debe lograrse en el contexto de entrega rápida.
3.
Ámbito limitado de los métodos formales.
Los
métodos formales no son muy apropiados para la especificación de interfaces de
usuario e interacciones del usuario. El componente de interfaz de usuario se ha
convertido en una parte cada vez mayor de la mayoría de los sistemas, de manera
que realmente s6lo pueden usarse métodos formales cuando se desarrollan las
otras partes del sistema.
4. Escalabilidad limitada de los
métodos formales.
Los
métodos formales todavía no son muy escalables. La mayoría de los proyectos con
éxito que han usado estas técnicas han estado relacionados con núcleos de
sistemas críticos relativamente pequeños. A medida que los sistemas incrementan
su tamaño, el tiempo y esfuerzo requerido para desarrollar una especificación
formal crece de forma desproporcionada.
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.
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.
El uso de métodos formales está creciendo
en el área del desarrollo de sistemas críticos, en donde las propiedades
emergentes del sistema tales como seguridad, fiabilidad y protección son muy
importantes. El alto coste de los fallos de funcionamiento en estos sistemas
implica que las compañías están dispuestas a aceptar los costes elevados iniciales
de los métodos formales para asegurar que su software es tan confiable como sea
posible.
Los
sistemas críticos en los que los métodos formales se han aplicado con éxito
incluyen un sistema de información de control de tráfico aéreo, sistemas de señalización
de redes ferroviarias, sistemas de naves espaciales y sistemas de control
médico.
No hay comentarios:
Publicar un comentario