Está en la página 1de 7

LA CRISIS DEL SOFTWARE

El trmino Crisis del Software fue acuado a principios de los aos 70, cuando la ingeniera de software era prcticamente inexistente. El trmino expresaba las dificultades del desarrollo de software frente al rpido crecimiento de la demanda por software, de la complejidad de los problemas a ser resueltos y de la inexistencia de tcnicas establecidas para el desarrollo de sistemas que funcionaran adecuadamente o pudieran ser validados. La percepcin de que esta crisis exista empez a mediados de los aos 60. Una de las primeras referencias al trmino, y de las ms notables, fue hecha por E. W. Dijkstra, en el discurso que pronuncio durante la entrega del premio Turing en 1972. No existen todava herramientas que permitan estimar de una manera exacta, antes de comenzar el proyecto, cul es el esfuerzo que se necesitar para desarrollar un programa. Este hecho provoca que la mayora de las veces no sea posible estimar cunto tiempo llevar un proyecto, ni cunto personal ser necesario. Cuando se fijan plazos normalmente no se cumplen por este hecho. Del mismo modo, en muchas ocasiones el personal asignado a un proyecto se incrementa con la esperanza de disminuir el plazo de ejecucin. Englob a una serie de sucesos que se venan observando en los proyectos de desarrollo de software: Los proyectos no terminaban en plazo. Los proyectos no se ajustaban al presupuesto inicial. Baja calidad del software generado. Software que no cumpla las especificaciones. Cdigo inmantenible que dificultaba la gestin y evolucin del proyecto.

CAUSAS DE LA CRISIS DEL SOFTWARE Durante finales de los aos 50 y principios de los 60, la potencia computacional de las maquinas era bastante limitada. Es por esto que los programas que se desarrollaban eran simples desde nuestro punto de vista actual. Seguan un proceso de desarrollo bastante artesanal, sin una metodologa o un camino a seguir para su desarrollo. En esta poca se solan usar los lenguajes de bajo nivel para el desarrollo de Software. Pero a finales de los 60, la potencia de las maquinas empez a aumentar de forma considerable. Empezaron a aparecer los lenguajes de programacin de alto nivel, y las maquinas necesitaban programas mucho ms complejos de los desarrollados hasta la poca. En definitiva, fue un salto tremendo en cuanto a potencial de hardware, que no fue acompaado por un salto en el desarrollo de software. En esta poca, se empez a concebir el Software como producto, y se empezaron a desarrollar algunos proyectos para que funcionaran en las mquinas de la poca. Pero aparecieron importantes problemas: los productos excedan la estimacin de costes, haba retrasos en las entregas, las prestaciones no eran las solicitadas, el mantenimiento se haca extremadamente complicado y a veces imposible, las modificaciones tenan un coste prohibitivo en resumen, se desarrollaba software de mala calidad, ya que la tcnica utilizada para desarrollar pequeos programas para maquinas con mucho menos potencial se quedaba desfasada, y muchas veces este software acababa en el olvido. Como ejemplo, podemos ver este grfico del ao 1979, en el que se recoge la inversin en desarrollo de sistemas software en ese ao ($6.8 Millones),y como acab ese software. Una de las principales causas de todo esto, si no la principal, era el enfoque dado al proceso de desarrollo de software, el cual era malo e incluso a veces era inexistente. En este proceso, solo del tiempo de desarrollo se dedicaba a las fases de anlisis, diseo, codificacin y pruebas, y ms de del tiempo se dedicaba a correcciones y mantenimiento. Es evidente que dedicndole sol del tiempo a las primeras fases, se arrastran errores graves, sobre todo procedentes de las fases de anlisis y diseo, lo que dificultaba muchsimo la implementacin, produciendo constantes paradas y retrocesos para revisar este anlisis/diseo. Para que nos hagamos una idea, el conjunto de las fases de anlisis y diseo abarcaban el 8% del tiempo total de desarrollo de software. Adems casi el 80% de los errores se producan en estas dos fases, con lo que se incrementaba el coste de correccin de errores conforme evolucionaban las fases de manera bestial. Con estos indicadores estaba claro que algo estaba fallando y que el proceso de desarrollo de software necesitaba un cambio radical.

Los primeros ordenadores cumplan una nica programacin que estaba definida en los componentes elctricos que formaban el ordenador. La idea de que el ordenador hiciera varias tareas (ordenador programable o multipropsito) hizo que se idearan las tarjetas perforadas. En ellas se utilizaba cdigo binario, de modo que se hacan agujeros en ellas para indicar el cdigo 1 o el cero. Estos primeros programas lgicamente servan para hacer tareas muy concretas. La llegada de ordenadores electrnicos ms potentes hizo que los ordenadores se convirtieran en verdaderas mquinas digitales que seguan utilizando el 1 y el 0 del cdigo binario pero que eran capaces de leer miles de unos y ceros. Empezaron a aparecer los primeros lenguajes de programacin que escriban cdigo ms entendible por los humanos que posteriormente era convertido al cdigo entendible por la mquina. Inicialmente la creacin de aplicaciones requera escribir pocas lneas de cdigo en el ordenador, por lo que no haba una tcnica especificar a la hora de crear programas. Cada programador se defenda como poda generando el cdigo a medida que se le ocurra. Poco a poco las funciones que se requeran a los programas fueron aumentando produciendo miles de lneas de cdigo que al estar desorganizada hacan casi imposible su mantenimiento. Slo el programador que haba escrito el cdigo era capaz de entenderlo y eso no era en absoluto prctico. La llamada crisis del software ocurri cuando se percibi que se gastaba ms tiempo en hacer las modificaciones a los programas que en volver a crear el software. La razn era que ya se haban codificado millones de lneas de cdigo antes de que se definiera un buen mtodo para crear los programas. La solucin a esta crisis ha sido la definicin de la ingeniera del software como un oficio que requera un mtodo de trabajo similar al del resto de ingenieras. La bsqueda de una metodologa de trabajo que elimine esta crisis parece que an no est resuelta, de hecho los mtodos de trabajo siguen redefinindose una y otra vez.

