Vous êtes sur la page 1sur 3

Introduccin a la Reingeniera de Software La reingeniera debe ser entendida como un proceso mediante el cual se mejora un software existente haciendo

uso de tcnicas de ingeniera inversa y reestructuracin de cdigo. Para llevar a cabo la reingeniera del Software se puede realizar a travs del modelo Cclico. Este modelo define seis actividades las cuales se muestran en la figura de abajo. En algunas ocasiones, estas actividades se producen de forma secuencial y lineal, pero esto no siempre es as. Por ejemplo, puede ser que la ingeniera inversa (la comprensin del funcionamiento interno de un programa) tenga que producirse antes de que pueda comenzar la reestructuracin de documentos.

El paradigma de la reingeniera mostrado en la figura es un modelo cclico. Esto significa que cada una de las actividades presentadas como parte del paradigma pueden repetirse en otras ocasiones. Para un ciclo en particular, el proceso puede terminar despus de cualquier de estas actividades. Anlisis de inventario Todas las organizaciones de software debern disponer de un inventario de todas sus aplicaciones. El inventario puede que no sea ms que una hoja de clculo con la informacin que proporciona una descripcin detallada (por ejemplo: tamao, edad, importancia para el negocio) de todas 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 destacar que el inventario deber revisarse con regularidad. El estado de las aplicaciones (por ejemplo, la importancia con respecto al negocio) puede cambiar en funcin del tiempo y, como resultado, cambiarn tambin las prioridades para la reingeniera. Reestructuracin de documentos Una documentacin escasa es la marca de muchos sistemas de informacin heredados. Qu se puede hacer al respecto? Opcin 1: La creacin de documentacin consume muchsimo tiempo. El sistema funciona, y ya nos ajustaremos con lo que se tiene. En algunos casos, ste es el enfoque correcto. No es posible volver a crear la documentacin para cientos de programas de computadoras. Si un programa es relativamente esttico est llegando al final de vida til, y no es probable que experimente muchos cambios. Opcin 2: Es preciso actualizar la documentacin, pero se dispone de recursos limitados. Se utilizar un enfoque del tipo documentar si se modifica. Quiz no es necesario volver a documentar por completo la

aplicacin. Ms bien se documentarn por completo aquellas partes del sistema que estn experimentando cambios en ese momento. La coleccin de documentos til y relevante ir evolucionando con el tiempo. Opcin 3: El sistema es fundamental para el negocio, y es preciso volver a documentarlo por completo. En este caso, un enfoque inteligente consiste en reducir la documentacin al mnimo necesario.

Todas y cada una de estas opciones son viables. Las organizaciones del software debern seleccionar aquella que resulte ms adecuada para cada caso. Ingeniera inversa El trmino ingeniera inversa 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 bastante similar. Sin embargo, 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 (con frecuencia efectuado hace muchos aos). 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 se extraer del programa existente informacin del diseo arquitectnico y de proceso, e informacin de los datos. Reestructuracin del cdigo El tipo ms comn de reingeniera es la reestructuracin del cdigo. Algunos sistemas heredados tienen una arquitectura de programa relativamente slida, pero los mdulos individuales han sido codificados de una forma que hace difcil comprenderlos, comprobarlos y mantenerlos. En estos casos, se puede reestructurar el cdigo ubicado dentro de los mdulos sospechosos. Para llevar a cabo esta actividad, se analiza el cdigo fuente mediante 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. Reestructuracin de datos Un programa que posea una estructura de datos dbil ser difcil de adaptar y de mejorar. De hecho, para muchas aplicaciones, la arquitectura de datos tiene ms que ver con la viabilidad a largo plazo del programa que el propio cdigo fuente. A diferencia de la reestructuracin de cdigo, que se produce en un nivel relativamente bajo de abstraccin, la estructuracin de datos es una actividad de reingeniera a gran escala. En la mayora de los casos, la reestructuracin de datos comienza por una actividad de ingeniera inversa. La arquitectura de datos actual se analiza minuciosamente y se definen los modelos de datos necesarios. Se identifican los objetos de datos y atributos y, a continuacin, se revisan las estructuras de datos a efectos de calidad. 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 los 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 (por ejemplo, aplicaciones que han sido implementadas empleando un sistema de bases de datos especfico). Lo que es ms importante, estas herramientas de reingeniera cada vez son ms sofisticadas. La ingeniera directa, que se denomina tambin renovacin o reclamacin, no solamente recupera la informacin de diseo de un software ya existente, sino que, adems, utiliza esta informacin en un esfuerzo por mejorar su calidad global. En la mayora de los casos, el software procedente de una reingeniera vuelve a implementar la funcionalidad del sistema existente, y aade adems nuevas funciones y/o mejora el rendimiento global.

METODOLOGA RPIDA DE REINGENIERIA La metodologa Rpida Re se compone de varias tcnicas administrativas actualmente familiares, como: lluvia de ideas, anlisis de procesos, medidas de desempeo, identificacin de oportunidades, etc. La metodologa se basa en 5 etapas que permiten resultados rpidos y sustantivos efectuando cambios radicales en los procesos estratgicos de valor agregado. La metodologa se dise para que la utilicen equipos de reingeniera en organizaciones de negocios sin tener que basarse de expertos de fuera. Etapa 1 Preparacin Definir las metas y los objetivos estratgicos que justifiquen la reingeniera y los vnculos entre los resultados de la reingeniera y los resultados de la organizacin. Etapa 2 Identificacin El propsito de esta etapa es el desarrollo de un modelo orientado al cliente, identifica procesos especficos y que agregan valor. Aqu se incluye la definicin de clientes, procesos, rendimiento, xito, recursos, etc. Adems requiere un conocimiento profundo de toda la empresa y sus procesos. Etapa 3 Visin El propsito de esta etapa es desarrollar una visin del proceso capaz de producir un avance decisivo en rendimiento. La visin del nuevo proceso debe ser comprensible para todo el personal, describir las caractersticas primarias del proceso, debe ser motivadora e inspiradora Etapa 4 Solucin En esta etapa se produce un diseo tcnico y un diseo cultural-organizacional de la empresa. La etapa de diseo tcnico busca realizar la visin (Etapa 3), especificando las dimensiones tcnicas del nuevo proceso El diseo social necesariamente debe ser realizado al mismo tiempo que el tcnico, pues para que un proceso sea eficaz, estos diseos deben ser congruentes. Etapa 5 Transformacin El propsito de esta etapa es realizar la visin del proceso implementando el diseo de la etapa 4.