You are on page 1of 10

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

You might also like