La Reingeniería del software se puede definir como la 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 evaluación.
Vivimos en un mundo en constante cambio. Las demandas de funciones de negocios y de tecnología de información que las soportan están cambiando a un ritmo que impone mucha presión competitiva en todas las organizaciones comerciales. Tanto los negocios como el software que soportan (o es) el negocio deberán diseñarse una vez más para mantener el ritmo.
Entre los beneficios de aplicar reingeniería a un producto existente se puede incluir:
Entre los beneficios de aplicar reingeniería a un producto existente se puede incluir:
- Pueden reducir los riegos evolutivos de una organización.
- Puede ayudar a las organizaciones a recuperar sus inversiones en software.
- Puede hacer el software más fácilmente modificable
- Amplía las capacidades de las herramientas CASE
- Es un catalizador para la automatización del mantenimiento del software
- Puede actuar como catalizador para la aplicación de técnicas de inteligencia artificial para resolver problemas de reingeniería
PASOS DE LA REINGENIERIA DEL SOFTWARE
- Análisis de Inventario: Los candidatos a la reingeniería aparecen cuando se ordena esta información en función de su importancia para el negocio, longevidad, mantenibilidad actual y otros criterios localmente importantes. Es entonces cuando es posible asignar recursos a las aplicaciones candidatas para el trabajo de reingeniería.
- Restructuración de documentos: Se utiliza un enfoque de “documentar cuando se toque”. El sistema es crucial para el negocio y debe volver a documentarse por completo incluso en este caso un enfoque inteligente es recortar la documentación a un mínimo esencial. Cada una de estas opciones es viable. Una organización de software debe elegir la más apropiada para cada caso.
- Ingeniería Inversa: En la mayoría de los casos, el programa del cual hay que hacer una ingeniería inversa no es el de un rival, sino, más bien, el propio trabajo de la compañía. Los “secretos” que hay que comprender resultan incomprensibles porque nunca se llegó a desarrollar una especificación. Consiguientemente, la ingeniería inversa del software es el proceso de análisis de un programa con el fin de crear una representación de programa con un nivel de abstracción más elevado que el código fuente.
- Restructuración de código: Llevar a cabo esta actividad requiere analizar el código fuente empleando una herramienta de restructuración, se indican las violaciones de las estructuras de programación estructurada, y entonces se re estructura el código (esto se puede hacer automáticamente). El código restructurado resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalías. Se actualiza la documentación interna del código.
- Restructuración de datos: La restructuración de datos es una actividad de reingeniería a gran escala. En la mayoría de los casos, la restructuración de datos comienza con una actividad de ingeniería inversa. La arquitectura de datos actual se analiza con minuciosidad y se define los modelos de datos necesarios, se identifican los objetivos de datos y los atributos, y después se revisa la calidad de las estructuras de datos existentes.
Cuando la estructura de datos es débil (por ejemplo, actualmente se implementan archivos planos, cuando un enfoque relacional simplificaría muchísimo el procesamiento), se aplica una reingeniería a los datos. - Ingeniería directa: En un mundo ideal, las aplicaciones se reconstruyen utilizando un “motor de reingeniería” automatizado. En el motor se insertaría el programa viejo, que lo analizaría, restructuraría y después regeneraría la forma de exhibir los mejores aspectos de la calidad del software.
REFERENCIAS
Ariel Vargas. (jueves, 9 de diciembre de 2010). Ingenieria del Software. 12 de marzo del 2017 , de Con la tecnología de Blogger. Sitio web: https://www.blogger.com/blogger.g?blogID=2721371569767035034&pli=1#editor/target=post;postID=4715231428378438049
Sin nombre. (28 abril, 2011). Reingeniería de la Ingeniería del Software. 12 de marzo del 2017, de WordPress.com Sitio web: https://isoftwareunesum.wordpress.com
Ana Toro. (26 de abr. de 2012). Ingeniería Inversa y Reingeniería. 12 de marzo del 2017, de SlideShare Sitio web: https://es.slideshare.net/moimedinaq/ingeniera-inversa-y-reingeniera-de-software?next_slideshow=1
No hay comentarios.:
Publicar un comentario