Qué es Reingeniería del Software

download Qué es Reingeniería del Software

of 4

Transcript of Qué es Reingeniería del Software

  • 8/6/2019 Qu es Reingeniera del Software

    1/4

    Qu es Reingeniera del Software?

    Reingeniera del software se puede definir como: modificacin de un producto software, ode 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 vuelvainestable 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 cambiose 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 lamisma.

    Entre los beneficios de aplicar reingeniera a un producto existente se puede incluir:

    y Pueden reducir los riegos evolutivos de una organizacin.y Puede ayudar a las organizaciones a recuperar sus inversiones en software.y Puede hacer el software ms fcilmente modificabley Ampla las capacidades de las herramientas CASEy Es un catalizador para la automatizacin del mantenimiento del softwarey 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:

    y anlisis de inventariosy reestructuracin de documentosy ingeniera inversay reestructuracin de programas y datosy 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.

  • 8/6/2019 Qu es Reingeniera del Software

    2/4

    Figure 1

    Figura 1. Pasos de la Reingeniera del Software

    Anlisis de Inventarios

    Todas las organizaciones de software deberan tener un inventario de todas susaplicaciones. 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 aplicacionescandidatas para el trabajo de reingeniera.

    Es importante sealar que el inventario deber visitarse con regularidad, el estado de lasaplicaciones puede cambiar en funcin del tiempo y, como resultado, cambiarn las

    prioridades para la reingeniera.

    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, siel sistema funciona vivir con lo que tenga. La documentacin debe actualizarse pero setiene 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 eneste 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 apropiadapara cada caso.

  • 8/6/2019 Qu es Reingeniera del Software

    3/4

    Ingeniera Inversa

    Este trmino tiene sus orgenes en el mundo del hardware. Una cierta compaadesensambla 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 laingeniera 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 ejemplosreales 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 propiotrabajo de la compaa. Los secretos que hay que comprender resultan incomprensibles

    porque nunca se lleg a desarrollar una especificacin. Consiguientemente, la ingenierainversa 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 arquitectnicoy de proceso, e informacin de los datos.

    Reestructuracin de cdigo

    El tipo ms comn de reingeniera es la reestructuracin de cdigo, se puede hacer conmdulos 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 herramientade reestructuracin, se indican las violaciones de las estructuras de programacin

    estructurada, y entonces se reestructura el cdigo (esto se puede hacer automticamente). Elcdigo 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

    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 dedatos 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 archivosplanos, cuando un enfoque relacional simplificara muchsimo el procesamiento), se aplica

    una reingeniera a los datos.

  • 8/6/2019 Qu es Reingeniera del Software

    4/4

    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 lugarinvariablemente a cambios o bien de arquitectura o bien de cdigo.

    Ingeniera directa

    En un mundo ideal, las aplicaciones se reconstruyen utilizando un motor de reingenieraautomatizado. 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 unsubconjunto 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 mssofisticadas.

    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 conla finalidad de mejorar su calidad global. En la mayora de los casos el software sometido areingeniera vuelve a implementar la funcin del sistema existente y tambin aade nuevas

    funciones o mejoras.