5.Reuso

15
1 Master Oficial en Sistemas Telemáticos e Informáticos TEMA III Reutilización del Software 1 2 OBJETIVOS URJC – Master en Sistemas Telemáticos e Informáticos Describir el concepto de Reutilización de Software Describir los tipos de reutilización existentes Reutilizar código, componentes y diseños 3 La Reutilización de Software aparece como una alternativa para desarrollar aplicaciones y sistemas SW de una manera más eficiente, productiva y rápida. La idea es reutilizar elementos y componentes de SW en lugar de tener que desarrollarlos desde el principio. URJC – Master en Sistemas Telemáticos e Informáticos Tema 3: Reutilización del Software 3.1 Concepto de Reutilización de Software

Transcript of 5.Reuso

Page 1: 5.Reuso

1

Master Oficial en Sistemas Telemáticos e Informáticos

TEMA III

Reutilización del Software

1

2

OBJETIVOS

URJC – Master en Sistemas Telemáticos e Informáticos

Describir el concepto de Reutilización deSoftware

Describir los tipos de reutilizaciónexistentes

Reutilizar código, componentes y diseños

3

La Reutilización de Software aparece como una alternativapara desarrollar aplicaciones y sistemas SW de una maneramás eficiente, productiva y rápida.

La idea es reutilizar elementos y componentes de SW en lugar de tener que desarrollarlos desde el principio.

URJC – Master en Sistemas Telemáticos e Informáticos

Tema 3: Reutilización del Software

3.1 Concepto de Reutilización de Software

Page 2: 5.Reuso

2

4

Surge formalmente en 1968 (Dough McIlroy)

La idea principal era producir componentes de softwarecomo si de componentes electrónicos se tratara.

El objetivo es reutilizar lo existente sin tener que volver a rediseñarlo desde el principio.

URJC – Master en Sistemas Telemáticos e Informáticos

Tema 3: Reutilización del Software

3.1 Concepto de Reutilización de Software

5

Es el proceso de creación de sistemas de software a partir de un software existente, en lugar de tener querediseñarlo desde el principio (C. W. Krueger)

URJC – Master en Sistemas Telemáticos e Informáticos

Tema 3: Reutilización del Software

3.1 Concepto de Reutilización de Software

Definición

6

VentajasReducir el tiempo de desarrolloReducción de costesIncrementar la productividadNo tener que “reinventar las soluciones”Facilitar la compartición de productos del ciclo de vida

URJC – Master en Sistemas Telemáticos e Informáticos

Tema 3: Reutilización del Software

3.1 Concepto de Reutilización de Software

Desventajas Necesidad de invertir antes de obtener resultadosCarencia de métodos adecuadosNecesidad de formar al personalConvencer a los “managers”Dificultad para institucionalizar los procesos

Page 3: 5.Reuso

3

7

Experiencias

’70: Raytheon Company. Software y Diseños redundantes.

Examen sobre 5000 programas en COBOL.

Nivel de Reutilización: [15% - 85%]

Software Factory (SDC) McIlroy

URJC – Master en Sistemas Telemáticos e Informáticos

Tema 3: Reutilización del Software

3.1 Concepto de Reutilización de Software

8

1975-1981: HSK (Hitachi Software Factory)

Catalogar librerías de módulos reutilizables.

Definir herramientas y procedimientos parareutilizar código, diseños, documentación ycasos de prueba.

URJC – Master en Sistemas Telemáticos e Informáticos

Tema 3: Reutilización del Software

3.1 Concepto de Reutilización de Software

Experiencias

9

1986: GTE Data Services catalogó 300 componentes de código (“ASSETS”). Aumentó su productividad entre un 20 y un 30 %.Nivel de Reutilización: 15 %.

Aumento de la calidad del software.Cero defectos en los componentes reutilizables.

El uso de herramientas CASE permitió encontrarantes los defectos.

URJC – Master en Sistemas Telemáticos e Informáticos

Tema 3: Reutilización del Software

3.1 Concepto de Reutilización de Software

Experiencias

