<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d9665506\x26blogName\x3dMi+blog!\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttp://zirrus.blogspot.com/search\x26blogLocale\x3des_ES\x26v\x3d2\x26homepageUrl\x3dhttp://zirrus.blogspot.com/\x26vt\x3d-7334819199369966265', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

viernes, enero 07, 2005

El gran fracaso informático

El mundo de los ordenadores siempre ha traido verdaderos dolores de cabeza tanto para programadores como para usuarios en lo relativo al desarrollo y uso de aplicaciones correctas.

¿Cuántas veces se nos ha colgado Windows? ¿O aquel programa que tanto usábamos? ¿Cuántas veces hemos tenido que abrir y cerrar una aplicación porque estaba consumiendo mucha memoria sin venir a cuento? Realmente en el mundo del desarrollo de aplicaciones han habido (y siguen habiendo) verdaderos fracasos.

Pero sin embargo, seamos racionales y hurguemos un poco en el pasado. Fue a finales del siglo XIX cuando empezaron a usarse las válvulas de vacío... uy, creo que esto es demasiado antiguo. Realmente, el desarrollo de los lenguajes de programación (que son los que permiten crear aplicaciones) así como los sistemas operativos que sirven de base a las aplicaciones, no tendrán más de 50 años de antigüedad. En esos 50 años, las cosas han ido evolucionando a un ritmo vertiginoso, lo suficiente para dar lugar a verdaderas maravillas de aplicaciones, sin embargo, no son perfectas.

Bueno, comparemos las cosas. ¿Acaso durante los primeros 50 años en los que se construyeron puentes éstos no se caían? Seguro que sí, al menos al principio la cosa no sería muy estable, y poco a poco lo perfeccionaron. Con el paso del tiempo, a las personas que hacían este tipo de obras adquirieron el grado de ingenieros, ingenieros de caminos.

¿Las primeras antenas repetidoras de ondas, realmente repetían? Supongo que tuvieron sus problemas, y al final la cosa evolucionó. A las personas que se especializan en este tema adquieren el grado de ingenieros en telecomunicaciones (aunque si solo vas a montar antenas con ingeniero técnico en telecomunicaciones especialidad en telemática te conformas ;)).

Ahora llegan los ordenadores, y las primeras aplicaciones seguro que fallan, más que nada porque lo estamos comprobando. Pero ahora llega la diferencia, y es que en esta materia, todavía estamos en evolución, y nos queda tiempo (aunque se va muy rápido) para alcanzar un perfeccionamiento adecuado. A las personas que se dedican a la materia de los ordenadores se les llama ingenieros en informática, y la especialidad dedicada al mundo del software es llamada ingeniería del software.

Precisamente en la ingeniería del software está el centro de atención. Se dedica exclusivamente a definir modelos, estándares y guías para guiar el desarrollo software y paliar los errores y dificultades que sufre precisamente la generación de aplicaciones. La ingeniería del software intenta implantar un punto de vista ingenieril al proceso de desarrollo (ya no vale eso de sentarse en frente del ordenador y tirar código) implantando un ciclo de desarrollo del software. Implanta varias fases para el desarrollo: Análisis, especificación, diseño, implementación y prueba (por supuesto, existen varias clasificaciones). Durante cada una de las fases se va especificando poco a poco la aplicación dejando el mayor número posible de aspectos atados, para finalmente construir la aplicación.

Precisamente estamos (las prácticas se hacen en tríos ;)) realizando una práctica (y otra que nos queda) que trata sobre la especificación de requisitos en las aplicaciones. Los requisitos son una de las partes fundamentales del desarrollo de aplicaciones, definen una serie de necesidades, restricciones o atributos de calidad para el sistema que se quiere implementar. Aportan rigurosidad y permiten ver la generación de aplicaciones de una manera más esquemática y empresarial (en cuanto que el cliente sabe en todo momento lo que va a cumplir su aplicacion).

Así que sólo es cuestión de evolución, tiempo para permitir que los estándares, guías e ingenierios informáticos sean (dentro de poco seamos ;)) capaces de hacer de los ordenadores (y sus aplicaciones) verdaderas buenas máquinas.

Nos vemos!