INGENIERA DEL SOFTWARE, LA SOLUCIN. Viendo el camino directo al precipicio que estaba llevando el desarrollo de software, haba que tomar medidas para solucionarlo. Y esas medidas se llamaron Ingeniera del Software. La Ingeniera del Software, segn R.Pressman, es Una disciplina que integra mtodos, herramientas y procedimientos para el desarrollo de SW de computador. Es decir, es una disciplina que intenta racionalizar el proceso de desarrollo de software y establecer unas pautas a seguir para el desarrollo que minimicen tiempo, esfuerzo, y coste de desarrollo y maximicen la calidad del software. Despus de esta crisis, se intentaron establecer estas pautas, aplicndolos a algunos proyectos y aumentando la inversin. En 1991 se hizo un estudio para comprobar los resultados de la aplicacin de estos mtodos, y los resultados fueron bastante buenos. El 52% de los proyectos se terminaron con xito, frente al 2% del ao 1979 y el 31,1% se termin con algunas modificaciones respecto a lo acordado inicialmente, frente al 3% del ao 1979. Pero el resultado ms espectacular se obtuvo en los proyectos abandonados. En 1991 slo se abandonaron el 16,2% de proyectos, frente al casi 76% del ao 1979. Una reduccin increble de casi el 60% que no haca ms que confirmar la bondad de estos mtodos aplicados al proceso de desarrollo de software. Haba nacido una nueva disciplina, la Ingeniera del Software, Para hacernos una idea ms concreta de lo que abarca la Ingeniera del Software (cosa que nos ayudar a entender porque fue la solucin a esta Crisis del Software), debemos de centrar nuestra explicacin en que la I.S busca principalmente software de calidad, que es aquel software que cumple los requisitos funcionales y de rendimiento establecidos previamente y consta de unos estndares de desarrollo bien documentados. Adems todos sus factores de calidad deben cumplirse y tener un buen seguimiento durante todo el proceso de desarrollo (caractersticas operativas, capacidad de soportar cambios y adaptabilidad a nuevos entornos). Y por ltimo, se incorporan al proceso nuevos modelos de desarrollo y modificacin del ciclo de vida, nuevos paradigmas de programacin, etc.que hacen que el desarrollo de software sea mucho mas metodolgico y estructurado, disminuyendo as notablemente fallos y correcciones costosas. Como ejemplo de que la ingeniera del software es en la actualidad imprescindible, la revista inglesa Private Eye dio detalles sobre importantes proyectos de software que han dado malos resultados. Entre ellos destacan los del servicio de ambulancias Asinfor de Londres, el servicio de sanidad regional de Wessex, la Sociedad para los derechos de autor y el sistema de manejo de equipajes del aeropuerto de Denver. Por ltimo, os dejo unas vietas, muy vistas pero no por ello menos buenas, que resumen en unas pocas imgenes la gran problemtica del desarrollo del software.

CONCLUSIONES Hoy en da omos hablar de computadoras potentes que hacen maravillas, con la mejor velocidad, procesador, memoria, etc. Sin embargo poco o nada nos detenemos a pensar que hay detrs de todos esos fierros que hace que funcione, sin pensar que para llegar a la construccin del todo lo que implica una computadora hubo un previo anlisis y diseo, en este sentido nos referimos al software que en otras palabras es vlido decir que no tiene sentido los equipos sin programas. As es como el anlisis y diseo de sistemas se torna un tema de inters en donde muchas cosas cotidianas tuvieron un previo estudio para su construccin, as entonces el tiempo aplicado al anlisis es consecuencia del tiempo de mantenimiento del sistema construido. En ocasiones, el diseador al escoger entre la variedad de lenguajes, tcnicas, mtodos y otros, prefiere hacer las cosas como mejor le convenga y sacar el diseo lo ms pronto posible lo cual resulta ser una decisin nada acertada, que ms que ayudar en tener un sistema lo ms pronto posible funcionando resulta un sistema poco funcional donde abundar la generacin posterior de errores. No existe un estndar de la metodologa a seguir al momento de desarrollar, el propsito de la ingeniera del software es encontrar modos de construir software de calidad.

BIBLIOGRAFA http://es.scribd.com/doc/58565477/13/1-4-2-historia-del-software-La-crisis-del-software http://es.wikipedia.org/wiki/Crisis_del_software http://histinf.blogs.upv.es/2011/01/04/la-crisis-del-software/#more-1400