Sie sind auf Seite 1von 22

Silvia Rivas Borrajo Vctor Ramn Rodrguez Domnguez

ndice

Definicin de mtodos formales. Disminucin de la fiabilidad del software. Crisis del software. Conferencia sobre IS y MF:
Michael Anthony Jackson.

Patrick Cousot.
Byron Cook.

Conclusiones del artculo. Nuestras conclusiones.

Definicin de mtodos formales


Los

mtodos formales son una notacin de especificacin con una semntica formal, que se utiliza para especificar, analizar, disear, y verificar el software. los mismos se pueden aplicar mtodos formales, pero unos mnimos conocimientos facilitarn su uso y mejorarn el resultado final.

Este enfoque requiere conocimientos matemticos. Sin

Disminucin de la fiabilidad del software


El software est presente en todos los aspectos de

nuestra vida, por ello es necesario que sea muy fiable.


El problema ms grave del software actualmente es su

falta de fiabilidad.
Hay sistemas en los cuales los fallos son permisibles,

pero en otros son inconcebibles, no pueden suceder.


La fiabilidad del software ha disminuido en los ltimos

aos, mientras que en el hardware ha aumentado de forma notable.

Crisis del software


La crisis del software tiene su raz en la disminucin de

la fiabilidad del mismo.


Algunas de las causas de esta disminucin son: Pruebas errneas de los programas. Especificacin de requisitos incorrectas. Falta de diseo previo a la implementacin. Software difcil de modificar y de incluir cambios.

Michael Anthony Jackson


Considera que el software en ejecucin puede considerarse

un sistema formal, porque su comportamiento se ajusta a una semntica determinada.


Para que el sistema sea fiable, el modelo formal que usa de

su mundo debe ser lo ms correcto y completo posible, cualquier variacin sobre el mismo provocar un fallo.
Hay sistemas que deben ser tolerantes a fallos, tienen que

ser capaces de reaccionar ante los fallos que se puedan producir. Pueden ser diseados con mtodos formales.

Michael Anthony Jackson


DISEO NORMAL: Es el conocimiento acumulado en los modelos, tanto del propio producto y de su entorno o del problema, y que es adecuado para un nivel deseado de funcionamiento. Es el diseo tal como lo conocemos. Aumenta la fiabilidad del producto (objetivo a batir). DISEO RADICAL: Es la ausencia de diseo normal, consiste en empezar directamente con la programacin. Tiene una baja expectativa de funcionamiento (poco fiable).

Patrick Cousot
En la ingeniera de software, los mtodos formales son

tcnicas matemticas para la especificacin, desarrollo y verificacin de sistemas software y hardware.


La semntica de dominio es un conjunto de todos los

modelos formales de un sistema de comportamientos.


Una propiedad del sistema es un conjunto de modelos

semnticos que satisfacen esa propiedad.


Una de las aplicaciones ms interesantes de los mtodos

formales es la verificacin de software, pero es muy complicada.

Patrick Cousot
Propone como solucin a la complejidad del uso de los

mtodos formales dos mtodos:


Interpretacin abstracta: es una teora que trata de una

aproximacin consistente a las estructuras matemticas, particularmente las involucradas en el comportamiento de los computadores.
Verificacin formal mediante anlisis esttico:

es un anlisis de un sistema informtico por la inspeccin directa del cdigo fuente-objeto que describe el sistema con respecto a la semntica del cdigo.

Byron Cook
La concurrencia es la propiedad de los sistemas que

permiten que mltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre s.
La concurrencia puede provocar efectos secundarios si

funciona mal, por ejemplo bloquear el sistema.


Los

sistemas concurrentes deben ser verificados correctamente, usando por ejemplo mtodos formales. modular los programas concurrentes y demostrar que cada mdulo funciona correctamente y termina.

Una solucin alternativa al uso de mtodos formales, es

Conclusiones del artculo


La fiabilidad del software se obtiene a partir del

entendimiento del producto y la especializacin de los ingenieros.


El uso de diseo normal frente al uso de diseo radical

puede tomarse como una medida de la madurez de la ingeniera.


Los sistemas software cada vez se especializan ms. Un buen paso para aumentar la fiabilidad del software

es el uso de mtodos formales para disear sistemas.

Nuestras conclusiones
Los mtodos formales ayudan a desarrollar software de calidad.

