Sei sulla pagina 1di 3

MTODOS FORMALES DE INGENIERA DE SOFTWARE

Notas de clase (1)

Unidad 1. Nociones de Mtodos Formales Modelo de Mtodos Formales


METODOS FORMALES La denominacin mtodos formales se usa para referirse a cualquier actividad relacionada con representaciones matemticas del software, incluyendo la especificacin formal de sistemas, anlisis y demostracin de la especificacin, el desarrollo transformacional y la verificacin de programas. Todas estas actividades dependen de una especificacin formal del software. Una especificacin formal del software es una especificacin expresada en un lenguaje cuyo vocabulario, sintaxis y semntica estn formalmente definidos. Esta necesidad de una definicin formal significa que los lenguajes de especificacin deben basarse en conceptos matemticos cuyas propiedades se comprendan bien. La rama de las matemticas usada es la de matemtica discreta, y los conceptos matemticos provienen de la teora de conjuntos, la lgica y el lgebra. En la dcada de los 80, muchos investigadores de ingeniera del software propusieron que el uso de mtodos formales de desarrollo era la mejor forma de mejorar la calidad del software. Argumentaban que el rigor y el anlisis detallado, que son una parte esencial de los mtodos formales, podran dar lugar a programas con menos errores y ms adecuados a las necesidades de los usuarios. Predijeron que, en el siglo XXI, una gran proporcin del software estara desarrollado usando mtodos formales. Claramente, esta prediccin no se ha hecho realidad. Existen cuatro razones principales para esto: 1. Una ingeniera del software exitosa. El uso de otros mtodos de ingeniera del software como los mtodos estructurados, gestin de configuraciones y ocultacin de la informacin en el diseo 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 mtodos formales estaba claramente equivocada. 2. Cambios en el mercado. En la dcada de los 80, la calidad del software fue vista como un problema clave de la ingeniera del software. Sin embargo, desde entonces, la cuestin crtica para muchas clases de desarrollo del software no es la calidad, sino la oportunidad de mercado. El software debe desarrollarse rpidamente, y los clientes estn dispuestos a aceptar software con algunos defectos si se les entrega rpidamente. Las tcnicas para el desarrollo rpido del software no funcionan de forma efectiva con las especificaciones formales. Por supuesto, la calidad todava es un factor importante, pero debe lograrse en el contexto de entrega rpida. 3. mbito limitado de los mtodos formales. Los mtodos formales no son muy apropiados para la especificacin 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 mayora de los sistemas, de manera que realmente s6lo pueden usarse mtodos formales cuando se desarrollan las otras partes del sistema. 4. Escalabilidad limitada de los mtodos formales. Los mtodos formales todava no son muy escalables. La mayora de los proyectos con xito que han usado estas tcnicas han estado relacionados con ncleos de sistemas crticos relativamente pequeos. A medida que los sistemas incrementan su tamao, el tiempo y esfuerzo requerido para desarrollar una especificacin formal crece de forma desproporcionada.

MPCE. Miguel ngel Reyes V. (2013)

MTODOS FORMALES DE INGENIERA DE SOFTWARE


Notas de clase (1)

Ventajas Se comprende mejor el sistema. La comunicacin con el cliente mejora ya que se dispone de una descripcin clara y no ambigua de los requisitos del usuario. El sistema se describe de manera ms precisa. El sistema se asegura matemticamente que es correcto segn las especificaciones. Mayor calidad software respecto al cumplimiento de las especificaciones. Mayor productividad

Desventajas El desarrollo de herramientas que apoyen la aplicacin de mtodos formales es complicado y los programas resultantes son incmodos para los usuarios. Los investigadores por lo general no conocen la realidad industrial. Es escasa la colaboracin entre la industria y el mundo acadmico, que en ocasiones se muestra demasiado dogmtico.

Se considera que la aplicacin de mtodos formales encarece los productos y ralentiza su desarrollo. El uso de mtodos formales est creciendo en el rea del desarrollo de sistemas crticos, en donde las propiedades emergentes del sistema tales como seguridad, fiabilidad y proteccin son muy importantes. El alto coste de los fallos de funcionamiento en estos sistemas implica que las compaas estn dispuestas a aceptar los costes elevados iniciales de los mtodos formales para asegurar que su software es tan confiable como sea posible. Los sistemas crticos en los que los mtodos formales se han aplicado con xito incluyen un sistema de informacin de control de trfico areo, sistemas de sealizacin de redes ferroviarias, sistemas de naves espaciales y sistemas de control mdico. Clasificacin La clasificacin ms comn se realiza en base al modelo matemtico subyacente en cada mtodo, de esta manera podran clasificarse en: Especificaciones basadas en lgica de primer orden y teora 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 lgica de primer orden. La semntica de los lenguajes est basada en la teora de conjuntos. Los mtodos de este tipo ms conocidos son: Z, VDM y B. Especificaciones algebraicas: proponen una descripcin de estructuras de datos estableciendo tipos y operaciones sobre esos tipos. Para cada tipo se define un conjunto de valores y operaciones sobre dichos valores. Las operaciones de un tipo se definen a travs de un conjunto de axiomas o ecuaciones que especifican las restricciones que deben satisfacer las operaciones. Mtodos ms conocidos: Larch, OBJ, TADs. Especificacin de comportamiento: Mtodos basados en lgebra de procesos: modelan la interaccin entre procesos concurrentes. Esto ha potenciado su difusin en la especificacin de sistemas de comunicacin (protocolos y servicios de telecomunicaciones) y de sistemas distribuidos y concurrentes. Los ms conocidos son: CCS,CSP y LOTOS.

MPCE. Miguel ngel Reyes V. (2013)

MTODOS FORMALES DE INGENIERA DE SOFTWARE


Notas de clase (1)

Mtodos basados en Redes de Petri: una red de petri es un formalismo basado en autmatas, es decir, un modelo formal basado en flujos de informacin. Permiten expresar eventos concurrentes. Los formalismos basados en redes de petri establecen la nocin de estado de un sistema mediante lugares que pueden contener marcas. Un conjunto de transiciones (con pre y post condiciones) describe la evolucin del sistema entendida como la produccin y consumo de marcas en varios puntos de la red. Mtodos basados en lgica temporal: se usan para especificar sistemas concurrentes y reactivos. Los sistemas reactivos son aquellos que mantienen una continua interaccin con su entorno respondiendo a los estmulos externos y produciendo salidas en respuestas a los mismos, por lo tanto el orden de los eventos en el sistema no es predecible y su ejecucin no tiene por qu terminar.

MPCE. Miguel ngel Reyes V. (2013)

Potrebbero piacerti anche