Reingenieria de software
La evolución del software ha constado de diferentes etapas de desarrollo, y una de ellas se llamo la “crisis del Software”. Esta crisis fue el resultado de la introducción de la tercera generación del Hardware. El hardware dejo de ser un impedimento para el desarrollo de la informática; redujo los costos y mejoro la calidad y eficiencia en el software producido.
A raíz de estacrisis se vio la necesidad de crear estándares de desarrollo del software, esto dio lugar a lo que hoy llamamos "Ingeniería de software" la cual es el establecimiento y uso de principios de la ingeniería a fin de obtener un software que sea fiable y que funcione eficientemente, con los menores costos posibles.
A pesar de la creación de estos estándares, muchos sistemas siguieron siendo desarrolladosy mantenidos sin aplicar ninguna practica de ingeniería de software por lo que hoy en día, muchas organizaciones se ven obligadas a seguir viviendo en esta crisis dado que sus sistemas son vitales para el funcionamiento de las mismas.
La reingeniería de software es la actividad con la cual se pretende dar solución a estos problemas. La reingeniería de software pretende dejar morir esos sistemasimposibles de mantener, no sin antes extraer de ellos los conocimientos que permitan crear un nuevo sistema fiable, eficiente y de fácil mantenimiento.
En muchos de los casos la reingeniería de software se convierte en la única solución a estos sistemas de baja calidad, sin embargo el esfuerzo de aplicar reingeniería es un proceso difícil, pero trae grandes beneficios si se emplea de maneraadecuada.
¿Qué es Reingeniería de Software?
Reingeniería del software se puede definir como: “modificación de un producto software, o de ciertos componentes, usando técnicas de Ingeniería Inversa, para el análisis del sistema existente y, herramientas de Ingeniería Directa para la etapa de reconstrucción, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto amantenimiento, reutilización, comprensión o evaluación.”
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 y hasta de gravedad, por lo que sehace necesario, aplicar reingeniería a la misma, si se prevé que la aplicación seguirá siendo de utilidad.
Reingeniería de Software en los LIS
Uno de los ejemplos más claros en donde es utilizada la Reingeniería de Software es en los “Sistemas de Información Heredados” (LIS por sus siglas en ingles Legacy Information System), los cuales, por lo general constituyen la columna vertebral delflujo de información de las empresas y la principal forma de agruparla. Un LIS puede ser definido como “cualquier sistema de información que significativamente se resiste a la modificación y evolución”. Tales LIS pueden causar serios problemas a la organización como ser:
* Casi siempre son ejecutados sobre hardware obsoleto que son lentos y caros de mantener.
* El mantenimiento delsoftware puede ser caro, porque carecen de la documentación necesaria para el entendimiento de los detalles del sistema y su seguimiento es costoso y consume mucho tiempo.
* Una falta de interfaces limpias hace que la integración de los LIS con otros sistemas sea difícil.
* Los LIS son también difíciles mas no imposibles ampliarlos.
La Reingeniería de Software es una forma demodernización para mejorar las capacidades y/o mantenibilidad de los sistemas de información heredados mediante la aplicación de tecnologías y practicas modernas. La Reingeniería de Software ofrece una disciplina de preparación para migrar un sistema de información heredado hacia un sistema evolucionable. El proceso aplica principios de ingeniería para un sistema existente para encontrar nuevos...
Regístrate para leer el documento completo.