Es necesario tener conocimientos matemticos para el uso de los mismos y puede ser complejo su aprendizaje.
La fiabilidad del software ha disminuido en los ltimos aos. Los sistemas actuales necesitan mayor fiabilidad porque se usan

en casi todos los aspectos de la vida.


Los mtodos formales son aptos para desarrollar sistemas

concurrentes y sistemas tolerantes a fallos, y tambin para verificar todo tipo de sistemas.

ESEI

Ingeniera del software y mtodos formales


MFES GRUPO 5

Silvia Rivas Borrajo y Vctor R. Rodrguez Domnguez


04/11/2008

Tabla de contenido
Introduccin ...................................................................................................................... 3 Problemtica actual del software ...................................................................................... 3 Congreso sobre Ingeniera del Software y Mtodos Formales ......................................... 4 Michael Anthony Jackson ............................................................................................. 4 Patrick Cousot ............................................................................................................... 4 Byron Cook ................................................................................................................... 5 Conclusiones del artculo ................................................................................................. 5 Nuestras conclusiones ...................................................................................................... 6 Preguntas tipo test ............................................................................................................. 7 Justificacin de las preguntas tipo test ............................................................................. 8

Introduccin
Nuestro artculo trata sobre la relacin que existe entre Ingeniera del Software y mtodos formales. Los mtodos formales son una parte de la Ingeniera del Software, pero se distinguen claramente de los mtodos tradicionales de la misma. Los mtodos formales son una notacin de especificacin con una semntica formal, que se utiliza para especificar, analizar, disear, y verificar el software. Para su utilizacin se requieren conocimientos matemticos, aunque no son imprescindibles, son muy recomendables para una comprensin profunda de los mismos y un mejor resultado final. Con mtodos formales podemos asegurar que nuestro sistema es completamente fiable, que no va a tener fallos, algo imposible de afirmar con los mtodos de la Ingeniera del Software, como el Proceso Unificado de Desarrollo.

Problemtica actual del software


El problema ms grave al que se enfrenta la Ingeniera del Software es la falta cada vez mayor de fiabilidad, ahora que es mucho ms necesaria ya que el software se ha implantado en casi todos los aspectos de nuestras vidas. Existen sistemas en los cuales los fallos son admisibles, aunque no deseables, como por ejemplo, una prdida de datos en un sistema operativo. Por la contra, existen otros sistemas en los cuales debe garantizarse la ausencia total de fallos, como en los sistemas de navegacin de un avin. Esto solo lo pueden garantizar los mtodos formales. La fiabilidad del software ha tendido a disminuir en la ltima dcada, mientras la del hardware ha ido en aumento. Esta disminucin ha provocado una crisis en la industria del software. Los motivos de esta falta de fiabilidad son: Pruebas errneas en los programas: asumir que pruebas que tan slo se restringen a una o varias funcionalidades del software, comprueban que el software es correcto, puede llevar a resultados poco deseables. Especificacin de requisitos incorrectas: un error muy comn es realizar anlisis de requisitos incompletos o que no se ajustan a lo que el cliente espera del producto. Falta de diseo: muchos ingenieros obvian el diseo y comienzan directamente con la implementacin, no tienen unos requisitos claros, por lo cual a veces el resultado no tiene nada que ver con lo esperado, y si han cometido algn error les es muy complicado encontrarlo, algo sencillo si se tiene un diseo previo. Software difcilmente modificable: una vez realizado e implantado el software los cambios son difciles por falta de documentacin, diseo incorrecto o inexistente,

Congreso sobre Ingeniera del Software y Mtodos Formales


El hilo fundamental de este artculo es la Quinta Conferencia Internacional sobre Ingeniera del Software y Mtodos Formales que se celebr en Londres el 14 de octubre de 2007. En dicha conferencia destacaron las contribuciones de tres expertos de renombre en los campos de la Ingeniera de Software, la interpretacin abstracta, y la verificacin de sistemas concurrentes: Michael Anthony Jackson, Patrick Cousot, y Byron Cook.

Michael Anthony Jackson


