Desarrollo de software basado en componentes

Desarrollo de software basado en componentes
Información sobre la plantilla
Desarrollo software comp.gif
Concepto:Construcción de sistemas de software basado en componentes, o simplemente desarrollo de software basado en componentes para los procesos de desarrollo de aplicaciones, debido a los beneficios y utilidades que este ofreceen el ámbito tecnológico.

Desarrollo de software basado en componentes. Durante algunos años fue reseñado como una filosofía conocida como “compre, y no construya" divulgada por Fred Brooks en 1987 y que respaldaba el uso de componentes prefabricados sin tener que desarrollarlos nuevamente.

Definición informática de componentes software

Los componentes software surgen, en cierta medida de la necesidad de desarrollar sistemas mediante el ensamblaje de módulos independientes ya existentes. Analizando las definiciones de qué es un componente, por parte de Szyperski , en WSBC (WebSphere Business Components) de IBM , y del Instituto de Ingeniería de Software (SEI, del inglés Software Engineering Institute), se puede afirmar que un componente, en esencia, es una unidad reutilizable que puede interoperar con otros módulos software por medio de sus interfaces, las cuales define desde donde se puede tener acceso a los servicios que este ofrece a los demás componentes.
Un componente puede presentarse en forma de código fuente o código objeto; puede estar escrito en lenguaje funcional, procedural u orientado a objetos y puede ser tan simple como un botón GUI o tan complejo como un subsistema.[1]

Definición del DSBC

El desarrollo de software basado en componentes (en lo adelante DSBC) constituye una aproximación del desarrollo de software que describe, construye y emplea técnicas software para elaborar sistemas abiertos y distribuidos, mediante el ensamblaje de partes software reutilizables.[1]

Caraterísticas y utilidades

Es utilizado para reducir los costos, tiempo y esfuerzos de desarrollo del software, y de esta manera incrementar el nivel de productividad de los grupos desarrolladores y minimizar los riesgos; a su vez ayuda a optimizar la fiabilidad, flexibilidad y la reutilización de la aplicación final.
De esta manera, las pequeñas empresas pueden tener una mayor confiabilidad a la hora de realizar una inversión tecnológica.

La modularidad, la reusabilidad y componibilidad son características muy relevantes de la tecnología de programación basada en componentes, en las cuales coincide con la tecnología orientada a objetos de la que puede considerarse una evolución. No obstante en esta tecnología también se requiere robustez debido a que los componentes deben operar en entornos muchos más heterogéneos.

El DSBC, se corresponde al paradigma de programación de sistemas abiertos, los cuales son extensibles y tienen una interacción con componentes heterogéneos que se integran o abandonan el sistema de manera dinámica, o sea, que los componentes pueden ser substituidos por otros componentes, independientemente de su arquitectura y desarrollo.

Otro aspecto a tener en cuenta en el DSBC, es el poder integrar lo mejor de las tecnologías para realizar aplicaciones personalizadas, ajustadas a los requisitos de los clientes; lo cual le permite a los desarrolladores y/o a la empresa adquirir las tecnologías que más se adapten a sus particularidades, sin incurrir en gastos de licenciamiento o soporte y actualización de grandes soluciones, aunque muchas de estas tecnologías se encuentran bajo la premisa de Freeware y GNU (General Public License), lo cual añade otra gran ventaja.

Beneficios del DSBC

Este enfoque de desarrollo además de que posibilita alcanzar un alto nivel de reutilización de software, también ofrece otros beneficios que no son menos importantes, como por ejemplo:

  • Simplifica las pruebas. Permite que las pruebas sean ejecutadas probando cada uno de los componentes antes de probar el conjunto completo de componentes ensamblados.[2]
  • Simplifica el mantenimiento del sistema. Cuando existe un débil acoplamiento entre sus componentes, el desarrollador puede actualizar y/o adicionar componentes según sea requerido, sin afectar otras partes del sistema.[2]
  • Mayor calidad. Dado que un componente puede ser construido y luego optimizado continuamente por un experto u organización, la calidad de una aplicación basada en componentes mejorará con el paso del tiempo.[2]

De la misma manera, el hecho de comprar componentes de terceros en lugar de desarrollarlos, posee algunas ventajas:

  • Ciclos de desarrollo más cortos. La adición de una pieza dada de funcionalidad tomará días en lugar de tardar meses ó incluso años.[2]
  • Mejor ROI. Usando correctamente esta estrategia, el retorno sobre la inversión puede ser más favorable que desarrollando los componentes uno mismo.[2]
  • Funcionalidad mejorada. Para usar un componente que contenga una pieza de funcionalidad, solo se necesita entender su naturaleza, más no sus detalles internos. Así, una funcionalidad que sería impráctica de implementar en la empresa, se vuelve ahora completamente asequible.[2]

Referencias

  1. 1,0 1,1 Martínez, Luis F. Iribarne. Modelo de Mediacion para el Desarrollo de Software basado en Componentes COTS. Universidad de Almería : s.n., 2003.
  2. 2,0 2,1 2,2 2,3 2,4 2,5 Mendez, Oscar. Desarrollo de Software basado en Componentes. msdn.microsoft.com. [En línea] http://msdn.microsoft.com/es-es/library/bb972268.aspx


Fuentes

  • Joven Club Bayamo I
  • Martínez, Luis F. Iribarne. Modelo de Mediacion para el Desarrollo de Software basado en Componentes COTS. Universidad de Almería : s.n., 2003.
  • Mendez, Oscar. Desarrollo de Software basado en Componentes. msdn.microsoft.com. [En línea] http://msdn.microsoft.com/es-es/library/bb972268.aspx
  • Lidia Fuentes, José M. Troya y Antonio Vallecillo. Desarrollo de Software Basado en Componentes. Departamento Lenguajes y Ciencias de la Computación. Universidad de Málaga.
  • Maribel Ariza Rojas, Juan Carlos Molina García. Introducción Y Principios Básicos Del Desarrollo De Software Basado En Componentes.
  • http://iqingenieros.com/images/