lunes, 18 de mayo de 2009

Ingenieria del Software Basada en Componentes



INGENIERÍA DEL SOFTWARE BASADA EN COMPONENTES

En el contexto de la ingeniería del software, la reutilización se puede considerar una idea nueva y antigua. Los programadores han reutilizado ideas, abstracciones y procesos desde el principio de la era de los computadores, pero el primer enfoque de reutilización era muy concreto. Hoy en día, los sistemas complejos y de alta calidad basados en computadora se deben construir en períodos de tiempo muy cortos. Esto se mitiga con un enfoque de reutilización
Más organizado.
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. Clements [CLE95] describe la ISBC de la manera siguiente:
[La ISBC] está cambiando la forma en que se desarrollan los sistemas de software. [La ISBC] representa la filosofía de «comprar, no construir», que expusieron Fred Brooks y otros. De la misma manera que las primeras subrutinas liberaban al programador de tener que pensar en detalles, [ISBC] cambia su objetivo y pasa de programar el software a componer sistemas de software. La implementación ha dado paso a la integración como núcleo del enfoque. Se puede decir que en su base se encuentra la suposición de que en muchos sistemas grandes de software existe una base común suficiente como para justificar los componentes reutilizables para explotar y satisfacer a esa base común.

Superficialmente, la ISBC parece bastante similar a la ingeniería del software orientada a objetos. El proceso comienza cuando un equipo de software establece los requisitos del sistema que se va a construir utilizando las técnicas convencionales de obtención de requisitos. Se establece un diseño arquitectónico, pero en lugar de entrar inmediatamente en tareas de diseño detalladas, el equipo examina los requisitos para determinar cuál es el subsistema que está dispuesto para la composición, y no para la construcción. Esto es, el equipo formula las siguientes preguntas para todos y cada uno de los requisitos del sistema: ¿Es posible disponer de componentes comerciales ya desarrollados (CYD) para implementar el requisito? ¿Se dispone de componentes reutilizables desarrollados internamente para implementar el requisito? ¿Son compatibles las interfaces de los componentes que están disponibles dentro de la arquitectura del sistema a construir? El equipo intenta modificar o eliminar aquellos requisitos del sistema que no se pueden implementar con componentes CYD o de desarrollo propio'. Si los requisitos no se pueden ni cambiar ni borrar, se aplican métodos de ingeniería del software convencional u orientado a objetos para desarrollar los componentes nuevos que se deben diseñar para cumplir los requisitos.
Pero para esos requisitos que se afrontan con los componentes disponibles comienza un conjunto diferente de actividades de ingeniería del software:
Cualificación de componentes. Los requisitos del sistema y la arquitectura definen los componentes que se van a necesitar. Los componentes reutilizables (tanto si son CYD como de desarrollo propio) se identifican normalmente mediante las características de sus interfaces.
Es decir, se describen «los servicios que se proporcionan y el medio por el que los consumidores acceden a estos servicios» [BR096] como parte de la interfaz del componente. Pero la interfaz no proporciona una imagen completa del acople del componente en la arquitectura y en los requisitos. El ingeniero del software debe de utilizar un proceso de descubrimiento y de análisis para cualificar el ajuste de cada componente.

Adaptación de componentes. La arquitectura del software representa los patrones de diseño que están compuestos de componentes (unidades de funcionalidad), conexiones y coordinación.
Esencialmente la arquitectura define las normas del diseño de todos los componentes, identificando los modos de conexión y coordinación. En algunos casos, es posible que los componentes reutilizables actuales no se correspondan con las normas del diseño de la arquitectura.
Estos componentes deben de adaptarse para cumplir las necesidades de la arquitectura o descartarse y reemplazarse por otros componentes más adecuados.
Composición de componentes. El estilo arquitectónico vuelve a jugar un papel clave en la forma en que los componentes del software se integran para formar un sistema de trabajo. Mediante la identificación de los mecanismos de conexión y coordinación (por ejemplo, las propiedades de ejecución en el diseño), la arquitectura dicta la composición del producto final.
Actualización de componentes. Cuando se implementan sistemas con componentes CYD, la actualización se complica por la imposición de una tercera parte (es decir, es posible que la empresa que desarrolló el componente reutilizable no tenga el control de la empresa de ingeniería del software).

EL PROCESO DE ISBC

El proceso ISBC se debe caracterizar de forma que no sólo identifique los componentes candidatos sino que también cualifique la interfaz de cada componente, que adapte los componentes para extraer las faltas de coincidencias arquitectónicas, que ensamble los componentes en un estilo arquitectónico seleccionado y que actualice los componentes a medida que cambian los requisitos del sistema [BR096].

El modelo de proceso para la ingeniería del software basada en componentes hace hincapié en las pistas paralelas en las que aparece concurrentemente la ingeniería del dominio con el desarrollo basado en componentes. La ingeniería del dominio realiza el trabajo que se requiere para establecer el conjunto de componentes de software que el ingeniero del software puede reutilizar. Estos componentes entonces se transfieren a través de un «límite» que separa la ingeniería del dominio del desarrollo basado en componentes.

La Figura 27.1 ilustra un modelo de proceso típico que acopla la ISBC explícitamente [CHR95]. La ingeniería del dominio crea un modelo de dominio de aplicación que se utiliza como base para analizar los requisitos del usuario en el flujo de la ingeniería del software. Finalmente, después de que se han comprado los componentes reutilizables, se han seleccionado a partir de las bibliotecas existentes o se han construido (como parte de la ingeniería del dominio), los ingenieros del software dispondrán de ellos durante la actividad de desarrollo basada en componentes.

Tomado de: Ingenieria.del.Software.Un.Enfoque.Practico.-.Roger.S.Pressman.V.Edicion.McGraw-Hill


No hay comentarios:

Publicar un comentario