Es el especialista en Ingeniera del Software. Considera que cualquier sistema en ejecucin se puede considerar un sistema formal, porque su comportamiento puede especificarse mediante una semntica formal bien definida. Un modelo formal garantiza la fiabilidad del software, pero dicho modelo debe ser lo ms completo y correcto posible, porque cualquier variacin fuera de ese modelo podra causar un fallo. Si dicho modelo es bueno, se puede garantizar que el sistema no tendr fallos. Esto no se puede afirmar si no se usa un modelo formal. Por todo lo que se ha comentado anteriormente, el desarrollo de sistemas tolerantes a fallos (son aquellos que funcionan correctamente a pesar de sufrir fallos hardware o software) debera realizarse usando mtodos formales. Distingue entre dos tipos de diseo para desarrollar sistemas software: Diseo normal: es la fase del desarrollo en la cual describimos nuestro sistema, es decir, el diseo tal como se concibe en Ingeniera del Software. Diseo radical: consiste en no disear el sistema y programarlo directamente.

El diseo normal nos garantiza la fiabilidad del software (meta que la Ingeniera del Software quiere alcanzar en un futuro), mientras que el diseo radical no puede garantizar ni siquiera una pequea parte de la misma.

Patrick Cousot
Es el especialista en interpretacin abstracta. Define los mtodos formales como tcnicas matemticas para la especificacin, desarrollo y verificacin de sistemas software y hardware. Dos de los conceptos fundamentales de mtodos formales para l son: La semntica del dominio: es un conjunto de todos los modelos formales de un sistema de comportamientos. Una propiedad del sistema: es un conjunto de modelos semnticos que satisfacen esa propiedad.

La aplicacin ms interesante de los mtodos formales para este experto es la verificacin del software, pero es demasiado compleja y laboriosa de llevar a cabo. Para disminuir la complejidad que entraa el uso de mtodos formales propone dos mtodos: Interpretacin abstracta: es una teora que trata de una aproximacin consistente a las estructuras matemticas, particularmente las involucradas en el comportamiento de los computadores. Verificacin formal mediante anlisis esttico: es un anlisis de un sistema informtico por la inspeccin directa del cdigo fuente-objeto que describe el sistema con respecto a la semntica del cdigo.

Byron Cook
Es el especialista en sistemas concurrentes. La concurrencia es la propiedad de los sistemas que permiten que mltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre s. Ejecutar procesos concurrentes puede ocasionar distintos problemas: Invasin de sectores de memorias asignados a otros procesos. Procesos que no acaban y que colapsan el sistema. Competencia entre procesos. Conflictos al acceder a recursos compartidos. Etc.

Para que los sistemas concurrentes funcionen correctamente y nos se produzcan los problemas citados anteriormente, deben ser verificados correctamente. La mejor manera de hacerlo es con mtodos formales, ya que nos van garantizar la ausencia de fallos. Una alternativa al uso de mtodos formales para desarrollar o verificar sistemas concurrentes es modular los programas concurrentes y demostrar que cada mdulo funciona correctamente y termina. La complejidad es mucho menor en este caso.

Conclusiones del artculo


La fiabilidad del software se obtiene a partir del entendimiento del producto y la especializacin de los ingenieros. El uso de diseo normal frente al uso de diseo radical puede tomarse como una medida de la madurez de la ingeniera, porque mejora la calidad y la fiabilidad de los sistemas, porque se avanza hacia una mayor fiabilidad del software. Los sistemas software cada vez se especializan ms. Un buen paso para aumentar la fiabilidad del software es el uso de mtodos formales para disear sistemas.

Nuestras conclusiones
Los mtodos formales ayudan a desarrollar software de calidad. Es necesario tener conocimientos matemticos para el uso de los mismos y puede ser complejo su aprendizaje. La fiabilidad del software ha disminuido en los ltimos aos. Los sistemas actuales necesitan mayor fiabilidad porque se usan en casi todos los aspectos de la vida. El objetivo de la Ingeniera del Software actualmente es aumentar su fiabilidad. Los mtodos formales son aptos para desarrollar sistemas concurrentes y sistemas tolerantes a fallos, y tambin para verificar todo tipo de sistemas.

Preguntas tipo test


1. Qu son los mtodos formales? a. Son un tipo de especificacin con una semntica formal, basada en las matemticas. b. Son un tipo de especificacin con una semntica semiformal, basada en las matemticas. c. Son herramientas software para verificar aplicaciones. d. La a y la c. 2. Cul es la problemtica fundamental del software actual? a. b. c. d. La falta de especializacin de los ingenieros. La escasa fiabilidad del hardware que ocasiona errores software. La falta de fiabilidad. Un mal diseo de los sistemas.

3. Para que un sistema sea fiable cmo debe ser su modelo formal? a. b. c. d. Lo ms correcto y completo posible. Ajustado a nuestro problema. No influye como se defina en la ejecucin del sistema. Ninguna de las anteriores.

