Está en la página 1de 24

1

INGENIERÍA DE
SOFTWARE II
2

Ingeniería de Software Basada en Componentes -


ISBC
Contenido:
1. Origen
2. Definiciones
3. Características Principales
4. Filosofía
5. Objetivos
6. El Proceso
7. Evaluación
8. Proceso de Diseño Basado en Componentes
9. El proceso ISBC
10. Tecnologías de Componentes
11. Ejemplos de Tecnologías de Componentes
12. Componentes de Tiempo Real
13. Modelado de Aplicaciones de Tiempo Real Basadas en Componentes
14. Ventajas
15. Limitaciones
3

Ingeniería de Software Basada en Componentes -


ISBC
1. Origen

o Origen: En 1968 Douglas McIlroy identifica la necesidad de una sub-industria


de componentes software como solución a la denominada crisis del software.

o Su implantación no se realiza hasta los 90. En la actualidad está plenamente


implantado de algunos dominios de aplicación: Ofimática, comercio
electrónico, etc.

o Problemas que trata de solucionar el desarrollo basado en componentes:


o Abordar la creciente complejidad del software
o Reducir el tiempo de adaptación a cambios
o Creciente importancia de sistemas abiertos y distribuidos

o El CBD es una evolución natural de la orientación a objetos


4

Ingeniería de Software Basada en Componentes -


ISBC
2. Definiciones

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

Componente: Es una parte remplazable, casi independiente y no trivial


de un sistema que cumple una función clara en el contexto de una
arquitectura bien definida.
5

Ingeniería de Software Basada en Componentes -


ISBC
2. Definiciones

“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]
6

Ingeniería de Software Basada en Componentes -


ISBC
3. Características Principales

Las tres características principales de un componente software son:

o Aislamiento: Un componente puede ser instalado de forma


independiente en una plataforma.

o Componibilidad: Un componente puede ser compuesto con otros


para formar aplicaciones.

o Opacidad: Un componente se maneja siempre de forma opaca, sin


que los diseñadores de aplicaciones que lo manejan ni el entorno
tengan que acceder a sus detalles internos para hacer uso de él.
7

Ingeniería de Software Basada en Componentes -


ISBC
4. Filosofía

• La ISBC representa la filosofía de «comprar, no construir»

• Pasa de programar el software a componer sistemas de software

• En muchos sistemas grandes de software existe una base común suficiente


como para justificar los componentes reutilizables 

• En la ISBC, el desarrollo de una solución software se percibe como un trabajo de


adaptación y composición a partir de componentes, los cuales pueden tener
diversos orígenes:

o Desarrollados para uso genérico.


o Comprados.
o Desarrollados a la medida.
8

Ingeniería de Software Basada en Componentes -


ISBC
5. Objetivos

• Desarrollar sistemas a partir de componentes ya construidos.

• Desarrollar componentes como entidades reusables.

• Mantener y evolucionar el sistema a partir de la adaptación y


remplazo de sus componentes.
9

Ingeniería de Software Basada en Componentes -


ISBC
5. Objetivos

• Industrialización del campo del desarrollo software


• Cambio en el papel de los diseñadores de aplicaciones => De
programadores a ensambladores
• Mercado de componentes software reutilizables
10

Ingeniería de Software Basada en Componentes -


ISBC
6. El proceso

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.
11

Ingeniería de Software Basada en Componentes -


ISBC
6. El proceso

El equipo formula las siguientes preguntas para todos y cada uno de


los requisitos del sistema:

• ¿Es posible disponer de componentes comerciales ya desarrollados


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?.
12

Ingeniería de Software Basada en Componentes -


ISBC
7. Evaluación

Para los requisitos que se afrontan con los componentes disponibles


comienza un conjunto diferente de actividades de ingeniería del
software:
o Cualificación de componentes: Los requisitos del sistema y la
arquitectura definen los componentes que se van a necesitar. Los
componentes reutilizables se identifican normalmente mediante las
características de sus interfaces.
o Adaptación de componentes: Los componentes deben de
adaptarse para cumplir las necesidades de la arquitectura o
descartarse y remplazarse por otros componentes más
adecuados.
13

