Está en la página 1de 28

Ing.

de SW Basada en
Componentes
Índice

 Introducción
 Motivación
 Fundamentos de ISBC
 Modelo de Ensamblado de Componentes
 Modelo de Proceso de soporte ISBC
 Economía de componentes
Introducción
 Uno de los motivadores iniciales en los sistemas
basados en componentes es la reutilización
 Mitigan riesgos, incrementan la calidad y a la
larga se reduce el costo de desarrollo.
 La reutilización no es una idea nueva.
 Actividad central es el desarrollo de
componentes
 En nuestros días hay una economía en torno al
desarrollo componentes.
 Componentes Distribuidos son una evaluación de
este planteamiento.
Reutilización del Software
 “Reutilización es una actividad, no un objeto”
– Procedimiento que produce un sistema a partir
de volver a utilizar algo que se desarrolló en un
esfuerzo previo
 Realidades de la reutilización de software

– Pocas organizaciones tienen un plan bien definido


de reutilización de software
– Hay herramientas, pero no las usamos
Reutilización del Software
(Realidades)
 Hay pocos programas de entrenamiento sobre
reutilización de software
 Muchos creen que es mayor el problema en
ejecutarlo que el beneficio obtenido
 Muchas organizaciones fomentan el uso de
metodologías de desarrollo que dificultan la
reutilización.
 Pocas organizaciones promueven el desarrollo de
componentes reutilizables
 Componentes reutilizables tienden a ser más
genéricos, lo cual puede implicar menor eficiencia
y/o mayor complejidad
 La mayoría del software es susceptible de ser
ensamblado a partir de componentes reutilizables
Reutilización del Software
(Realidades) cont..
 Reutilización no se limita a código
– Mayores beneficios por la reutilización de
diseños y documentación asociada
• Planes de proyecto
• Estimaciones de costos
• Arquitecturas - “templates”(Patrones)
• Modelos de requerimientos y
especificaciones
• Diseños
• Código fuente
• Documentación técnica y de usuario
• Interfaces de usuarios - GUIs
• Datos
Reflexión
En 1969, McIlroy reconoció la necesidad de una
industria de componentes de software reutilizables,
pero desde entonces, ésta ha sido una meta difícil de
alcanzar. Es justo preguntarse entonces, si los
beneficios de los componentes de software
reutilizables son tan evidentes, ¿por qué esta
práctica no ha invadido aún toda la ciencia de la
computación?
Grady Booch, 1993
Conceptos Básicos
 Componente software
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.
 Sistema basado en componentes
Conjunto de mecanismos y herramientas que
permiten la creación e interconexión de
componentes software, junto con una colección de
servicios para facilitar las labores de los
componentes que residen y se ejecutan en él.
Ventajas ISBC
 Velocidad de adaptación antes nuevos productos y nuevas
tecnologías;
 Reducir significativamente el tiempo para construir nuevos
productos.
 Reducir costes.
 Mayor productividad de los desarrolladores, con énfasis en
reusar e integrar en lugar de programar.
 Permitir que los desarrolladores se especialicen en el área
de aplicación de la empresa.
 Sistemas más confiables.
 Sistemas más mantenibles;
– un componente puede intercambiarse por otra mejor sin
afectar el sistema.
– un componente puede agregar una nueva funcionalidad
sin afectar al resto.
Conceptos Básicos cont...
 Modelo de componentes
Definición de la forma de sus interfaces y
los mecanismos para interconectarlos
(DCOM, COM, JavaBeans, Corba,.NET).
 Plataforma de componentes
Entorno de desarrollo y de ejecución de
componentes que permiten aislar la mayor
parte de las dificultades conceptuales y
técnicas que con lleva la construcción de
aplicaciones basadas en las componentes de
un modelo de componentes concreto.
Conceptos Básicos cont...

 Interfaz de un componente
Determina las operaciones que el componente
implementa como las que precisa utilizar de
otros componentes durante la ejecución..
Usualmente son los atributos y métodos
públicos que el componente implementa más
los eventos que emite.
 Eventos
Especifican la forma en la que el componente
notifica al exterior una respuesta a un
estímulo externo o bien un cambio en una
condición interna. Se especifica la signatura y
la condición para que se produzca, pero no
cómo tratarlo.
Conceptos Básicos cont...
 Interoperabilidad
– Capacidad de dos o más componentes para
comunicarse y cooperar de forma compatible entre sí.
– Interoperabilidad sintáctica: Signatura (tipos) de los
argumentos.
– Interoperabilidad a nivel de protocolos: Ordenes
relativos de los mensajes recibidos y la sincronización
entre ellos.
– Interoperabilidad semántica: Las anteriores y
además la funcionalidad de las operaciones.
 Estándares de interoperabilidad
