Bloque 5 .- Otros conceptos de Ingeniería del Software.
Tema 10. Reutilización del Sw.
Departamento de Informática y Sistemas
Facultad de Informática Campus Universitario de Espinardo - Murcia Índice de contenidos Reutilización del software. Beneficios de la reutilización. Dificultades para la reutilización. Assets. Niveles de reutilización.
01CD: Desarrollo Basado en Componentes.
Curso: 5º. Duración: 1er Cuatrimestre. Profesorado: José Sáez Martínez.
Profesor: Juan Antonio López Quesada Reutilización del software 2
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.
Profesor: Juan Antonio López Quesada Reutilización del software 3
1.- 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?
Profesor: Juan Antonio López Quesada Reutilización del software 4
2.- 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).
Profesor: Juan Antonio López Quesada Reutilización del software 5
3.-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?.
Profesor: Juan Antonio López Quesada Reutilización del software 6
4.- 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.
Profesor: Juan Antonio López Quesada Reutilización del software 7
4.-Assets: 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. Código fuente. Estimaciones de coste. Documentación de Arquitectura. usuario y técnica. Especificaciones y modelos Interfaces hombre- de requisitos. máquina. Diseños. Datos. Casos de prueba.
Profesor: Juan Antonio López Quesada Reutilización del software 8
5.- 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).
Profesor: Juan Antonio López Quesada Reutilización del software 9
01CD: Desarrollo Basado en Componentes Esta asignatura se incluye dentro del ámbito del desarrollo de software y la programación. Se presenta a los alumnos el concepto de Desarrollo Basado en Componentes y se hace una introducción a algunas de las tecnologías que actualmente se engloban bajo dicha denominación, y que el alumno suele encontrar en la industria cuando accede al mercado laboral.
Competencias genéricas: el alumno debe comprender los conceptos de Desarrollo e
Ingeniería del Software Basados en Componentes, y ser capaz de aplicar sus principios básicos para desarrollar aplicaciones y sistemas de información.
Competencias específicas: poder desarrollar de manera ágil una aplicación en un
entorno de programación actual, utilizando los componentes proporcionados por el propio entorno, así como otros adquiridos de fuentes ajenas. También debe ser capaz de desarrollar componentes de programación que puedan ser utilizados por otros programadores, ajustándose a los estándares que marcan las plataformas COM, .NET y Java.
Profesor: Juan Antonio López Quesada Reutilización del software 10