Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de...

28
Ing. de SW Basada en Componentes

Transcript of Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de...

Page 1: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

Ing. de SW Basada enComponentes

Page 2: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

Índice

• Introducción

• Motivación

• Fundamentos de ISBC

• Modelo de Ensamblado de Componentes

• Modelo de Proceso de soporte ISBC

• Economía de componentes

Page 3: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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.

Page 4: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 5: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 6: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 7: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 8: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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.

Page 9: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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.

Page 10: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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.

Page 11: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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.

Page 12: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 13: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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.

Page 14: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 15: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.
Page 16: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

Reutilización del Software

• Proceso de reutilización

– Modelo de proceso

• Ingeniería de Dominio

• Ingeniería de Software

Page 17: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.
Page 18: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.
Page 19: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 20: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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?

Page 21: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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?

Page 22: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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)

Page 23: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 24: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 25: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 26: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

Page 27: Ing. de SW Basada en Componentes. Índice Introducción Motivación Fundamentos de ISBC Modelo de Ensamblado de Componentes Modelo de Proceso de soporte.

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

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

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