– Garantizan la interoperabilidad - Corba , JavaBeans
Características de los SBC
Distribuidos
 Distribución
– Los componentes residen en diversas máquinas
integrantes de una red.
 Heterogeneidad
– Se ejecutan en diferentes plataformas, sistemas
operativos, escritos en diferentes lenguajes, diferentes
desarrolladores.
 Independencia de la extensibilidad
– Modificables y ampliables añadiendo nuevas
componentes.
 Dinamismo
– Sujetos a evolución por ampliación, desaparición,
sustitución de componentes o reconfigurando las
relaciones entre ellos.
Reutilización del Software

 Proceso de reutilización
– Modelo de ensamblado de componentes integrado a
modelo de desarrollo evolutivo.
– Es una forma de incorporar a el desarrollo de
componentes al ciclo de vida.
– Es una primera aproximación de Modelo de Ensamblado
de Componentes
Reutilización del Software

 Proceso de reutilización
– Modelo de proceso
• Ingeniería de Dominio
• Ingeniería de Software
Ingeniería de Dominio

 Análisis de dominio
– Definición del dominio
– Categorización de sus elementos
– Formular muestra representativa de aplicaciones en el
dominio
– Desarrollar un modelo de análisis para los objetos
Ingeniería de Dominio

 Identificación de componentes de software candidatos a


reutilización - preguntas que ayudan en la identificación
– ¿Es la funcionalidad del componente requerida en
futuras implementaciones?
– ¿Qué tan común es la función del componente dentro
del dominio?
– ¿Hay duplicidad de la función del componente dentro
del dominio?
Ingeniería de Dominio

 ¿Depende el componente del hardware?


¿Se pueden aislar las particularidades del
hardware en otro componente?
 ¿Se puede parametrizar un componente
no reutilizable de manera que lo sea?
 ¿Se puede reutilizar el componente en
varias implementaciones con sólo cambios
menores?
 ¿Podría un componente no reutilizable ser
descompuesto en subcomponentes
reutilizables? ¿Qué tan válido sería?
Ingeniería de Dominio
 Características del dominio que tienen un
impacto en la reutilización de software
– Producto: Estabilidad de requerimientos,
software concurrente, restricciones de
memoria, complejidad de la interfaz,
lenguaje de programación, calidad del
producto
– Proceso: Modelo de proceso, medio
ambiente del proyecto, restricciones de
calendarización y presupuesto,
productividad
– Personal: Motivación, educación,
experiencia y entrenamiento (dominio,
procesos, plataforma, lenguajes)
Construcción de
Componentes
 Análisis y diseño para la reutilización
– Abstracción
– Ocultar la complejidad (hiding)
– Independencia funcional
– Refinamiento
– Programación estructurada
– Métodos orientados a objetos
– Pruebas
– Aseguramiento de la calidad del software
– Métodos de verificación de apego a
especificación
Construcción de
Componentes
 Uso de herramientas automatizadas de
gestión de repositorios
 Diseño para la reutilización - aspectos clave
– Datos estándar (estructuras de datos
globales)
– Protocolos de interfaz estándar
 Intra-modulares
 Externas-técnicas
 Hombre-máquina
– “Templates” de programas - modelo
estructura
Construcción de
Componentes
 Métodos de construcción
– Lenguajes de tercera generación
– Lenguajes de cuarta generación y generadores de
código
– Técnicas de programación visual
– Etc..
Construcción de
Componentes
 Desarrollo basado en componentes –
ingredientes básicos de arquitectura
– Modelo de intercambio de datos:
mecanismos que permiten a usuarios y
aplicaciones interactuar y transferir datos
– Automatización: Herramientas, macros y
scripts para facilitar la interacción entre
componentes reutilizables
– Almacenamiento estructurado: Documentos
con datos heterogéneos como una estructura
de datos única
– Soporte en el modelo de objetos
Clasificación de Componentes
 Descripción de componentes reutilizables
– Concepto: descripción de lo que hace
(interfase y la semántica)
– Contenido: cómo el concepto es logrado
– Contexto: dominio de aplicación
(características conceptuales, operacionales
y de implementación)
 Ambiente de reutilización
– BD de componentes
– Library management system
– Sistema de recuperación de componentes
Clasificación de Componentes

 Medio ambiente de reutilización


– Base de datos de componentes
– Sistema administrador de la biblioteca de
componentes
– Sistema de consulta y recuperación de
componentes
– Herramientas CASE
 Economía de la reutilización
– Calidad
– Productividad
– Costo

También podría gustarte