Вы находитесь на странице: 1из 5

FACULTAD DE MATEMATICAS

LIC. ING. DE SOFTWARE

METODOS FORMALES EN ESPECIFICACION Y DISEO DE SOFTWARE

TAREA 1

SIETE MITOS DE LOS METODOS FORMALES

23/AGOSTO/11

En este artculo bastante interesante el autor nos habla de la polmica relacionada con los mtodos formales. Existen muchas personas que estn a favor debido a los beneficios que les ha proporcionado y muchas otras estn en contra ya que tiene el conocimiento preconcebido de que las matemticas son un tanto difciles; nos dice que no existe evidencia real de que postura es la correcta. El autor segn nos informa ha tenido la oportunidad de tener buenas experiencias implementando los mtodos formales y gracias a esta experiencia l se ha dado cuenta de que beneficios que les ha otorgado y tambin de que creencias son realmente ciertas acerca de los mtodos; todo este conocimiento que adquirieron los han querido redactar en este artculo dando una mirada practica a los mtodos formales, para explicarlo mejor decidieron usar como ejemplo un proyecto llamado CASE. Los siete mitos principales son variaciones de los siguientes:

Los mtodos formales garantizan que el software est perfecto. Los mtodos formales se centran en demostrar correccin.
Los mtodos formales son tiles solo para sistemas crticos. Los mtodos formales requieren matemticos entrenados. Los mtodos formales aumentan el costo del desarrollo. Los mtodos formales son incomprensibles para los usuarios. Los mtodos formales no se usan en grandes proyectos reales. A continuacin daremos un pequeo resumen de lo que han descubierto en cada uno de los mitos. 1.- Los mtodos formales garantizan que el software est perfecto. Segn nos platican un error importante en que desafortunadamente los que estn a favor sostienen que los mtodos formales ofrecen un garanta absoluta sobre que de ninguna otra forma se podra lograr, pero inmediatamente podemos refutar esto ya que sabemos que ningn software es perfecto. Para entender mejor lo que es un mtodo formal debemos aceptar que el mundo real no es un sistema formal en consecuencia las cosas no siempre salen como se esperan de modo que nunca se puede estar seguro de que una especificacin es correcta no importa cunto se pruebe acerca de ella. Los modelos basados en la matemticas son mejor entendidos para poder confiarnos de ellos y cuando ms experiencia tengamos con los mtodos ms confianza tendremos en estos modelos. Nos dan un ejemplo de un diseador de una gra usa un determinado modelo el cual hay forma de saber cmo se comportara la gra real y aunque resulte un desastre nadie le sugerira que los diseadores abandonen las matemticas.

2.- Los mtodos formales se centran en demostrar correccin. Los mtodos formales se tratan de especificaciones, el autor usa el termino mtodos formales para describir el uso de las matemticas en el desarrollo del software. La verificacin de programas solo es uno de los aspectos de los mtodos formales no es su principal funcin como se piensa, mayormente la verificacin es un aspecto muy importante en los sistemas crticos y poco importante en los que no lo son ya que el costo de remover errores es demasiado y crece constantemente al avanzar en el proyecto. En fin la parte mas importante de un desarrollo formal es la especificacin del sistema desde el punto de vista econmico.

3.- Los mtodos formales son tiles solo para sistemas crticos. Las especificaciones formales son tiles para cualquier tipo de proyecto y se deben de usar siempre y cuando el costo del fracaso sea alto, los cuales son: 1. 2. 3. 4. De alguna forma crticos. Replicados muchas veces. Fijos en el hardware. Dependientes de la calidad por motivos comerciales.

Cualquier software califica por alguno de estos motivos ya que todos deben garantizar calidad unos de los principales objetivos en la ingeniera de software. La formalidad ofrece formas de probar que el software es apropiado, tambin una de las ventajas es en el mantenimiento ya que siempre se necesita saber que se supone que hace cada parte para evitar ambigedad.

