Desarrollo de software basados en Componentes

En post anteriores he hablado acerca de SIU - Toba. En uno de los post mencione que "..Esta herramienta de desarrollo rápido posee una arquitectura basada en componentes y una IDE de edición propia..". Pero se estarán preguntando que es una arquitectura basada en componentes. Bueno le explico.....El desarrollo basado en componentes es muy similar a la programación orientada a objetos. La ingeniería del software basada en componentes (ISBC) es un proceso que se centra en el diseño y construcción de sistemas basados en computadora que utilizan «componentes» de software reutilizables. (Pressman 2002). Estos componentes pueden ser no solo de desarrollo propio sino también desarrollado por terceros.
El éxito del desarrollo por componentes de software depende de que los componentes estén empaquetados de tal forma que permitan su distribución y composición y ensamblaje con otros componentes y muy especialmente con aquellos desarrollados por terceros. A todo esto un componente puede definirse como sigue:

“Un componente es una unidad de composición de aplicaciones software, que posee un conjunto de interfaces y un conjunto de requisitos, y que ha de poder ser desarrollado, adquirido, incorporado al sistema y compuesto con otros componentes de forma independiente, en tiempo y espacio” (Szyperski 1998).

EL ISBC es el proceso donde se define, implementa e integran o compone por medio de sistemas componentes independiente y débilmente acoplados (Sommerville 2001), surge debido a la necesidad cada vez más creciente de que el desarrollo de sistemas software son cada vez mucho más grandes y complejos, y los clientes demandan software que sea más confiable y que pueda ser desarrollado más rápidamente. Esto último se da en mayor medida en el desarrollo de software comercial y de empresas, como es el caso de Microsoft Corporation.
El proceso de desarrollo de componentes( Sommerville 2001) está conformado por las siguientes fases: 1) Requisitos del sistema, 2) identificar componentes candidatos, 3) modificar los componentes de acuerdo a los requerimientos descubiertos, 4) diseño arquitectónico, 5) identificar componentes candidatos, 6) componer componentes para crear el sistema.
La fase de implementación Desarrollo de Software Basado en Componentes, cuenta con algunas ventajas ya que lleva a lograr un alto grado de reutilización de software, las pruebas se ven simplificadas, ya que permite que las pruebas se ejecutan por cada uno de los componentes antes de probar el conjunto completo de componentes de manera ensamblada, esto además otorga facilidades para implementar y mantener el sistema. El débil acoplamiento que logra el desarrollo basado por componentes permite al desarrollador actualizar y/o agregar componentes a gusto según como le sea necesario, y sin afectar otras partes del sistema, La calidad del sistema se ve incrementada ya que un componente puede ser construido y luego mejorado continuamente por un experto o por un tercero. De la misma manera, el optar por comprar componentes de terceros, en lugar de desarrollarlos, posee también sus ventajas: los ciclos de desarrollo son más cortos, agregar una pieza funcional toma días en vez de meses ó años. Para utilizar un componente que tiene cierta funcionalidad, solo será necesario saber cuál es su naturaleza, y sin adentrarse en la naturaleza de su comportamiento interno. Por ello introducir cambios al implementar sistemas con DBC puede ser una muy buena estrategia (Terreros 2009).

ASC. José Sena