Page 4: 5.Reuso

4

10

Información de Análisis

Diseños, arquitecturas software

Patrones, Esquemas, Plantillas

Componentes de código

Documentación

Código fuente

URJC – Master en Sistemas Telemáticos e Informáticos

Tema 3: Reutilización del Software

3.2 Tipos y Formas de Reutilización. Proceso

11

Proceso de Reutilización

Desarrollopara

Reutilizar

Desarrollocon

Reutilización

Componentes de SW Aplicaciones SW

Repositorio

3.2 Tipos y Formas de Reutilización. Proceso

Tema 3: Reutilización del Software

URJC – Master en Sistemas Telemáticos e Informáticos

12

Ciclo de Vida y Vista del Productor

Repositorio

Planear

Analizar

Diseñar

Implementar

Tests

Visión estratégica deSistemas y Reutilización

3.2 Tipos y Formas de Reutilización. Proceso

Tema 3: Reutilización del Software

URJC – Master en Sistemas Telemáticos e Informáticos

Page 5: 5.Reuso

5

13

Ciclo de Vida y Vista del Consumidor

Repositorio

Planear

Analizar

Diseñar

Implementar

Tests

Visión estratégica deSistemas y Reutilización

Guías deReutilización

Yproceso

Aplicación nueva

Tema 3: Reutilización del Software

URJC – Master en Sistemas Telemáticos e Informáticos

3.2 Tipos y Formas de Reutilización. Proceso

14

Ciclo de Vida del Productor: Ingeniería del Dominio

FASE 1

Análisis delDominio

FASE 2Construcción

de ComponentesReutilizables

FASE 3Creación de la

Librería deReutilización

1. Definición del dominio2. Vocabulario del dominio3. Modelo del dominio4. Arquitectura del dominio

ComponentesReutilizables

Catálogo y libreríade Reutilización

Esquema de Clasificación

Tema 3: Reutilización del Software

URJC – Master en Sistemas Telemáticos e Informáticos

3.2 Tipos y Formas de Reutilización. Proceso

15

Esfuerzo y costes adicionales

Esfuerzoextra

Coste de proyectosdesarrollados

sin reutilización

Coste de proyectosen desarrollo

para reutilización

Esfuerzoahorrado

Coste de proyectosen desarrollo

con y para reutilización

Tema 3: Reutilización del Software

URJC – Master en Sistemas Telemáticos e Informáticos

3.2 Tipos y Formas de Reutilización. Proceso

Page 6: 5.Reuso

6

16

Se trata de crear componentes de software para ser Reutilizados.

Los componentes deben estar suficientemente cualificados.

Los componentes deberán estar clasificados para su posterior recuperación.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

17

DefinicionesWallnau: Unidad de software con funcionalidad y complejidad significativa, considerada como caja negra y de grano grueso.

Nierstrasz y Meijler: Unidad de Grano grueso o grano fino (desde botones y ventanas de diálogo hasta hojas de cálculo).

Szyperski: Unidad binaria de composición carente de estado caracterizado por su interfaz, que debe definir tanto la funcionalidad como las dependencias del contexto (funcionalidad del entorno, plataforma de ejecución, etc.)

Meyer: Noción fundamental: es software orientado al cliente: que permita se utilizado por otros elementos de software sin intervención de los autores. Implica una completa especificación de su comportamiento y funcionalidad.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

18

Alternativas para obtener componentes reutilizables

Comprándolos: es necesario conocer sus características.

Construirlos: es preciso conocer las características de las partes que queremos a reutilizar.

Utilizar reingeniería: la parte que queramos reutilizar debe adaptarse a las nuevas características.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

Page 7: 5.Reuso

7

19

Ventajas

Fácilmente reutilizables en un mismo entorno (VBBASIC)Modularidad.Fáciles de desarrollar por terceros a partir de unas especificaciones.Distribución de componentes (CORBA, Servicios Web).Interoperabilidad (CORBA, Servicios Web).

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

20

Problemas