4.- Los mtodos formales requieren matemticos entrenados. Las matemticas de las especificaciones son fciles, y como todo una vez que tengas buena prctica usndola las dificultades matemticas resultaran menos relevantes incluso se pueden desarrollar especificaciones con pocas matemticas . Toman por ejemplo Z las nicas matemticas que usan son teora de conjuntos y la lgica que ensean en varias escuelas de manera obligatoria. Lo cierto que para que los ingenieros puedan usar estos mtodos necesitan entrenamientos como es la clase del maestro Edwin, y alumnos como nosotros preparados en matemticas podemos llegar a escribir excelentes especificaciones formales al ser bien entrenados. Pero no todo es miel sobre hojuelas esto no significa que sea fcil escribir especificaciones formales ya que toda la importancia radica en la notacin si no tambin hay dificultades debido a que los programadores no logran separarse totalmente de los detalles asociados a la programacin y se les hace ms complicado an elegir las cosas ms apropiadas de mundo real para modelar.

5.- Los mtodos formales aumentan el costo del desarrollo. El escribir mtodos formales disminuye el costo del desarrollo, como hemos escuchado al tener buenas especificaciones el proyecto va mejor y por consiguientes al final del proyecto se evitan hacer muchas correcciones que nos costaran tiempo y dinero y como ya hemos mencionado antes las especificaciones formales facilitan el mantenimiento del software ya que se sabe exactamente o con mayor fiabilidad que es lo que hace cada cosa y evitamos ambigedades. No existen cifras comparables para los costos del desarrollo de un software usando un mtodo formal bien definido y un mtodo informal ya que yo en particular pienso que saldra muy cara la prueba pero sera de gran utilidad en investigacin. Nos platica que ellos en el proyecto CASE mostro que la productividad fue mucho mayor de la esperada debido a que implementaron un lenguaje productivo el cual es Objective-C, tambin nos da un ejemplo real de la empresa Rolls-Royse & Associates han reportado que en proyectos de seguridad critica donde se usaron especificaciones formales y pruebas planeadas se obtuvieron mejores resultados que cuando no se usaron. Claro estos son solo algunos pero nos hablan de buenos y favorables resultados.

6.-Los mtodos formales son incomprensibles para los usuarios. Las especificaciones formales ayudan a entender a los usuarios lo que estn obteniendo pero para obtener esto se debe: 1. Reescribir la especificacin en lenguaje natural. 2. Mostrar las consecuencias de la especificacin. 3. Animar la especificacin. La primera es esencial para la comprensin de los usuarios para que entiendan el significado de la especificacin en trminos del mundo real. Tambin puede usarse especificaciones formales con diagramas. Algunas veces se pueden usar prototipos para definir reas que no estn bien expresadas en la especificacin formal.

7.-Los mtodos formales no se usan en grandes proyectos reales. Los mtodos formales se usa solamente en proyectos industriales. Nos ensea que muchas organizaciones tales como Praxis, estn usando mtodos formales en proyectos industriales, el alcance de estos mtodos es mayor como por ejemplo: 1. Procesamiento de transacciones en IBM. 2. Control de reactores en Rolls Royse and Associates. Etc. Estos solo representa una pequesima porcin de todo el desarrollo de software por lo tanto son aplicaciones reales en proyectos grandes.

En conclusin los mtodos formales no ofrecen ninguna garanta mgica, ningn mtodo lo hace ni creo que lo har pero con base a la experiencia e investigacin del autor del artculo hay que reconsiderar seriamente los mtodos formales y entenderlos mejor como una herramienta poderosa y que las razones de su dificultad no radica en la matemticas que usa. Al final del artculo nos comenta el autor de que en lugar de perpetuar los siete mitos ofrece otros hechos para reemplazarlos. 1. 2. 3. 4. 5. 6. 7. Los mtodos formales son muy tiles para encontrar errores tempranamente y pueden casi eliminar cierto tipo de errores. Trabajan en trminos generales haciendo pensar muy detalladamente acerca del sistema que se pretende construir. Son tiles para la mayor parte de las aplicaciones. Se basan en especificaciones matemticas que son mucho ms sencillas de comprender que los programas. Pueden hacer disminuir el costo de desarrollo. Pueden ayudar a los clientes a comprender lo que estn comprando. Han sido usados con xito en proyectos industriales.

Excelentes hechos para reflexionar y hace corroborarlos en nuestros futuros proyectos.

Вам также может понравиться