La ingeniería del
software basada en reutilización es una estrategia de ingeniería
del software comparable en la que el proceso de desarrollo es adaptado a
la reutilización del software existente. Si bien los beneficios de la
reutilización han sido reconocidos durante muchos años, solo en la última
década ha existido una transición gradual desde el desarrollo del software
original hasta el desarrollo basado en la reutilización. La tendencia hacia el
desarrollo asado en la reutilización viene dada como respuesta a las demandas
de una menor producción de software y de menores costes de mantenimiento, de
una entrega más rápida de los sistemas y del incremento en la calidad del
software. “Cada vez más compañías ven su
software como un activo valioso y
están promocionando la reutilización para incrementar
sus beneficios en las inversiones del software”.
Las unidades de software que se reutilizan pueden ser de tamaños totalmente diferentes:
Re utilización de sistemas de aplicaciones: Puede ser reutilizada incorporándolos sin ningún cambio en otros sistemas, configurando la aplicación para diferentes clientes. Reutilización de componentes: Varía en tamaño desde subsistemas hasta objetos simples. Re utilización de objetos y funciones: Pueden reutilizarse componentes software que implementan una única función.
Una forma complementaria de reutilización es la reutilización de conceptos, en la que en lugar de reutilizar un componente, la entidad reutilizada es más abstracta y se diseña para ser configurada y adaptada a una variedad de situaciones. Puede incluirse tanto en patrones de diseño, productos de sistemas configurables y generadores de programas.
Los factores clave que deberían de considerarse a la hora de planificar la reutilización son:
La agenda de desarrollo del software: Son activos reutilizables de grano grueso.
Vida esperada del software: Si se está desarrollando un sistema de larga vida, habría que centrarse en la mantenibilidad del sistema. Se tendrá que adaptar el sistema a nuevos requerimientos, lo cual probablemente signifique hacer cambios a los componentes y sistemas de proveedores.
Los conocimientos, habilidades y experiencia del grupo de desarrollo: Todas las tecnologías de reutilización son bastante complejas y se necesita bastante tiempo para comprenderlas y usarlas de forma efectiva.
La criticidad del software y sus requerimientos no funcionales: Se tiene que crear un caso de confiabilidad para el sistema. Esto es difícil si no se tiene acceso al código fuente del software.
El dominio de las aplicaciones: En algunos dominios de aplicaciones como los sistemas de información medica y de fabricación hay varios productos genéricos que pueden reutilizarse para configurarlos a una situación particular.
La plataforma sobre la que el sistema se va ejecutar: Los sistemas de aplicaciones genéricos pueden ser plataformas especificas y solamente es posible reutilizarlos si el sistema se diseña para la plataforma.
Las unidades de software que se reutilizan pueden ser de tamaños totalmente diferentes:
Re utilización de sistemas de aplicaciones: Puede ser reutilizada incorporándolos sin ningún cambio en otros sistemas, configurando la aplicación para diferentes clientes. Reutilización de componentes: Varía en tamaño desde subsistemas hasta objetos simples. Re utilización de objetos y funciones: Pueden reutilizarse componentes software que implementan una única función.
Una forma complementaria de reutilización es la reutilización de conceptos, en la que en lugar de reutilizar un componente, la entidad reutilizada es más abstracta y se diseña para ser configurada y adaptada a una variedad de situaciones. Puede incluirse tanto en patrones de diseño, productos de sistemas configurables y generadores de programas.
Los factores clave que deberían de considerarse a la hora de planificar la reutilización son:
La agenda de desarrollo del software: Son activos reutilizables de grano grueso.
Vida esperada del software: Si se está desarrollando un sistema de larga vida, habría que centrarse en la mantenibilidad del sistema. Se tendrá que adaptar el sistema a nuevos requerimientos, lo cual probablemente signifique hacer cambios a los componentes y sistemas de proveedores.
Los conocimientos, habilidades y experiencia del grupo de desarrollo: Todas las tecnologías de reutilización son bastante complejas y se necesita bastante tiempo para comprenderlas y usarlas de forma efectiva.
La criticidad del software y sus requerimientos no funcionales: Se tiene que crear un caso de confiabilidad para el sistema. Esto es difícil si no se tiene acceso al código fuente del software.
El dominio de las aplicaciones: En algunos dominios de aplicaciones como los sistemas de información medica y de fabricación hay varios productos genéricos que pueden reutilizarse para configurarlos a una situación particular.
La plataforma sobre la que el sistema se va ejecutar: Los sistemas de aplicaciones genéricos pueden ser plataformas especificas y solamente es posible reutilizarlos si el sistema se diseña para la plataforma.
No hay comentarios:
Publicar un comentario