Está en la página 1de 4

4.1.

Desarrollo de Software basado en Componentes


El desarrollo de software basado en componentes permite reutilizar piezas de cdigo preelaborado que permiten realizar diversas tareas, conllevando a diversos beneficios como las mejoras a la calidad, la reduccin del ciclo de desarrollo y el mayor retorno sobre la inversin. Al comparar la evolucin del ambiente de IT con el crecimiento de las metrpolis actuales, podemos entender el origen de muchos problemas que se han presentado histricamente en la construccin de software y vislumbrar las posibles y probables soluciones que nos llevarn hacia la industrializacin del software moderno. Este proceso de industrializacin ha dado ya sus inicios con implementaciones como la plataforma .net, la cual impulsa la idea de industrializar el software utilizando tecnologas de componentes. Los avances y mejoras presentados en esta plataforma van mucho ms all de las implementaciones iniciales como COM y CORBA, convirtiendo a los componentes .net en verdaderas piezas de ensamblaje, en un estilo muy similar a las lneas de ensamblaje modernas. Asimismo, los nuevos paradigmas como las Fbricas de Software proveen de los medios para hacer la transicin desde el 'hacer a mano' hacia la fabricacin o manufactura de software. Si hay algo que ha aprendido el ser humano desde tiempos muy antiguos es a reutilizar el conocimiento existente para sus cada vez ms ambiciosas empresas. En efecto, al reutilizar trozos de experiencias, ideas y artefactos, no solo nos aseguramos de no cometer los mismos errores del pasado, sino que logramos construir cosas cada vez ms grandes y maravillosas, con bases firmes y calidad incomparable. Este concepto de la reutilizacin, uno de los primeros que se nos ensean a quienes entramos al mundo del desarrollo de software, habremos de utilizarlo desde el mismo instante en que escribamos nuestra primera lnea de cdigo. Los sistemas de hoy en da son cada vez ms complejos, deben ser construidos en tiempo rcord y deben cumplir con los estndares ms altos de calidad. Para hacer frente a esto, se concibi y perfeccion lo que hoy conocemos como Ingeniera de Software Basada en Componentes (ISBC), la cual se centra en el diseo y construccin de sistemas computacionales que utilizan componentes de software reutilizables. Esta ciencia trabaja bajo la filosofa de "comprar, no construir", una idea que ya es comn en casi todas las industrias existentes, pero relativamente nueva en lo que a la construccin de software se refiere. Para este momento, ya muchos conocen las ventajas de este enfoque de desarrollo y, de la misma forma, muchos se preguntan da a da el por qu son tan pocos los que realmente alcanzan el xito siguiendo esta filosofa. En realidad, hasta ahora solo hemos tanteado un poco con las posibilidades del

software basado en componentes, y es justo hora, en la presente dcada, que la industria del software despegar y se perfeccionar para estar a la par de cualquier otra industria del medio. Las analogas que nos han llevado a estudiar a los sistemas comparndolos con las complejas metrpolis de la actualidad, as como las iniciativas ms innovadoras como las Fbricas de Software de Microsoft, son la clara representacin de que estamos a punto de presenciar un nuevo gran cambio en la forma como pensamos en software. El desarrollo de software por componentes ha tenido un auge inusitado en los ltimos tiempos como un nuevo paradigma en la construccin de aplicaciones, debido a que pretende resolver grandes problemas, como por ejemplo, la reutilizacin de cdigo, la escalabilidad y el mantenimiento. En particular, el aumento de la potencia de los computadores, la disminucin en el costo del hardware y las comunicaciones, y el continuo crecimiento de redes de datos de cobertura global han incrementado el uso de los sistemas abiertos y distribuidos. Este desarrollo ha contribuido a mejorar el proceso de construccin de aplicaciones y, al mismo tiempo, ha aumentado su complejidad. Las aplicaciones por componentes son cada vez ms grandes y ms difciles de entender, porque se pueden utilizar en diferentes sistemas y tambin ensamblar con otros. En la prctica, los existentes se encuentran soportados por alguna tecnologa, cada una de las cuales impone enormes restricciones en su ambiente de implementacin, lo que obliga a los desarrolladores a conocer en un nivel detallado la parte tcnica de la implantacin de la tecnologa, haciendo costoso en esfuerzo, tiempo y dinero dicho proceso. Todo esto ha hecho evidente la necesidad de crear nuevos modelos, pues la programacin tradicional ha hecho imposible tratarlos de una forma natural.

Problemtica y estado del arte


En la actualidad, el desarrollo de aplicaciones por componentes representa un conjunto de buenas prcticas que permite reutilizar piezas de cdigo previamente elaboradas, cuya funcionalidad radica en realizar diversas tareas, con sus consecuentes beneficios. El uso de este paradigma trae algunas ventajas: Reutilizacin del software. Alcanzar un mayor nivel de reutilizacin de software del que se tiene hoy. Simplificacin de las pruebas. Realizacin de pruebas para cada uno de los componentes, antes de tener el sistema completo. Facilitacin del mantenimiento del sistema. Los componentes ofrecen un bajo acoplamiento, por lo cual su modificacin y adicin se resuelven fcilmente. Mayor calidad. La construccin y el posterior mejoramiento de un componente lo llevan en el tiempo a tener una alta calidad.

De igual manera, cuando se reutilizan componentes en lugar de desarrollarlos, se tienen algunas ventajas: Ciclos de desarrollo ms cortos. Si se trabaja por funcionalidad, se requieren algunos das para su desarrollo y no meses o aos. Mejor retorno de la inversin. Si hay una buena estrategia, se puede obtener el mximo de utilidad en la adquisicin de componentes. Funcionalidad mejorada. El uso de un componente consiste en entender su estructura y la forma en la que puede implementarse, para satisfacer las necesidades propias. Sin embargo, la amplia variedad de tecnologas que han surgido gracias al desarrollo por componentes, hace que la estandarizacin y la organizacin de las aplicaciones se conviertan en un caos de informacin. Pese a que la idea de contar con piezas de software listas para su uso puede ser tentadora para el progreso de la industria, se tiene el problema de cul es mejor y, ms que eso, quin impone su sello. As, los grandes de la industria han abordado este inconveniente de diferentes formas, mostrando la solucin por medio de variados enfoques y, de cierta manera, convirtiendo una buena solucin en uno ms de los tantos problemas que se tienen a la hora de construir software.

Figura 1. El ciclo de desarrollo orientado por componentes. Por otro lado, los desarrolladores pasan gran parte del tiempo escribiendo lneas de cdigo que aunque son importantes, muchas veces se han convertido en la base o en estndar de lo que debera contener el cdigo, dada una tecnologa en especial. Por estas razones, la generacin de cdigo base para una tecnologa ahorrara a los desarrolladores tiempo de implementacin que se podra emplear en otras fases del desarrollo o inclusive acortar el tiempo de produccin de la aplicacin.

Los sistemas basados en la funcionalidad, por encima de cualquier otra particularidad, son los ms competitivos y solicitados en el mercado; esto ha hecho que el nmero de usuarios aumente y cada da sean ms las personas que con poco conocimiento acerca de herramientas de software o su funcionamiento. Las anteriores razones plantean nuevos retos en desarrollo de software y exigen caractersticas que deben estar siempre presentes: funcionalidad, robustez, facilidad de instalacin e integracin, entre las que deben describir una pieza de software. Como consecuencia del amplio uso que se les ha dado a estas herramientas, la integracin se constituye en la caracterstica ms importante a en el desarrollo. En este punto, el paradigma por componentes entra a cumplir un papel clave, de modo que dichas caractersticas se puedan obtener.