5.Reuso
-
Upload
liliana-nieto -
Category
Documents
-
view
32 -
download
0
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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