Sunteți pe pagina 1din 15

Master Oficial en Sistemas Telemticos e Informticos

TEMA III Reutilizacin del Software

OBJETIVOS Describir el concepto de Reutilizacin de Software Describir los tipos de reutilizacin existentes Reutilizar cdigo, componentes y diseos

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.1 Concepto de Reutilizacin de Software

La Reutilizacin de Software aparece como una alternativa para desarrollar aplicaciones y sistemas SW de una manera ms eficiente, productiva y rpida. La idea es reutilizar elementos y componentes de SW en lugar de tener que desarrollarlos desde el principio.

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.1 Concepto de Reutilizacin de Software Surge formalmente en 1968 (Dough McIlroy) La idea principal era producir componentes de software como si de componentes electrnicos se tratara. El objetivo es reutilizar lo existente sin tener que volver a redisearlo desde el principio.

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.1 Concepto de Reutilizacin de Software Definicin Es el proceso de creacin de sistemas de software a partir de un software existente, en lugar de tener que redisearlo desde el principio (C. W. Krueger)

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.1 Concepto de Reutilizacin de Software Ventajas


Reducir el tiempo de desarrollo Reduccin de costes Incrementar la productividad No tener que reinventar las soluciones Facilitar la comparticin de productos del ciclo de vida

Desventajas

Necesidad de invertir antes de obtener resultados Carencia de mtodos adecuados Necesidad de formar al personal Convencer a los managers Dificultad para institucionalizar los procesos

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.1 Concepto de Reutilizacin de Software Experiencias 70: Raytheon Company. Software y Diseos redundantes. Examen sobre 5000 programas en COBOL. Nivel de Reutilizacin: [15% - 85%] Software Factory (SDC) McIlroy

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.1 Concepto de Reutilizacin de Software Experiencias 1975-1981: HSK (Hitachi Software Factory) Catalogar libreras de mdulos reutilizables. Definir herramientas y procedimientos para reutilizar cdigo, diseos, documentacin y casos de prueba.

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.1 Concepto de Reutilizacin de Software Experiencias 1986: GTE Data Services catalog 300 componentes de cdigo (ASSETS). Aument su productividad entre un 20 y un 30 %. Nivel de Reutilizacin: 15 %. Aumento de la calidad del software. Cero defectos en los componentes reutilizables. El uso de herramientas CASE permiti encontrar antes los defectos.
URJC Master en Sistemas Telemticos e Informticos
9

Tema 3: Reutilizacin del Software

3.2 Tipos y Formas de Reutilizacin. Proceso

Informacin de Anlisis Diseos, arquitecturas software Patrones, Esquemas, Plantillas Componentes de cdigo Documentacin Cdigo fuente

URJC Master en Sistemas Telemticos e Informticos

10

Tema 3: Reutilizacin del Software

3.2 Tipos y Formas de Reutilizacin. Proceso Proceso de Reutilizacin

Desarrollo para Reutilizar


Repositorio

Desarrollo con Reutilizacin

Componentes de SW

Aplicaciones SW
11

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.2 Tipos y Formas de Reutilizacin. Proceso Ciclo de Vida y Vista del Productor Visin estratgica de Sistemas y Reutilizacin

Planear Analizar Disear Implementar Tests

Repositorio

URJC Master en Sistemas Telemticos e Informticos

12

Tema 3: Reutilizacin del Software

3.2 Tipos y Formas de Reutilizacin. Proceso Ciclo de Vida y Vista del Consumidor Visin estratgica de Sistemas y Reutilizacin

Planear
Guas de Reutilizacin Y proceso

Analizar Disear Implementar Tests


Repositorio

Aplicacin nueva
URJC Master en Sistemas Telemticos e Informticos
13

Tema 3: Reutilizacin del Software

3.2 Tipos y Formas de Reutilizacin. Proceso Ciclo de Vida del Productor: Ingeniera del Dominio FASE 1 Anlisis del Dominio
1. 2. 3. 4. Definicin del dominio Vocabulario del dominio Modelo del dominio Arquitectura del dominio

FASE 2 Construccin de Componentes Reutilizables Componentes Reutilizables

FASE 3 Creacin de la Librera de Reutilizacin


Catlogo y librera de Reutilizacin Esquema de Clasificacin

URJC Master en Sistemas Telemticos e Informticos

14

Tema 3: Reutilizacin del Software

3.2 Tipos y Formas de Reutilizacin. Proceso Esfuerzo y costes adicionales


Esfuerzo extra

Esfuerzo ahorrado
Coste de proyectos desarrollados Coste de proyectos en desarrollo Coste de proyectos en desarrollo con y para reutilizacin

sin reutilizacin

para reutilizacin

URJC Master en Sistemas Telemticos e Informticos

15

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes

