Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Reingeniera

DE SOFTWARE
Rafael Garca Maliga, Jose Manuel Luque Tarn, Antonio Morales Lpez | 1 DAW | October 4, 2012

Contenidos
Introduccin ..................................................................................................................................................2 Anlisis de Inventarios .................................................................................................................................. 3 Reestructuracin de documentos ............................................................................................................... 4 Ingeniera Inversa ......................................................................................................................................... 4 Reestructuracin de cdigo ......................................................................................................................... 4 Reestructuracin de datos ............................................................................................................................5 Ingeniera directa ..........................................................................................................................................5 Trminos ........................................................................................................................................................5 Referencias .....................................................................................................................................................5

PAGE 1

Introduccin
Reingeniera del software se puede definir como: modificacin de un producto software, o de ciertos componentes, usando para el anlisis del sistema existente tcnicas de Ingeniera Inversa y, para la etapa de reconstruccin, herramientas de Ingeniera Directa, de tal manera que se oriente este cambio hacia mayores niveles de facilidad en cuanto a mantenimiento, reutilizacin, comprensin o evaluacin. Cuando una aplicacin lleva siendo usada aos, es fcil que esta aplicacin se vuelva inestable como fruto de las mltiples 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 se hace necesario, si se prev que la aplicacin seguir siendo de utilidad, aplicar reingeniera a la misma. Entre los beneficios de aplicar reingeniera a un producto existente se puede incluir:

Pueden reducir los riegos evolutivos de una organizacin. Puede ayudar a las organizaciones a recuperar sus inversiones en software. Puede hacer el software ms fcilmente modificable Ampla las capacidades de las herramientas CASE Es un catalizador para la automatizacin del mantenimiento del software Puede actuar como catalizador para la aplicacin de tcnicas de inteligencia artificial para resolver problemas de reingeniera

La reingeniera del software involucra diferentes actividades como son:

anlisis de inventarios reestructuracin de documentos ingeniera inversa reestructuracin de programas y datos ingeniera directa con la finalidad de crear versiones de programas ya existentes que sean de mejor calidad y los mismos tengan una mayor facilidad de mantenimiento.

PAGE 2

Figura 1. Pasos de la Reingeniera del Software

Anlisis de Inventarios
Todas las organizaciones de software deberan tener un inventario de todas sus aplicaciones. El inventario tal vez no sea ms que un modelo en una hoja de clculo que contenga informacin que proporcione una descripcin detallada (tamao, edad, importancia para el negocio) de las aplicaciones activas. Los candidatos a la reingeniera aparecen cuando se ordena esta informacin en funcin 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 reingeniera. Es importante sealar que el inventario deber visitarse con regularidad, el estado de las aplicaciones puede cambiar en funcin del tiempo y, como resultado, cambiarn las prioridades para la reingeniera.

PAGE 3

Reestructuracin de documentos
La documentacin dbil es la marca de muchos sistemas heredados. Pero que se hace acerca de ellos? Cules son las opciones? Crear documentacin consume mucho tiempo, si el sistema funciona vivir con lo que tenga. La documentacin debe actualizarse pero se tiene recursos limitados. 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 documentacin a un mnimo esencial. Cada una de estas opciones es viable. Una organizacin de software debe elegir la ms apropiada para cada caso.

Ingeniera Inversa
Este trmino tiene sus orgenes en el mundo del hardware. Una cierta compaa desensambla un producto de hardware competitivo en un esfuerzo por comprender los secretos del diseo y fabricacin de su competidor. Estos secretos se podrn comprender ms fcilmente si se obtuvieran las especificaciones de diseo y fabricacin del mismo. Pero estos documentos son privados, y no estn disponibles para la compaa que efecta la ingeniera inversa. En esencia, una ingeniera inversa con xito precede de una o ms especificaciones de diseo y fabricacin para el producto, mediante el examen de ejemplos reales de ese producto. La ingeniera inversa del software es algo similar. En la mayora de los casos, el programa del cual hay que hacer una ingeniera inversa no es el de un rival, sino, ms bien, el propio trabajo de la compaa. Los secretos que hay que comprender resultan incomprensibles porque nunca se lleg a desarrollar una especificacin. Consiguientemente, la ingeniera inversa del software es el proceso de anlisis de un programa con el fin de crear una representacin de programa con un nivel de abstraccin ms elevado que el cdigo fuente. La Ingeniera inversa es un proceso de recuperacin de diseo. Con las herramientas de la ingeniera inversa se extraer del programa existente informacin del diseo arquitectnico y de proceso, e informacin de los datos.

Reestructuracin de cdigo
El tipo ms comn de reingeniera es la reestructuracin de cdigo, se puede hacer con mdulos individuales que se codifican de una manera que dificultan comprenderlos, probarlos y mantenerlos. Llevar a cabo esta actividad requiere analizar el cdigo fuente empleando una herramienta de reestructuracin, se indican las violaciones de las estructuras de programacin estructurada, y entonces se reestructura el cdigo (esto se puede hacer automticamente). El cdigo reestructurado resultante se revisa y se comprueba para asegurar que no se hayan introducido anomalas. Se actualiza la documentacin interna del cdigo.

PAGE 4

Reestructuracin de datos
La reestructuracin de datos es una actividad de reingeniera a gran escala. En la mayora de los casos, la reestructuracin de datos comienza con una actividad de ingeniera 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 despus se revisa la calidad de las estructuras de datos existentes. Cuando la estructura de datos es dbil (por ejemplo, actualmente se implementan archivos planos, cuando un enfoque relacional simplificara muchsimo el procesamiento), se aplica una reingeniera a los datos. Dado que la arquitectura de datos tiene una gran influencia sobre la arquitectura del programa, y tambin sobre los algoritmos que lo pueblan, los cambios en datos darn lugar invariablemente a cambios o bien de arquitectura o bien de cdigo.

Ingeniera directa
En un mundo ideal, las aplicaciones se reconstruyen utilizando un motor de reingeniera automatizado. En el motor se insertara el programa viejo, que lo analizara, reestructurara y despus regenerara la forma de exhibir los mejores aspectos de la calidad del software. Despus de un espacio de tiempo corto, es probable que llegue a aparecer este motor, pero los fabricantes de CASE han presentado herramientas que proporcionan un subconjunto limitado de estas capacidades y que se enfrentan con dominios de aplicaciones especficos. Lo que es ms importante, estas herramientas de reingeniera cada vez son ms sofisticadas. La ingeniera directa no solo recupera la informacin de diseo a partir del software existente, tambin utiliza esta informacin para alterar o reconstruir el sistema existente con la finalidad de mejorar su calidad global. En la mayora de los casos el software sometido a reingeniera vuelve a implementar la funcin del sistema existente y tambin aade nuevas funciones o mejoras.

Trminos
CASE: diversas aplicaciones informticas destinadas a aumentar la productividad en el desarrollo de software reduciendo el costo de las mismas en trminos de tiempo y de dinero.

Referencias
http://aurarivera4.blogspot.com.es/2010/12/modelo-de-procesos-de-reingenieria-del.html http://cnx.org/content/m17438/latest/

PAGE 5

You might also like