Los métodos formales que se utilizan para desarrollar sistemasde computadoras son técnicas de base matemática paradescribir las propiedades del sistema. Estos métodos formalesproporcionan marcos de referencia en el seno de los cuales laspersonas pueden especificar, desarrollar y verificar los sistemasde manera sistemática, en lugar de hacerlo ad hoc.Se dice que un método es formal si posee una base matemáticaestable, que normalmente vendrá dada por un lenguajeformal de especificación. Esta base proporciona una formade definir de manera precisa nociones tales como la consistenciay completitud, y, lo que es aun más relevante, la especificación,la implementación y la corrección.
La consistencia se asegura mediante una demostración matemática de que los hechos iniciales sepueden hacer corresponder formalmente (mediantereglas de inferencia) con sentencias posteriores existentesdentro de la especificación.
La completitud es difícil de lograr, aun cuando se utilicenmétodos formales. Cuando se está creando la especificaciónse pueden dejar sin definir algunos aspectosdel sistema; quizás otras características se omitan a propósitopara ofrecer a los diseñadores una cierta libertada la hora de seleccionar un enfoque de implementación;además es imposible considerar todos los escenariosoperacionales en un sistema grande y complejo.
Matemáticas en el desarrollo del software
Las matemáticas poseen muchas propiedades útiles paraquienes desarrollan grandes sistemas. Una de las propiedadesmás útiles es que pueden describir de formasucinta y exacta una situación física, un objeto o el resultadode una acción. La situación ideal sería que un ingenierodel software estuviera en la misma situación queun matemático dedicado a la matemática aplicada. Sedebería presentar una especificación matemática de unsistema, y elaborar la solución en base a una arquitecturade software que implemente la especificación.La propiedad fundamental de las
matemáticas es queadmite la abstracción y es un medio excelente para elmodelado. Dado que es un medio exacto, hay pocasprobabilidades de ambigüedad, y las especificacionesse pueden verificar matemáticamente para descubrircontradicciones e incompletitud; y, por último, la vaguedaddesaparece completamente. Además, las matemáticasse pueden utilizar para representar niveles deabstracción en la especificación de sistema de formaorganizada.
Las matemáticas constituyen una herramienta idealpara el modelado. Hacen posible exhibir el esquemafundamental de la especificación y ayudan al analista yespecificador del sistema a verificar una especificaciónpara su funcionalidad, sin problemas tales como el tiempode respuesta, las directrices de diseño, las directricesde implementación y las restricciones del proyectoque siempre estorban. También ayuda al diseñador, porquela especificación de diseño del sistema muestra laspropiedades del modelo, y ofrece tan sólo los detalles suficientes para hacer posible llevar a cabo la tarea quetengamos entre manos.
Para aplicar de forma eficiente los métodos formales,el ingeniero del software debe de tener un conocimientorazonable de la notación matemática asociada a losconjuntos y a las sucesiones, y a la notación lógica quese emplea en el cálculo de predicados.
PARA MAS INFORMACIÓN VER: http://cs.uns.edu.ar/~ads/data/apuntes/ADS-mod%2021.pdf
No hay comentarios:
Publicar un comentario