Problemas de cualificación (sin errores).Descripción inadecuada.Sistema de clasificación pobre. Problemas de integración / adaptación.Falta de estandarización.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

21

Granularidad de los Componentes (I)

Componentes de Grano Fino: suelen ser genéricos eindependientes del dominio de aplicación.

Componentes de Grano Grueso: suelen ser componentesrelacionados con subsistemas.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

Page 8: 5.Reuso

8

22

Granularidad de los Componentes (II)

Centrarse en componentes de grano grueso

Practicar una Reutilización Vertical

Dividir entre dominios

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

23

Ventajas y Desventajas de la Granularidad

GRANO GRUESOSencillez de uso, Mantenibilidad buena (según casos), Sin repetición de clases, Poco adaptable

GRANO FINO

Repetición de clases, Mantenibilidad regular (según casos), mayor número de componentes

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

24

DescripcióndelComponente

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

Page 9: 5.Reuso

9

25

COTS es un término para designar a diferentesProductos software

Definición de COTS: Cualquier item personalizable utilizadocon propósitos no gubernamentales que ha sido vendido,alquilado o licenciado para el público general.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

26

¿ Qué es un Sistema COTS ?

Un sistema basado en COTS es aquel que utilizaComponentes COTS.

Incorporar productos software COTS en un sistemaimplica diseñar los interfaces con otros componentes.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

27

Riesgos en el uso de COTS (I)

Control de la gestión del programa sobre versionesde productos de vendedores.

Fallos de Upgrading (perdida de soporte del vendedor,versiones incompatibles, formatos distintos)

Planificación y presupuesto del ciclo de vida para sistemasCOTS. Frecuencia de actualización. Dificultad para predecir costes de mantenimiento.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

Page 10: 5.Reuso

10

28

Control de la Seguridad del Sistema. VulnerabilidadCertificación de sistemas

Mantenimiento de la Calidad del Software.Identificar errores y fallosLibres de defectosOperaciones de testing

Gestión de la Configuración.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

Riesgos en el uso de COTS (II)

29

Mantenimiento con COTS

ACTIVIDADES DE MANTENIMIENTO

Nuevas actividades de mantenimiento

Actividades de mantenimiento modificadas

1. Investigación de mercados.2. Actualizar análisisde impacto.

3. Gestión de Assets

1. Planificación y Presupuesto del programa2. Control de Calidad3. Gestión de Conf.4. Soporte Logístico

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

30

Preparación del Ciclo de Vida con COTS

1. Introducción sobre el concepto de COTS.2. Requisitos y restricciones del programa: sobre el uso de COTS.3. Preparación para el mantenimiento de SW con COTS

Criterios de evaluación de productos COTSSelección de productos COTSCompra de licenciasOrganización y responsabilidades del mantenimiento

4. Procedimientos de mantenimiento basados en COTS: ánálisisde mercado, análisis de impacto, gestión de assets, planificación y presupuestodel programa, control de calidad, gestión de conf. y soporte logístico.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

Page 11: 5.Reuso

11

31

Megaprogramación

Kits (HP)

Building Blocks (BBs)

Ingeniería delDominio

Kits específicos de dominio

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

32

COM / DCOM / COM+

COM (Component Object Model): es un modelo de componentes de Microsoft escritos en C++ y diseñadoscomo una especificación en tiempo de ejecución. Son elsoporte para DCOM (Distibuted COM).

DCOM integra un sistema orientado a objetos vía RPC.

COM+ introduce características de seguridad y transaccionalesprincipalmente del Microsoft Transaction Server (MTS).

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

Modelos de Componentes: Microsoft

URJC – Master en Sistemas Telemáticos e Informáticos

33

Interfaces COM

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

Modelos de Componentes: Microsoft

URJC – Master en Sistemas Telemáticos e Informáticos

Page 12: 5.Reuso

12

34

Filosofía de COM+

Esfuerzo para mover código frecuentemente usado delos programadores a las librerías del sistema.

Programación declarativa en lugar de funcional mediante declaraciones de atributos en varios niveles (ej: aplicaciones, Interfaces, clases).

