La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Ing. de SW Basada en Componentes

Presentaciones similares


Presentación del tema: "Ing. de SW Basada en Componentes"— Transcripción de la presentación:

1 Ing. de SW Basada en Componentes

2 Índice Introducción Motivación Fundamentos de ISBC
Modelo de Ensamblado de Componentes Modelo de Proceso de soporte ISBC Economía de componentes

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

4 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

5 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

6 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

7 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

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

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

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

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

12 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

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

14 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

15

16 Reutilización del Software
Proceso de reutilización – Modelo de proceso • Ingeniería de Dominio • Ingeniería de Software

17

18

19 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

20 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?

21 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?

22 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)

23 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

24 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

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

26 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

27 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

28 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


Descargar ppt "Ing. de SW Basada en Componentes"

Presentaciones similares


Anuncios Google