Está en la página 1de 7

ESPECIFICACIN FORMAL DE SISTEMAS

INTRODUCCIN Una especificacin formal usa notacin matemtica para describir de manera precisa las propiedades que un sistema de informacin debe tener, sin preocuparse por la forma de obtener dichas propiedades. Describe lo que el sistema debe hacer sin decir cmo se va a hacer. Esta abstraccin hace que las especificaciones formales sean tiles en el proceso de desarrollar un sistema, porque permiten responder preguntas acerca de lo que el sistema hace con confianza, sin la necesidad de tratar con una gran cantidad de informacin no relevante que se encuentra en el cdigo de programa del sistema en un lenguaje de programacin cualquiera, o especular sobre el significado de frases en un impreciso Pseudocdigo. Un especificacin formal pueden servir como un punto de referencia fiable tanto para quienes se dedican a investigar sobre los requerimientos del cliente que solicita el sistema, como para aquellos que desarrollan los programas para satisfacer esos requerimientos, y tambin para los que redactan manuales de instrucciones para el sistema. Debido a que es independiente del cdigo del programa, las especificaciones formales de un sistema pueden ser elaboradas a principios de su desarrollo; y puede ser un medio valioso para promover un entendimiento comn entre todos los interesados en el sistema.

DEFINICIN: La especificacin formal es un rea de investigacin cuyo propsito es el desarrollo de tcnicas, lenguajes y herramientas (basadas en lgicas clsicas y no clsicas, lgebras o clculos) para alcanzar una de las principales metas de la ingeniera de software: permitir la construccin de sistemas que operen confiablemente a pesar de su complejidad. An cuando la aplicacin de mtodos formales no garantiza la correctitud a priori de un sistema, facilita considerablemente el anlisis de las propiedades del sistema, mostrando posibles inconsistencias, ambigedades o incompletitudes que de otra forma pasaran desapercibidas El desarrollo de mtodos formales se concreta en la creacin de herramientas (FT) las cuales podemos caracterizar rugosamente de la siguiente manera: FT Lenguaje Formal (LF) + Inferencia mecnica (IM)

El lenguaje formal se fundamenta ya sea en alguna lgica, clculo en un lgebra, con una sintaxis y semntica determinadas. El lenguaje permite expresar propiedades de un dominio matemtico (DM) de manera clara y no ambigua. La amplitud del dominio DM establece la capacidad expresiva del lenguaje. Un LF puede estar completamente basado en la lgica, lgebra clculo que lo sustenta tratarse de un fragmento sintctico (i.e. un subconjunto preferencial) dentro del cual se puedan expresar propiedades tiles. La parte de inferencia mecnica se refiere al sustento operacional, generalmente en trminos de la teora de pruebas para una lgica, u operaciones de reduccin en un lgebra. Se pretende que las propiedades fundamentales de un sistema que estn siendo modeladas por el LF puedan ser demostradas: la construccin de pruebas formales constituye el vehculo principal para reflejar las propiedades del sistema que est siendo modelado, identificando posibles errores de diseo, inconsistencias, etc. Y ms an, la construccin de pruebas se vuelve trascendente cuando permite definir paradigmas abstractos de cmputo: cmputo como reduccin de pruebas y cmputo como bsqueda de pruebas. En particular, para cuando el LF est fundamentado en una lgica, su IM se basa en un demostrador automtico de teoremas que puede o no estar apoyado por un constructor de modelos. Bajo ste punto de vista, una Especificacin Formal no es ms que una teora construda sobre el LF y cuyas propiedades son sustentadas mediante pruebas formales (fig. 1).

Resulta interesante observar que, en general, para un mismo LF se puedan ofrecer varios IM, inclusive que distintos LF (independientemente fundamentados en lgicas, clculos o lgebras) puedan ser expresivamente equivalentes (atiendan el mismo DM). Se hace patente, por lo tanto considerar un nivel de abstraccin

