jueves, 29 de noviembre de 2012

REINGENIERIA

¿Que es Reingeniería?

Se define como la modificación de un producto software o de ciertos componentes usando para el análisis del sistema existente tecnicas 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, reutilizacion o evolucion

Beneficios:


  • Reducir riesgos evolutivos de una organización
  • Software facilmente modificable
  • Amplia las capacidades de las herramientas CASE


Actividades de la Ingeniería 


Análisis de inventario:

El inventario se ordena por en función de la importancia del software para el negocio, mantenibilidad actual y otros criterios lógicamente importantes. Este inventario necesita ser constantemente visitado, ya que el estado de las aplicaciones pueden cambiar conforme tiempo y como resultado cambiara las prioridades de la reingenieria 


Reestructuracion 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 mas apropiada para cada caso.

Ingeniería inversa

La ingeniería inversa de un software es el proceso de análisis de un programa con el fin de crear una representacion de programa con un nivel de abstracción mas elevado que el código fuente. La ingeniería inversa es un proceso de recuperación de diseño. Con las herramientas de ingeniería inversa se extraerá del programa existente información del diseño arquitectónico y de proceso, e información de los datos.

Reestructuracion de código

El tipo mas común de reingenieria es la reestructuracion de código, se puede hacer con módulos individuales que se codifican de una manera que dificultan comprenderlos, probarlos y mantenerlos. El código estructurado resultante se revisa y se comprueba para asegurar que no hayan introducido anomalías. Se actualiza la documentacion interna del código.

Reestructuracion de datos

ES una actividad de reingeniera a gran escala; esta comienza con una actividad de ingeniería inversa.
Cuando la estructura de datos es débil (por ejemplo, actualmente se implementan archivos planos, cuando un enfoque relacional simplificaria muchisimo el procesamiento), se aplica una reingenieria de los datos. Dado que la arquitectura de los datos tiene una gran influencia sobre la arquitectura del programa, y también sobre los algoritmos que lo pueblan, los cambios en  datos darán lugar invariablemente a cambios o bien de arquitectura o bien de código.

Ingeniería directa 

Esta no solo recupera la información de diseño a partir del software existente, también utiliza esta información para alterar o reconstruir el sistema existente con la finalidad de mejorar su calidad global. En la mayoría de los casos el software sometido a reingenieria vuelve a implementar la función del sistema existente y también añade nuevas funciones o mejoras.




No hay comentarios:

Publicar un comentario