Introducción.
Cuando un software ha tenido una
vida útil de 10 a 15 años, ha sufrido muchos cambios y modificaciones tanto en
su código, como en su arquitectura, su documentación, diseño, etc. y aun se
provee realizar muchos más cambios para seguir satisfaciendo las necesidades
del usuario, se llega a un punto en que el equipo encargado de realizar dichos
cambios no comprenden a detalle las funciones del sistema y la complejidad
actual del mismo complica las cosas. En este punto, la mejor opción es
aplicarle reingeniería al software, aunque esto implique grandes costos, pero
traerá mejores beneficios.
Reingeniería de Software.
Para entender todo lo que implica
la reingeniería de software, primero debemos plantear que es y en qué consiste
dicho proceso.
La reingeniería de software es la
actividad de reconstrucción de un sistema, en el que el estado actual del
sistema es muy complejo y dificultará realizar cambios en él, por lo que la opción
más viable para que siga siendo útil es reconstruirlo (Pressman) . Consta de seis
etapas, que pueden seguir o no una secuencia lineal, pero siempre se
desarrollarán cíclicamente.
Las etapas son:
- Análisis de inventarios: se analizan los inventarios que poseen las empresas o el usuario sobre las características del programa y descripciones detalladas sobre su importancia, edad, etc., así se sabrá a que recursos se aplicará la reingeniería.
- Reestructuración de documentos: aquí se analiza si se necesita documentar de nuevo todo el sistema, si se tiene que actualiza pero se cuentan con pocos recursos o si la documentación requiere de demasiado tiempo.
- Ingeniería inversa: en esta etapa se analiza el programa para crear una representación mucho más abstracta que el código fuente y se recupera el diseño.
- Reestructuración de código: aquí se analizan los módulos en los que se sospecha que el código que lo compone no sigue las estructuras de programación estructurada, para reestructurarlo y que siga dichas normas.
- Reestructuración de los datos: esta etapa se lleva a cabo en un grado de abstracción bajo, y su respectiva reingeniería es de gran escala. Se definen los objetos de datos y los atributos, para después revisar la actual estructura de los datos.
- Ingeniería avanzada.
Conclusión.
Es importante conocer en qué consiste
la reingeniería de software porque de esta manera sabremos en que casos y en qué
momento es adecuado aplicarla para evitar que el sistema se vuelva mucho más
complejo de lo que ya es, y así proveerle un sistema funcional y con mejores técnicas
de programación al usuario.
Referencias.
Pressman, R. Ingeniería de Software. Un enfoque
práctico. Mc Graw Hill.
No hay comentarios:
Publicar un comentario