4. Para solucionar los problemas de los procesos concurrentes se puede: a. b. c. d. Verificarlos con mtodos formales. Usar modularidad. Usar como mucho cinco procesos concurrentes. La a y la b.

5. La verificacin formal sobre anlisis esttico es: a. Un anlisis de un sistema informtico por la inspeccin directa del cdigo fuente-objeto que describe el sistema con respecto a la semntica del cdigo. b. Un anlisis de un sistema informtico por la inspeccin directa de la especificacin que describe el sistema con respecto a la semntica del diseo. c. Un sistema de prueba y error. d. Ninguna de las anteriores.

Justificacin de las preguntas tipo test


1. Qu son los mtodos formales? a. Son un tipo de especificacin con una semntica formal, basada en las matemticas. Es CORRECTA porque es la definicin de mtodos formales. b. Son un tipo de especificacin con una semntica semiformal, basada en las matemticas. Es INCORRECTA porque los mtodos formales se basan en una semntica formal y no semiformal. c. Son herramientas software para verificar aplicaciones. Es INCORRECTA porque no se trata de herramientas software sino de un tipo de especificacin para desarrollar y verificar sistemas. d. La a y la c. Es INCORRECTA porque solo la a es correcta.

2. Cul es la problemtica fundamental del software actual? a. La falta de especializacin de los ingenieros. Es INCORRECTA porque la falta de especializacin no es lo que ms influye, un ingeniero puede desarrollar un determinado sistema con unos mnimos conocimientos del mtodo que uso para hacerlo. b. La escasa fiabilidad del hardware que ocasiona errores software. Es INCORRECTA porque la fiabilidad del hardware es muy superior a la del software y en los ltimos aos ha aumentado considerablemente. c. La falta de fiabilidad. Es CORRECTA porque la falta de fiabilidad del software es la que ha producido la crisis del mismo y es un problema que tiende a empeorar. d. Un mal diseo de los sistemas. Es INCORRECTA porque aunque es uno de los problemas del software actual, el mayor es la fiabilidad del mismo.

3. Para que un sistema sea fiable cmo debe ser su modelo formal? a. Lo ms correcto y completo posible. Es CORRECTA porque solo si el modelo formal es completo y correcto se puede garantizar que el sistema no tiene fallos. b. Ajustado a nuestro problema. Es INCORRECTA porque el modelo formal debe ser lo ms completo posible para evitar fallos. c. No influye como se defina en la ejecucin del sistema. Es INCORRECTA porque la definicin de su modelo formal influye en su funcionamiento, cualquier variacin que no aparezca en el mismo puede ocasionar un fallo del sistema. d. Ninguna de las anteriores. Es INCORRECTA porque la a es correcta.

4. Para solucionar los problemas de los procesos concurrentes se puede: a. Verificarlos con mtodos formales. Es INCORRECTA porque la correcta es la d, ya que se pueden usar tanto verificacin formal como modularidad para solucionar los problemas de los mtodos formales. b. Usar modularidad. Es INCORRECTA porque la correcta es la d, ya que se pueden usar tanto verificacin formal como modularidad para solucionar los problemas de los mtodos formales. c. Usar como mucho cinco procesos concurrentes. Es INCORRECTA porque no tiene sentido restringir el nmero de procesos concurrentes, ya que existen sistemas que necesitan mucho ms de cinco procesos de este tipo para funcionar. d. La a y la b. Es CORRECTA porque ambas respuestas son correctas, los dos mtodos son vlidos para solucionar este problema.

5. La verificacin formal sobre anlisis esttico es: a. Un anlisis de un sistema informtico por la inspeccin directa del cdigo fuente-objeto que describe el sistema con respecto a la semntica del cdigo. Es CORRECTA porque esta es la definicin que Patrick Cousot da de este trmino. b. Un anlisis de un sistema informtico por la inspeccin directa de la especificacin que describe el sistema con respecto a la semntica del diseo. Es INCORRECTA porque la verificacin formal sobre anlisis esttico es un mtodo que analiza el cdigo no la especificacin del diseo. c. Un sistema de prueba y error. Es INCORRECTA porque se trata de un anlisis de cdigo fuenteobjeto y no de este tipo de sistema. d. Ninguna de las anteriores. Es INCORRECTA porque la respuesta correcta es la a.

10

Das könnte Ihnen auch gefallen