Los valores de los atributos se almacenan en una Base deDatos del sistema denominada catálogo.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

Modelos de Componentes: Microsoft

URJC – Master en Sistemas Telemáticos e Informáticos

35

COM / DCOM no ofrecen un protocolo distribuido para ofrecer Servicios Web.

La estrategia .NET mediante su lenguaje C# es integrartecnologías basadas en XML y SOAP para implementarservicios web.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

Modelos de Componentes: Microsoft

URJC – Master en Sistemas Telemáticos e Informáticos

36

Plataforma.NET

C#

Soporte XML

ASP .NET

ADO .NET

ServiciosWeb

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

Modelos de Componentes: Microsoft

URJC – Master en Sistemas Telemáticos e Informáticos

Versión renovada de

ASP 3.0

Reformulación de C++ en Java

NamespaceSystem.xml

Permite la escalabilidad de lenguajes

.NeT para soportar

modelos dedatos

relacionales y jerárquicos

Page 13: 5.Reuso

13

37

Características de componentes .NET (I)

Código y Metadatos: .NET usa los metadatos para describirlos puntos de entrada a los componentes. El metadato sealmacena con el código del componente en forma de DLL oejecutable. Métodos: Similares a las funciones

Propiedades: Proporcionan persistencia a los datos

Eventos: Mensajes al objeto para expresar la ocurrenciade una acción

Herencia

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

Modelos de Componentes: Microsoft

URJC – Master en Sistemas Telemáticos e Informáticos

38

Modelos de Componentes: Microsoft

Características de componentes .NET (II)

Nombrado fuerte(Strong Name)

Soporte de errores

Interoperabilidad

Consideraciones de Diseño

Ámbito del componenteSelección de la ArquitecturaPrototipado de la interfaz

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

39

Modelos de Componentes: JavaBeans (I)

JavaBeans es una especificación que describe la manera en la que las clases de Java son consideradas un Bean.

Los interfaces y clases del paquete java.beans nospermite a un usuario de Beans establecer y coger suspropiedades.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

Page 14: 5.Reuso

14

40

Modelos de Componentes: JavaBeans (II)

La arquitectura de componentes JavaBeans es una plataformaneutral (EJB) para el desarrollo de aplicaciones basadas encomponentes.

La filosofía es “Escribelo una vez, ejecutalo en cualquier parte”

REUTILIZACIÓN DE COMPONENTES

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

41

Modelos de Componentes: JavaBeans (III)

JavaBeans convierte las clases en componentes proporcionando nuevas características.

El proceso de personalización (“customize”) permite configurar un Bean para una tarea particular.

Los Beans han sido diseñados para interoperar con otras tecnologías de componentes (ej: ActiveX)

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

42

Modelos de Componentes: JavaBeans (IV)

Tipos de componentes EJB

Session beans: se usan para aspectos orientados a tareasy proporcionan al cliente la vista del servidor.

Entity beans: se usan para modelar datos.

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

Page 15: 5.Reuso

15

43

Modelos de Componentes: JavaBeans (V)

Ejemplos de JavaBeans

Java Abstract Windowing Toolkit (AWT) Java Swing component

ShoppingCard EJB (BEA Weblogic Commerce Server)

Código Nativo

AWT

SWING Framework

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

44

Resumen: Modelado de Componentes

Determinar ámbito y funcionalidad: Tamaño del componente

Reutilización

Calidad: Control de Errores

Interoperabilidad: Interfaces

Documentación

Clasificación

Tema 3: Reutilización del Software

3.3 Reutilización de Componentes

URJC – Master en Sistemas Telemáticos e Informáticos

45

TEMAS COMPLEMENTARIOS al TEMA 3

Modelos distribuidos y descentralizadosBasados en CORBA, RMIBasados en XML: Servicios Web

Otros modelos y/o lenguajesWSXL (Web Services eXperience Language)

http://www-128.ibm.com/developerworks/library/specification/ws-wsxl/

URJC – Master en Sistemas Telemáticos e Informáticos

Tema 3: Reutilización del Software