Ingeniería de Software Basada en Componentes -


ISBC
7. Evaluación

o 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.

o Actualización de componentes. Cuando se implementan sistemas


con componentes, la actualización se complica por la imposición
de una tercera parte.
14

Ingeniería de Software Basada en Componentes -


ISBC
8. Proceso de Diseño Basado en Componentes
15

Ingeniería de Software Basada en Componentes -


ISBC
9. 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 interface
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
16

Ingeniería de Software Basada en Componentes -


ISBC
10. Tecnologías de Componentes

• La forma concreta de especificar, implementar, o empaquetar un


componente depende de la tecnología utilizada.

• Una tecnología de componentes incluye:


 Modelo de componentes: Define un marco conceptual para el
desarrollo de componentes y de aplicaciones generadas por
ensamblado:
• Define de forma exacta que se entiende por componente, y
como se especifica el componente y sus interfaces
• Define los modos de interacción entre componentes
17

Ingeniería de Software Basada en Componentes -


ISBC
10. Tecnologías de Componentes

Plataforma de componentes: Entorno que de una


infraestructura de soporte para la ejecución de aplicaciones
basadas en componentes
• Se basa en un determinado modelo de componentes
• Incluyen servicios de soporte para los componentes: gestión
de su ciclo de vida, persistencia, comunicación entre ellos,
etc.
18

Ingeniería de Software Basada en Componentes -


ISBC
11. Ejemplos de Tecnologías de Componentes

 De Microsoft: COM, COM+, .NET (Plataforma Windows)

 De Sun Microsystems: JavaBeans, EJB (Multiplataforma, pero


sólo en Java)

 De OMG: CCM (Multilenguaje y multiplataforma)


19

Ingeniería de Software Basada en Componentes -


ISBC
12. Componentes de Tiempo Real

• En el ámbito de los sistemas de tiempo real el CBD evoluciona


de forma mucho más lenta
Las tecnologías estándar son demasiado lentas y no
predecibles
• Es necesario hacer compatibles los dos aspectos
Construcción de aplicaciones por composición de
componentes software reutilizables y manejados de forma
opaca
Construcción de aplicaciones con comportamiento temporal
predecible
20

Ingeniería de Software Basada en Componentes -


ISBC
12. Componentes de Tiempo Real

• Para ello se requiere


Metodologías de modelado que ofrezcan propiedades de
componibilidad y reutilización
Basadas en parametrización
Inclusión de información acerca del comportamiento temporal en
los paquetes de componentes
Tecnologías de componentes con comportamiento predecible
21

Ingeniería de Software Basada en Componentes -


ISBC
13. Modelado de Aplicaciones de Tiempo Real Basadas en
Componentes
22

Ingeniería de Software Basada en Componentes -


ISBC
14. Cambio en el proceso de desarrollo de aplicaciones

En el desarrollo basado en componentes se distinguen dos procesos


independientes pero complementarios (los productos de salida del
primero son los productos de entrada del segundo):
23

Ingeniería de Software Basada en Componentes -


ISBC
15. Ventajas del uso de CBD

Mejora de la productividad
o Gracias a la reutilización de software
o En una primera fase se produce el efecto contrario, al invertir tiempo
y esfuerzo en conseguir reusabilidad
Disminución de la complejidad del software
Mejora de los tiempos de acceso al mercado
o Consecuencia de los dos aspectos anteriores
Incremento de la calidad del software
o Siempre que se emplee un mercado de componentes certificados
Mejora del mantenimiento
o Errores mas fáciles de detectar y subsanar
o Posibilidad de actualización dinámica
24

Ingeniería de Software Basada en Componentes -


ISBC
15. Limitaciones actuales del uso de CBD

Disponibilidad de componentes
o Sólo existe en algunos campos: GUIs, ofimática, etc
Falta de estandarización
o Intereses empresariales
o Interoperabilidad a través de pasarelas “bridges”
Falta de procesos de certificación que garanticen la calidad de los
componentes
 Falta de un proceso de ingeniería software basado en componentes
bien definido
o Riesgo para las empresas de cambiar sus procesos de desarrollo

También podría gustarte