Ingeniería del Software

Slides:



Advertisements
Presentaciones similares
MODELOS ORIENTADOS A OBJETOS
Advertisements

INGENIERÍA DE SOFTWARE Introducción Arquitectura de Software
Fundamentos de Diseño de Software INFT.1
Enfoques de desarrollo
Desarrollo de Software Orientado a Objeto Ingeniería de Software Alfonso Vega Is-in-400.blogspot.com.
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
Virtual PC.
INGENIERIA DE SOFTWARE
1. INTRODUCCION AL DISEÑO MECANICO Autor: Ing. Luis L. López T
Arquitectura CLARO-TECNOTREE
DSOO - María Eugenia Valencia
MODELADO DE ANALISIS Y DISEÑO
CONCEPTOS Y PRINCIPIOS DE DISEÑO
Entornos de programación
Ingeniería del Software
Republica Bolivariana de Venezuela U.G.M.A 7mo semestre Ing. Sistema
1  2008 Universidad de Las Américas - Ingeniería de Software : Dr. Juan José Aranda Aboy ACI491: Ingeniería de Software Unidad 7: Proceso de Ingeniería.
Ingeniería del Software
M.S.C. Ivette Hernández Dávila
HERRAMIENTAS CASE.
Fundamentos de Programación
El Proceso Software Ingeniería en Informática
Análisis y Diseño de un Software
Ingeniería de Software
Ingeniería de Software Orientado a Objetos
DISEÑO DE SOFTWARE 1ª. Parte
Diseño e Implementación
Técnicas para la obtención de requerimientos
Bases de Datos Modelamiento.
Ciclo de Vida del Software Paradigmas de Desarrollo
Programación Orientada a Objetos
CONCEPTOS BÁSICOS Diseño de Sistemas.
Ingeniería de Software Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software
VII Congreso de Expotecnología UVM 2007 Jonás A. Montilva C.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Visión Panorámica Diccionario de Datos Paso al diseño
Gestión de la Configuración
EL APORTE DE LA INGENIERIA DE SOFTWARE A LAS ORGANIZACIONES
Ing. de SW Basada en Componentes
Importancia en la efectividad del:
Diseño de Software y su Proceso
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
INGENIERIA DE SOFTWARE
Alexander Aristizabal Ángelo flores herrera
I NGENIERÍA DE S OFTWARE L ABORATORIO VI Diseño - Diagrama de clases Eduardo Saavedra A. 07/10/2009.
Diseño de Sistemas.
Procesos de Desarrollo de Software
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
Ingeniería de Software Ingeniería en Computación M.C. J. Jesús Arellano Pimentel.
Roles de Open UP.
Fundamentos y Conceptos Claves del Software ISF5501 Ingeniería de Software Semana 1/1.
PROCESOS DE DESARROLLO DE SOFTWARE
Ingeniería de software
Actividades en el Proceso de desarrollo de Software
Métricas De Software OO
Estimación de Puntos de Función
Por: Jaime Enrique Melendez Monreal Código: INGENIERÍA DE SOFTWARE.
INGENIERIA DE SOFTWARE
 es el conjunto de conocimientos y técnicas científicas aplicadas al desarrollo, implementación, mantenimiento y perfeccionamiento de estructuras (tanto.
Acceso a Datos Erick López Ovando Licenciado en Informática.
DISEÑO DE COMPONENTES Y DESARROLLO BASADO EN COMPONENTES
Proceso de desarrollo de Software
Capas de ingeniería del Software. Rosendo Antonio Manuel Ingeniería en Sistemas Computacionales.
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
Software de Comunicaciones
ELO-329: Diseño y Programación Orientados a Objetos1 Proceso de Desarrollo de SW Agustín J. González ElO329: Diseño y Programación Orientados a Objeto.
Introducción a la abstracción de datos MC Beatriz Beltrán Martínez Primavera 2015.
Verificación y Validación del Software
Transcripción de la presentación:

Ingeniería del Software Profesor: Juan Antonio López Quesada. Facultad de Informática. http://dis.um.es/~lopezquesada Tema 12. Reutilización del software

Reutilización del software. Estructura Beneficios de la reutilización Dificultades para la reutilización Assets Niveles de reutilización Modelo de procesos con reutilización Desarrollo basado en componentes Juan Antonio López Quesada Reutilización del software

Reutilización del software. Bibliografía (Pressman 98) Roger S. Pressman. “Ingeniería del Software – Un enfoque práctico”. 4ª Edición. Ed. Mc Graw-Hill. 1998. Capítulo 26. Juan Antonio López Quesada Reutilización del software

Reutilización del software Idea vieja (reutilización ad hoc). “Cualquier procedimiento que produce o ayuda a producir un sistema mediante el nuevo uso de algún elemento procedente de un esfuerzo de desarrollo anterior” (Freeman 87) Inicialmente, simple combinación de componentes de código almacenados en una biblioteca (reutilización del código, sin método)  enfoque muy simple ¿Qué se reutiliza? ¿Cómo? Contrastar con el capítulo 4 de (Meyer 98) Juan Antonio López Quesada Reutilización del software

Beneficios de la reutilización “La reutilización es la única aproximación realista para llegar a los índices de productividad y calidad que la industria del sw. necesita” (Mili et al. 95). Mejora de la productividad: Disminución tiempo de desarrollo:  mejor adaptación requisitos cambiantes ¡Los requisitos no son estables! Disminución de costes Mejora de la calidad del sw.: Mayor fiabilidad Mayor eficiencia (aunque al principio pueda parecer que no) En (Meyer 98) se menciona: Oportunidad Disminución de esfuerzos de mantenimiento Fiabilidad Eficiencia Consistencia (ósmosis estilo programación) Inversión (preservar el “know-how”) Juan Antonio López Quesada Reutilización del software

Dificultades para la reutilización En muchas empresas no existe plan de reutilización (no se considera prioritario) Escasa formación Resistencia del personal Pobre soporte metodológico uso de métodos que no promueven la reutilización (estructurados) Necesarios métodos para: desarrollo para reutilización desarrollo con reutilización ¿Quién soporta los gastos adicionales de la reutilización? Juan Antonio López Quesada Reutilización del software

Assets Se puede reutilizar mucho más que código fuente: beneficios mayores al reutilizar diseños y documentación asociada al código fuente reutilizable. Asset o “elemento sw. reutilizable”: cualquier producto sw. obtenido en el ciclo de vida del software, con independencia de su nivel de abstracción: especificaciones, diseños, código, pruebas, documentación, etc. Inicialmente, se pensaba sólo en la reutilización de código. Actualmente, el concepto de reutilización ha evolucionado hacia la idea de que todo el conocimiento y productos derivados de la producción de sw. son susceptibles de ser reutilizados en la construcción de nuevos sistemas, surgiendo de esta manera el concepto de asset o componente sw. reutilizable. Nótese las diferencias con (Meyer 98): Diferencias entre diseño y codificación: Meyer propone reducir el salto, asegurar la consistencia de forma natural al usar el mismo lenguaje Meyer propugna centrarse en el código, y afirma que los componentes han sido la mayor contribución a la reutilización Juan Antonio López Quesada Reutilización del software

Niveles de reutilización de código librerías de funciones, editores, inclusión de ficheros, mecanismos de herencia en POO, componentes, etc. de diseños no volver a inventar arquitecturas p.ej. patrones de diseño P.ej. patrones arquitectónicos (C/S, pipeline, OO, etc.) de especificaciones reutilización de las abstracciones del dominio debe estar asociada a la generación (semi)automática de los elementos de diseño e implementación. Elevar el nivel de abstracción  reutilización  Asset como subsistema agregación de varios componentes atómicos a distintos niveles de abstracción (mecano). Es una clasificación simple, pero es la más usada. Juan Antonio López Quesada Reutilización del software

Tipos de assets o artefactos reutilizables (Jones 94) Un asset puede encapsular cualquier abstracción útil producida durante el desarrollo de software Planes de proyecto. Estimaciones de coste. Arquitectura. Especificaciones y modelos de requisitos. Diseños. Código fuente. Documentación de usuario y técnica. Interfaces hombre-máquina. Datos. Casos de prueba. Juan Antonio López Quesada Reutilización del software