Se trata de crear componentes de software para ser Reutilizados. Los componentes deben estar suficientemente cualificados. Los componentes debern estar clasificados para su posterior recuperacin.

URJC Master en Sistemas Telemticos e Informticos

16

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Definiciones

Wallnau: 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 dilogo hasta hojas de clculo). Szyperski: Unidad binaria de composicin carente de estado caracterizado por su interfaz, que debe definir tanto la funcionalidad como las dependencias del contexto (funcionalidad del entorno, plataforma de ejecucin, etc.) Meyer: Nocin fundamental: es software orientado al cliente: que permita se utilizado por otros elementos de software sin intervencin de los autores. Implica una completa especificacin de su comportamiento y funcionalidad.

URJC Master en Sistemas Telemticos e Informticos

17

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Alternativas para obtener componentes reutilizables Comprndolos: es necesario conocer sus caractersticas. Construirlos: es preciso conocer las caractersticas de las partes que queremos a reutilizar. Utilizar reingeniera: la parte que queramos reutilizar debe adaptarse a las nuevas caractersticas.

URJC Master en Sistemas Telemticos e Informticos

18

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes

Ventajas Fcilmente reutilizables en un mismo entorno (VBBASIC) Modularidad. Fciles de desarrollar por terceros a partir de unas especificaciones. Distribucin de componentes (CORBA, Servicios Web). Interoperabilidad (CORBA, Servicios Web).

URJC Master en Sistemas Telemticos e Informticos

19

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes

Problemas Problemas de cualificacin (sin errores). Descripcin inadecuada. Sistema de clasificacin pobre. Problemas de integracin / adaptacin. Falta de estandarizacin.

URJC Master en Sistemas Telemticos e Informticos

20

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes

Granularidad de los Componentes (I) Componentes de Grano Fino: suelen ser genricos e independientes del dominio de aplicacin. Componentes de Grano Grueso: suelen ser componentes relacionados con subsistemas.

URJC Master en Sistemas Telemticos e Informticos

21

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes

Granularidad de los Componentes (II)

Centrarse en componentes de grano grueso Practicar una Reutilizacin Vertical Dividir entre dominios

URJC Master en Sistemas Telemticos e Informticos

22

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes

Ventajas y Desventajas de la Granularidad GRANO GRUESO


Sencillez de uso, Mantenibilidad buena (segn casos), Sin repeticin de clases, Poco adaptable

GRANO FINO
Repeticin de clases, Mantenibilidad regular (segn casos), mayor nmero de componentes

URJC Master en Sistemas Telemticos e Informticos

23

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes

Descripcin del Componente

URJC Master en Sistemas Telemticos e Informticos

24

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes

COTS es un trmino para designar a diferentes Productos software


Definicin de COTS: Cualquier item personalizable utilizado con propsitos no gubernamentales que ha sido vendido, alquilado o licenciado para el pblico general.

URJC Master en Sistemas Telemticos e Informticos

25

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes

Qu es un Sistema COTS ? Un sistema basado en COTS es aquel que utiliza Componentes COTS. Incorporar productos software COTS en un sistema implica disear los interfaces con otros componentes.

URJC Master en Sistemas Telemticos e Informticos

26

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Riesgos en el uso de COTS (I) Control de la gestin del programa sobre versiones de productos de vendedores. Fallos de Upgrading (perdida de soporte del vendedor, versiones incompatibles, formatos distintos) Planificacin y presupuesto del ciclo de vida para sistemas COTS. Frecuencia de actualizacin. Dificultad para predecir costes de mantenimiento.

URJC Master en Sistemas Telemticos e Informticos

27

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Riesgos en el uso de COTS (II) Control de la Seguridad del Sistema. Vulnerabilidad Certificacin de sistemas Mantenimiento de la Calidad del Software. Identificar errores y fallos Libres de defectos Operaciones de testing Gestin de la Configuracin.
URJC Master en Sistemas Telemticos e Informticos
28

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Mantenimiento con COTS

ACTIVIDADES DE MANTENIMIENTO
Nuevas actividades de mantenimiento

1. Investigacin de mercados. 2. Actualizar anlisis de impacto. 3. Gestin de Assets 1. Planificacin y Presupuesto del programa 2. Control de Calidad 3. Gestin de Conf. 4. Soporte Logstico
29

Actividades de mantenimiento modificadas

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Preparacin del Ciclo de Vida con COTS 1. Introduccin sobre el concepto de COTS. 2. Requisitos y restricciones del programa: sobre el uso de COTS. 3. Preparacin para el mantenimiento de SW con COTS
Criterios de evaluacin de productos COTS Seleccin de productos COTS Compra de licencias Organizacin y responsabilidades del mantenimiento

4. Procedimientos de mantenimiento basados en COTS: nlisis de mercado, anlisis de impacto, gestin de assets, planificacin y presupuesto del programa, control de calidad, gestin de conf. y soporte logstico.
URJC Master en Sistemas Telemticos e Informticos
30

