Dentro de la
ingeniería del software se proporcionan soluciones técnicas que permiten
abordar el mantenimiento de manera que su impacto en coste dentro del ciclo de
vida sea menor. Las soluciones técnicas pueden ser de tres tipos:
1. Ingeniería inversa: Análisis
de un sistema para identificar sus componentes y las relaciones entre ellos,
así como para crear representaciones del sistema en otra forma o en un nivel de
abstracción más elevado.
2. Reingeniería:
Modificación de un producto software, o de ciertos componentes, usando para el
análisis del sistema existente técnicas de ingeniería inversa y, para la etapa
de reconstrucción, herramientas de ingeniería directa, de tal manera que se
oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento,
reutilización, comprensión o evolución.
3. Reestructuración del
software: Cambio de representación de un producto software, pero dentro del
mismo nivel de abstracción.
El objetivos de estas
técnicas es proporcionar métodos para reconstruir el software, ya sea
reprogramándolo, redocumentándolo, rediseñándolo, o rehaciendo alguna/s
característica/s del producto. La diferencia entre las soluciones descritas
radica en cuál es el origen y cuál es el destino de las mismas (producto
inicial y/o producto final).
Gráficamente, estas
tres soluciones técnicas se enmarcan en el ciclo de vida de la siguiente
manera:
La Ingeniería directa
corresponde al desarrollo del software tradicional. La Ingeniería Inversa es el
proceso de análisis de un sistema para identificar sus componentes e
interrelaciones y crear representaciones del sistema en otra forma o a un nivel
más alto de abstracción. La Reingeniería es el examen y la alteración de un
sistema para reconstruirlo de una nueva forma y la subsiguiente implementación
de esta nueva forma. La Reestructuración es la modificación del software para
hacerlo más fácil de entender y cambiar.
La reingeniería hace
referencia a un ciclo, esto es, se aplican técnicas de ingeniería inversa para
conseguir representaciones de mayor abstracción del producto y sobre ellas se
aplican técnicas de ingeniería directa para rediseñar o reimplementar el
producto.
Cualquiera de estas
técnicas se puede aplicar a lo largo de todas las fases del ciclo de vida o
bien entre algunas de sus fases.
También existen otras
tecnologías, como por ejemplo:
·
La remodularización: consiste en
cambiar la estructura modular de un sistema de forma que se obtenga una nueva
estructura siguiendo los principios del diseño estructurado.
·
Análisis de la facilidad de
mantenimiento: normalmente la mayor parte del mantenimiento se centra
relativamente en unos pocos módulos del sistema.
·
Visualización: el proceso más antiguo
para la comprensión del software.
·
Análisis y mediciones: son importantes
tecnologías que estudian ciertas propiedades de los programas.
No hay comentarios:
Publicar un comentario