Cuando nos adentramos al mundo
laboral del desarrollo de software, siempre deseamos construir sistemas desde
cero para nuestra facilidad, pero no siempre es posible debido a que hoy en día
la mayoría de las empresas ya cuenta con
un sistema que cumple con el proceso de negocios de la organización, y es ahí
en donde recae el concepto de Reingeniería
de Software.
Pero, ¿qué es la reingeniería de software?, muchos autores la definen
como una “modificación de un producto de 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 evaluación.” (Sicilia,
2009) .
Esta definición nos habla de un proceso de modificación,
en donde dicho concepto también es aplicable a los mantenimientos de software,
entonces, ¿por qué no hacer un mantenimiento perfectivo en vez de una larga
reingeniería? La respuesta dependerá de la situación en que nos encontremos,
como sabemos “no se puede dar mantenimiento de forma eterna, no es técnica, ni
económicamente viable” (Sistemasumma, 2011) y recordemos que la
más marcada diferencia será el tiempo y el dinero.
La reingeniería consta de un
proceso de 6 pasos, en donde puede variar dependiendo el autor que se esté
leyendo, no obstante la mayoría coincide en que se deben realizar las
siguientes actividades:
- Análisis de inventario.
- Reestructuración de documentos.
- Ingeniería inversa.
- Reestructuración del código.
- Reestructuración de datos.
- Ingeniería directa.
Imagen 1. Pasos de la
Reingeniería del Software
Estas actividades son la esencia de toda reingeniería de software, todas y cada una de ellas nos aportan información que más adelante ayudará a la creación del sistema, sin embargo, no siempre es posible llevarlas a cabo; por ejemplo, imaginemos que el sistema al que le queremos aplicar una reingeniería tiene una longevidad muy grande, es poco probable que su documentación exista y la reestructuración de documentos será un punto que pasemos de largo. El seguimiento correcto nos llevará a tener una visión más amplia de la futura aplicación, lo que se puede traducir como una mayor facilidad para desarrollar.
“Cuando una aplicación lleva
siendo usada años, es fácil que esta aplicación se vuelva inestable como fruto
de las múltiples correcciones, adaptaciones o mejoras que han podido surgir a
lo largo del tiempo. Esto deriva en que cada vez que se pretende realizar un
cambio se producen efectos colaterales inesperados” (Sicilia, 2009) , por lo que identificar en qué punto es
necesario emplear una reingeniería será una de las partes más importantes para
cualquier empresa. Este proceso es una alternativa viable pero bastante cara,
su proceso conlleva una inversión monetaria y de tiempo de cifras con más de
tres ceros, por lo que el escrutinio que se tenga que hacer al sistema deberá
hacerse minuciosamente, analizando todas las posibles alternativas.
Referencias
Sicilia, M.-A. (9 de Enero de 2009). OpenStax CNX.
Obtenido de http://cnx.org/contents/jXj8TA20@3/Qu-es-Reingeniera-del-Software
Sistemasumma. (26 de
Mayo de 2011). Sistemas UMMA. Obtenido de
https://sistemasumma.com/2011/05/26/mantenimiento-y-reingenieria-de-software/
No hay comentarios:
Publicar un comentario