Documente Academic
Documente Profesional
Documente Cultură
OBJETIVOS Describir el concepto de Reutilizacin de Software Describir los tipos de reutilizacin existentes Reutilizar cdigo, componentes y diseos
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.
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.
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)
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
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
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.
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
Informacin de Anlisis Diseos, arquitecturas software Patrones, Esquemas, Plantillas Componentes de cdigo Documentacin Cdigo fuente
10
Componentes de SW
Aplicaciones SW
11
3.2 Tipos y Formas de Reutilizacin. Proceso Ciclo de Vida y Vista del Productor Visin estratgica de Sistemas y Reutilizacin
Repositorio
12
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
Aplicacin nueva
URJC Master en Sistemas Telemticos e Informticos
13
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
14
Esfuerzo ahorrado
Coste de proyectos desarrollados Coste de proyectos en desarrollo Coste de proyectos en desarrollo con y para reutilizacin
sin reutilizacin
para reutilizacin
15
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.
16
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.
17
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.
18
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).
19
Problemas Problemas de cualificacin (sin errores). Descripcin inadecuada. Sistema de clasificacin pobre. Problemas de integracin / adaptacin. Falta de estandarizacin.
20
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.
21
Centrarse en componentes de grano grueso Practicar una Reutilizacin Vertical Dividir entre dominios
22
GRANO FINO
Repeticin de clases, Mantenibilidad regular (segn casos), mayor nmero de componentes
23
24
25
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.
26
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.
27
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
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
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
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
33
11
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
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.
35
Soporte XML
Namespace System.xml
36
12
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
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
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.
39
13
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
40
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)
41
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.
42
14
Ejemplos de JavaBeans
Java Abstract Windowing Toolkit (AWT) Java Swing component
SWING Framework
44
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/
45
15