Accesos directos a las distintas zonas del curso
Ir a los contenidos
Ir a menú navegación principal
Ir a menú pie de página
Subject code : 71902077
Con este capítulo se inicia el estudio de las etapas de desarrollo. Después de haber especificado QUÉ se quiere resolver durante la especificación, las etapas de desarrollo se dedican a determinar CÓMO se debe resolver el proyecto. La primera de estas etapas es la de diseño, se continúa con la de codificación y se finaliza con las etapas de pruebas del software realizado.
En este tema se hace un repaso a las técnicas más importantes de diseño que se emplean habitualmente. Todas ellas tratan de facilitar la realización del diseño. Basadas en una o varias de estas técnicas se han desarrollado metodologías completas de diseño y en algunos casos también las correspondientes herramientas CASE para diseño asistido por computador.
El objetivo de este tema es que el alumno se familiarice con el lenguaje UML y su utilización para la especificación y el modelado. En primer lugar se hace un breve recorrido por la historia de su génesis. Esto permite contemplar cómo es un proceso de normalización de herramientas conceptuales, en el que están implicadas tanto la industria del sector como la comunidad científica, y cómo se lleva a cabo con total normalidad y se llega a un estandard de aplicación mundial. En segundo lugar se presenta los elementos de lenguaje UML, relaciones, clases y diagramas. Algunos de estos elementos se salen fuera del alcance de la asignatura pero se presentan para completar la visión de todo el lenguaje UML.
La fase codificación constituye el núcleo central de cualquiera de los modelos de desarrollo de software: ciclo de vida, uso de prototipos, modelo en espiral. Una vez especificado y diseñado, de forma parcial o total, un determinado programa llega el momento de construir el código, es decir de programar. Hasta el década de los 70, en el desarrollo de software prácticamente todo el trabajo se centraba en la fase de codificación. Actualmente, también sucede lo mismo al desarrollar pequeños sistemas que son realizados enteramente por una única persona en un plazo de tiempo muy breve. Simplificando, se puede decir que las etapas previas de análisis y diseño tienen como misión fundamental la de organizar y traducir los requisitos del cliente en unidades o módulos de programa que puedan ser codificados de forma independiente y sencilla. La importancia de la fase de codificación dentro del desarrollo de software es evidente si se tiene en cuenta que en ella se elabora el producto fundamental de todo el desarrollo: los programas fuente.
A lo largo del proceso de elaboración del software se introducen de manera inadvertida múltiples errores de todo tipo e incorrecciones respecto a las especificaciones del proyecto. Todo ello debe ser detectado y corregido andes de entregar al cliente el software acabado. Como sucede con cualquier otro producto (mecánico, electrónico, etc), para garantizar su calidad es necesario someter al programa a diversas pruebas destinadas a detectar errores o verificar su funcionamiento correcto. Según la utilización final del programa, las pruebas pueden ser más o menos exhaustivas. Para un software crítico (aeronáutica, nuclear, automoción, etc), donde la gravedad de las consecuencias de un fallo es altísima, el costo de las pruebas puede ser la partida más importante del costo de todo el desarrollo. Para evitar el caos de una prueba única, se deben hacer pruebas a cada unidad o módulo según se avanza en la codificación del proyecto. Esto facilitará enormemente las posteriores pruebas de integración entre módulos y las pruebas del sistema total que deben realizarse en cualquier caso. Las pruebas permiten valorar la calidad de un programa, es decir, descubrir sus errores, sin embargo no deben verse como una red de seguridad. La calidad se incorpora a lo largo de todo el proceso de ingeniería del software y las pruebas deben confirmarnos que se ha logrado un buen programa, a través de la adecuada aplicación de métodos y herramientas.