superior: poder analizar las propiedades de los LF y de sus IM para identificar equivalencias o correspondencias entre distintos LF (ya sea basados en lgicas, clculos o 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 Teora de Categoras ( ). No obstante, esa generalidad que ofrece la conduce tambin a establecer consideraciones pragmticas, computacionalmente hablando. Aun cuando la es considerada como demasiado abstracta en el sentido que las estructuras matemticas son analizadas en tal nivel de generalidad que la realizacin de cmputos sean posibles o deseables, se tienen antecedentes en su aplicacin pragmtica para la solucin de problemas. En el campo de las aplicaciones, la emergente tecnologa de Agentes computacionales encuentra sitio en prcticamente todo mbito: desde sistemas operativos distribuidos, lenguajes de programacin, dispositivos de hardware, etc. hasta aplicaciones de Inteligencia Artificial, como asistentes personales (interaccin humano computadora), comercio electrnico, etc. Las necesidades para asegurar interaccin confiable en tales sistemas deben ser satisfechas, por lo que el desarrollo de Mtodos Formales encuentra un campo frtil para proponer y desarrollar soluciones a la amplia gama de retos existentes en los sistemas MultiAgente (MAS). Tradicionalmente, el uso de mtodos formales se toma como una fase separada entre la formulacin de anlisis y diseo y la implantacin y verificacin del sistema (fig 2 (a)). Sin embargo, gracias a los modelos de cmputo abstracto que semnticamente pueden sustentarse, es posible que la aplicacin de los MF se establezca como una correspondencia partiendo del anlisis y conduciendo a la implantacin automtica y confiable, refinando crecientemente e interactivamente el diseo conforme las necesidades as lo requieran (fig. 2 (b)) o en otras palabras, producir especificaciones eficientemente ejecutables. Es de especial mencin los avances en cuanto a la generacin semntica de compiladores y mquinas abstractas.

VENTAJAS: A continuacin se detallan algunas de las ventajas de realizar una especificacin formal para el desarrollo de un sistema:

Se proporciona informacin detallada sobre los requisitos del software y del diseo. Las especificaciones formales pueden ser analizadas matemticamente y puede demostrarse la consistencia y completitud de la especificacin; luego es posible demostrar que la implementacin corresponde a la especificacin. Las especificaciones formales pueden ser usadas como gua para el testing en la identificacin de casos de prueba apropiados. Las especificaciones formales pueden ser procesadas usando herramientas de software, esto hace posible efectuar animaciones de la especificacin, proveyendo de esta forma un prototipo del software.

LIMITACIONES Un diseo nunca puede ser declarado "correcto" por su cuenta. Slo puede nunca ser "correcta con respecto a una especificacin dada". Si la especificacin formal describe correctamente el problema a resolver es una cuestin aparte. Tambin es un tema difcil de abordar, ya que se trata en ltima instancia, el problema de la construccin abstracta representaciones formales de un dominio de problema concreto informal y como un paso abstraccin no puede ser objeto de una prueba formal. Sin embargo, es posible validar una especificacin de demostrar teoremas "desafo" en relacin con las propiedades que se espera que la especificacin para exhibir. Si es correcta, estos teoremas refuerzan la comprensin del especificador de la especificacin y su relacin con el dominio del problema subyacente. Si no es as, la especificacin probablemente necesita ser cambiado para reflejar mejor el dominio de la comprensin de las personas involucradas con la produccin de la especificacin. Los mtodos formales de desarrollo de software no se utilizan ampliamente en la industria. La mayora de las empresas consideran que no es rentable para aplicarlos en sus procesos de desarrollo de software. Esto puede ser por una variedad de razones, algunas de las cuales son:

Tiempo
o

Costo de puesta en marcha de alta inicial con bajos retornos medibles

Flexibilidad

Una gran cantidad de compaas de software utilizan metodologas giles que se centran en la flexibilidad. Hacer una especificacin formal de todo el sistema en la delantera se percibe a menudo como lo contrario de flexible. Sin embargo, hay una cierta investigacin sobre los beneficios del uso de las especificaciones formales con el desarrollo "gil"

Complejidad
o

Requieren un alto nivel de conocimientos matemticos y la capacidad de anlisis para entender y aplicar de manera efectiva Una solucin a esto sera el desarrollo de herramientas y modelos que permiten estas tcnicas a implementar pero ocultar las matemticas subyacentes

Alcance limitado
o

No captan propiedades de inters para todos los participantes en el proyecto Ellos no hacen un buen trabajo de especificacin de interfaces de usuario y la interaccin del usuario

No es rentable
o

Esto no es del todo cierto, al limitar su uso slo a partes esenciales de los sistemas crticos que han demostrado ser rentable

Otras limitaciones:

Aislamiento Ontologas de bajo nivel Pobre orientacin Pobre separacin de intereses Pobre retroalimentacin herramienta

PARADIGMAS Tcnicas de especificacin formal han existido en diferentes mbitos y en diferentes escalas desde hace bastante tiempo. Las implementaciones de las especificaciones formales sern diferentes dependiendo de qu tipo de sistema que estn tratando de modelar, la forma en que se aplican y en qu punto del ciclo de vida del software se han introducido. Estos tip os de modelos se pueden clasificar en los siguientes paradigmas de especificacin:

Especificacin basada en la historia


o o

historias de sistemas basados en el comportamiento afirmaciones se interpretan en el tiempo comportamiento basado en los estados del sistema serie de pasos secuenciales, idiomas como Z, VDM o B se basan en este paradigma comportamiento basado en las transiciones de un estado a otro del sistema mejor utilizado con un sistema reactivo idiomas como Statecharts, PROMELA, STEP-SPL, RSML o SCR dependen de este paradigma especificar un sistema como una estructura de funciones matemticos OBJ, ASL, PLUSS, alerce, HOL o PVS se basan en este paradigma idiomas tempranas como Paisley, GIST, redes de Petri o lgebras de procesos se basan en este paradigma

Especificacin basado Estado


o o o

Especificacin basada en Transicin


o o o

Especificacin funcional
o o

Especificacin Operacional
o

Adems de los paradigmas anteriores, hay maneras de aplicar ciertas heursticas para ayudar a mejorar la creacin de estas especificacio nes. En el documento se hace referencia aqu mejor discute heursticas a utilizar en el diseo de una especificacin. Lo hacen mediante la aplicacin de un divide y vencers.

MODELO DE TRANSFORMACIN FORMAL Este modelo, propuesto por Robert Balzer en 1983, aplica una serie de transformaciones usando un soporte automatizado para convertir una especificacin formal (modelo matemtico) en un sistema implementable (ejecutable). Es decir, este paradigma intenta automatizar las etapas de diseo e implementacin utilizando el concepto de transformacin. Tambin se denomina a este paradigma Sntesis Automtica de Software. Fases:

Anlisis de requisitos Especificacin formal

Transformacin Integracin del sistema final

La especificacin formal se convierte en forma sistemtica en una representacin ms detallada del sistema, matemticamente correcta. Cada paso agrega detalle hasta que la especificacin formal se convierte en un programa equivalente. Como hay muchos caminos a seguir desde la especificacin hasta el sistema final, la secuencia de transformaciones y su justificacin se reflejan en un registro formal de desarrollo. Se utilizan tcnicas de validacin del modelo matemtico, como la Simulacin. La especificacin de requisitos se refina en una especificacin formal detallada, expresada en notacin matemtica. Los procesos de diseo, implementacin y prueba de unidades se reemplaza por un proceso de transformaciones donde la especificacin formal se refina hasta llegar a un Software.

Proceso de Transformacin formal de Robert Balzer - "Software technology in the 1990s: using a new paradigm".

También podría gustarte