Está en la página 1de 4

Fases de la Ingeniera de Software Una de las primeras enseanzas de la ingeniera del software fue que, al ser el proceso de produccin

de software tan complicado, deba descomponerse en varias etapas para poder abordarlo. El conjunto de estas etapas, o fases, junto con las reglas para pasar de una a otra, constituyen lo que se denomina el ciclo de vida del software. Dependiendo de diversos factores (como el tipo de software que se va a desarrollar, el sistema en el que va a funcionar, o las propias preferencias de los ingenieros o de la empresa desarrolladora), se puede elegir entre varios tipos de ciclos de vida que han demostrado su eficacia a lo largo de los aos. Pero la mayora de ellos, con ligeras variaciones, constan de las siguiente fases:

Anlisis del problema Diseo de una solucin Especificacin de los mdulos Codificacin Pruebas Mantenimiento

Anlisis del problema La fase de anlisis consiste en averiguar QU problema vamos a resolver. Parece una obviedad, pero la experiencia demuestra que no slo no es as, sino que el anlisis suele ser la etapa que ms problemas causa y a la que ms tiempo se le debera dedicar. Es imprescindible partir de una especificacin de requisitos lo ms exacta y detallada posible. El resultado debe ser un modelo preciso del entorno del problema, de los datos y del objetivo que se pretende alcanzar. Pero expliqumoslo todo con ms detenimiento: El mundo real, por definicin, es muy complejo. Cuando pretendemos traspasar una parte de ese mundo a un ordenador es necesario extraer slo los aspectos esenciales del problema, es decir, lo que realmente afecta a esa parte del mundo, desechando todo lo dems. El proceso de comprensin y simplificacin del mundo real se denomina anlisis del problema, y la simplificacin obtenida como resultado del anlisis se llama modelo. Por ejemplo, si lo que prentedemos es realizar un programa que calcule la trayectoria de un proyectil lanzado por un can de artillera (el clsico problema del tiro oblicuo, recuerdan sus clases de fsica?), lo lgico es que simplifiquemos el problema suponiendo que el proyectil es lanzado en el vaco (por lo que no hay resistencia del

aire) y que la fuerza de la gravedad es constante. El resultado ser muy aproximado al real, aunque no exacto. Esto es as porque nos hemos quedado con los aspectos esenciales del problema (la masa del proyectil, su velocidad, etc), desechando los menos importantes (la resistencia del aire, la variacin de la gravedad). Es decir, hemos realizado un modelo del mundo real. En este ejemplo, el modelo del tiro oblcuo es muy fcil de construir ya que se basa en frmulas matemticas perfectamente conocidas. Necesitamos conocer algunos datos previos para que el modelo funcione: la velocidad del proyectil, su masa y su ngulo de salida. Con eso, nuestro programa podra calcular fcilmente la altura y la distancia que el proyectil alcanzar. Sin embargo, las reas de aplicacin de la Informtica van ms all de la Fsica, por lo que la modelizacin suele ser bastante ms difcil de hacer que en este problema. Por ejemplo, en el programa de facturacin de una empresa: qu datos previos necesitamos conocer? Qu frmulas o cculos matemticos debemos realizar con ellos? Qu resultado se espera del programa? Estas cuestiones deben quedar muy claras antes de la modelizacin porque, de lo contrario, el modelo no ser adecuado para resolver el problema y todo el proceso de programacin posterior dar como fruto un programa que no funciona o no hace lo que se esperaba de l. Para que el modelo sea acertado, por lo tanto, es necesario tener muy clara la naturaleza del problema y de los datos que le afectan. A este respecto, es imprescindible establecer lo que se denomina una especificacin de requisitos, que no es ms que una definicin lo ms exacta posible del problema y su entorno. Sin una especificacin detallada, es imposible comprender adecuadamente el problema y, por lo tanto, tambin es imposible hacer bien el anlisis y construir un modelo que sea vlido.

Diseo de soluciones Una vez establecido el modelo del mundo real, y suponiendo que el problema sea computable, es necesario decidir CMO se va a resolver el problema, es decir, crear una estructura de hardware y software que lo resuelva. Disear una solucin para un modelo no es una tarea sencilla y slo se aprende a hacerlo con la prctica. Tpicamente, el diseo se resuelve mediante la tcnica del diseo descendente (top-down), que consiste en dividir el problema en subproblemas ms simples, y estos a su vez en otros ms simples, y as sucesivamente hasta llegar a problemas lo bastante sencillos como para ser resueltos con facilidad.

Especificacin y codificacin de mdulos Para cada subproblema planteado en el diseo hay que inventarse una solucin lo ms eficiente posible, es decir, crear un algoritmo. Cada algoritmo que resuelve un subproblema se llama mdulo. Posteriormente, cada mdulo debe ser traducido a un lenguaje comprensible por el ordenador, tecleado y almacenado. Estos lenguajes se llaman lenguajes de programacin. Los lenguajes de programacin son conjuntos de smbolos y de reglas sintcticas especialmente diseados para transmitir rdenes al ordenador. Existen multitud de lenguajes para hacer esto: C/C++, Pascal, Cobol, Fortran, Visual Basic, Java, PHP, etc.

Pruebas Una vez que el programa est introducido en la memoria del ordenador, es necesario depurar posibles errores. La experiencia demuestra que hasta el programa ms sencillo contiene errores y, por lo tanto, este es un paso de vital importancia. Los errores ms frecuentes son los sintcticos o de escritura, por habernos equivocado durante la codificacin. Para corregirlos, basta con localizar el error (que generalmente nos marcar el propio ordenador) y subsanarlo. Ms peliagudos son los errores de anlisis o diseo. Un error en fases tan tempranas dar lugar a un programa que, aunque corre en la mquina, no hace lo que se esperaba de l y, por lo tanto, no funciona. Estos errores obligan a revisar el anlisis y el diseo y, en consecuencia, a rehacer todo el trabajo de especificacin, codificacin y pruebas. La mejor forma de evitarlos es realizar un anlisis y un diseo concienzudos antes de lanzarnos a teclear cdigo como posesos. Existen varias tcnicas, relacionadas con los controles de calidad, para generar software libre de errores y disear bateras de prueba que revisen los programas hasta el lmite de lo posible, pero que quede claro: ningn programa complejo est libre de errores al 100% por ms esfuerzos que se hayan invertido en ello.

Mantenimiento Cuando el programa est en uso, y sobre todo si se trata de software comercial, suele ser preciso realizar un mantenimiento. El mantenimiento puede ser de varios tipos: correctivo (para enmendar errores que no se hubieran detectado en la fase de pruebas), perfectivo (para mejorar el rendimiento o aadir ms funciones) o adaptativo (para adaptar el programa a otros entornos). El coste de la fase de mantenimiento ha experimentado un fuerte incremento en los ltimos aos. As, se estima que la mayora de las empresas de software que dedican alrededor del 60% de sus recursos exclusivamente a mantener el software que ya tienen funcionando, empleando el 40% restante en otras tareas, entre las que se incluye el desarrollo de programas nuevos. Esto es una consecuencia lgica del elevado coste de desarrollo del software.

También podría gustarte