10

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Ingeniera del Dominio

Megaprogramacin Kits (HP)

Building Blocks (BBs) Kits especficos de dominio


31

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: Microsoft COM / DCOM / COM+ COM (Component Object Model): es un modelo de componentes de Microsoft escritos en C++ y diseados como una especificacin en tiempo de ejecucin. Son el soporte para DCOM (Distibuted COM). DCOM integra un sistema orientado a objetos va RPC. COM+ introduce caractersticas de seguridad y transaccionales principalmente del Microsoft Transaction Server (MTS).
URJC Master en Sistemas Telemticos e Informticos
32

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: Microsoft Interfaces COM

URJC Master en Sistemas Telemticos e Informticos

33

11

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: Microsoft Filosofa de COM+ Esfuerzo para mover cdigo frecuentemente usado de los programadores a las libreras del sistema. Programacin 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 de Datos del sistema denominada catlogo.
URJC Master en Sistemas Telemticos e Informticos
34

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: Microsoft COM / DCOM no ofrecen un protocolo distribuido para ofrecer Servicios Web. La estrategia .NET mediante su lenguaje C# es integrar tecnologas basadas en XML y SOAP para implementar servicios web.

URJC Master en Sistemas Telemticos e Informticos

35

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: Microsoft C# ASP .NET


Permite la escalabilidad de lenguajes .NeT para soportar modelos de datos relacionales y jerrquicos Versin renovada de ASP 3.0

Reformulacin de C++ en Java

Soporte XML
Namespace System.xml

Plataforma .NET ADO .NET Servicios Web

URJC Master en Sistemas Telemticos e Informticos

36

12

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: Microsoft Caractersticas de componentes .NET (I) Cdigo y Metadatos: .NET usa los metadatos para describir los puntos de entrada a los componentes. El metadato se almacena con el cdigo del componente en forma de DLL o ejecutable. Mtodos: Similares a las funciones
Propiedades: Proporcionan persistencia a los datos Eventos: Mensajes al objeto para expresar la ocurrencia de una accin

Herencia
URJC Master en Sistemas Telemticos e Informticos
37

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: Microsoft Caractersticas de componentes .NET (II) Nombrado fuerte (Strong Name) Soporte de errores Interoperabilidad

Consideraciones de Diseo
mbito del componente Seleccin de la Arquitectura Prototipado de la interfaz
38

URJC Master en Sistemas Telemticos e Informticos

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: JavaBeans (I) JavaBeans es una especificacin que describe la manera en la que las clases de Java son consideradas un Bean.

Los interfaces y clases del paquete java.beans nos permite a un usuario de Beans establecer y coger sus propiedades.

URJC Master en Sistemas Telemticos e Informticos

39

13

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: JavaBeans (II) La arquitectura de componentes JavaBeans es una plataforma neutral (EJB) para el desarrollo de aplicaciones basadas en componentes. La filosofa es Escribelo una vez, ejecutalo en cualquier parte REUTILIZACIN DE COMPONENTES

URJC Master en Sistemas Telemticos e Informticos

40

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: JavaBeans (III) JavaBeans convierte las clases en componentes proporcionando nuevas caractersticas. El proceso de personalizacin (customize) permite configurar un Bean para una tarea particular. Los Beans han sido diseados para interoperar con otras tecnologas de componentes (ej: ActiveX)

URJC Master en Sistemas Telemticos e Informticos

41

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: JavaBeans (IV) Tipos de componentes EJB Session beans: se usan para aspectos orientados a tareas y proporcionan al cliente la vista del servidor. Entity beans: se usan para modelar datos.

URJC Master en Sistemas Telemticos e Informticos

42

14

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Modelos de Componentes: JavaBeans (V)

Ejemplos de JavaBeans
Java Abstract Windowing Toolkit (AWT) Java Swing component
SWING Framework

AWT Cdigo Nativo ShoppingCard EJB (BEA Weblogic Commerce Server)


URJC Master en Sistemas Telemticos e Informticos
43

Tema 3: Reutilizacin del Software

3.3 Reutilizacin de Componentes Resumen: Modelado de Componentes


Determinar mbito y funcionalidad: Tamao del componente Reutilizacin Calidad: Control de Errores Interoperabilidad: Interfaces Documentacin Clasificacin

URJC Master en Sistemas Telemticos e Informticos

44

Tema 3: Reutilizacin del Software TEMAS COMPLEMENTARIOS al TEMA 3

Modelos distribuidos y descentralizados Basados en CORBA, RMI Basados en XML: Servicios Web Otros modelos y/o lenguajes WSXL (Web Services eXperience Language)
http://www-128.ibm.com/developerworks/library/specification/ws-wsxl/

URJC Master en Sistemas Telemticos e Informticos

45

15

S-ar putea să vă placă și