Reing Soft

Embed Size (px)

Citation preview

  • 8/18/2019 Reing Soft

    1/55

    Reingeniería de Software

    Reingeniería de Software es una forma de modernización para mejorar lascapacidades y/o mantenibilidad de los sistemas de información heredadosmediante la aplicación de tecnologías y prácticas modernas. El procesoaplica principios de ingeniería para un sistema eistente para encontrarnue!os re"uerimientos.

    #ara Roger #ressman una de$nición completa de reingeniería implica%

    &'a reingeniería del software abarca una serie de acti!idades entre las "uese incluye el análisis de in!entario( la reestructuración de documentos( laingeniería in!ersa( la reestructuración de programas y datos( y la ingenieríadirecta. El objeti!o de esas acti!idades consiste en crear !ersiones de losprogramas eistentes "ue muestren una mayor calidad( y una mejormantenibilidad.)

    'os objeti!os de la Reingeniería de Software son%

    #roporcionar asistencia automatizada para el mantenimiento.

    Reducir los errores y costos del mantenimiento.

    *ncrementar la intercambiabilidad del grupo de mantenimiento.

    +acer sistemas fáciles de entender( cambiar y probar.

    +abilitar la con!ersión y migración de sistemas.

    Reforzar el apego a estándares.

    ,ejorar la respuesta a peticiones de mantenimiento.

    ,ejorar el estado de ánimo del grupo de mantenimiento.

    #roteger y etender la !ida del sistema.

    Re-usar componentes de sistema eistentes.

    entajas y es!entajas+acer reingeniería de un sistema software( seg0n *an Sommer!ille( tiene dos!entajas

    cla!e sobre aproimaciones más radicales a la e!olución del sistema%

  • 8/18/2019 Reing Soft

    2/55

    Riesgo reducido. Eiste un alto riesgo en !ol!er a desarrollar software críticopara los negocios. #ueden cometerse errores en la especi$cación( o puedehaber problemas en el desarrollo. 'os retrasos en la introducción del nue!osoftware pueden signi$car p1rdidas en el negocio e incurrir en costesadicionales.

    2oste reducido. El coste de hacer reingeniería es signi$cati!amente menor"ue el coste de desarrollar nue!o software.

    'a principal des!entaja de la reingeniería del software es "ue eisten límitesprácticos a la

    Etensión del sistema "ue puede ser mejorada mediante reingeniería.

    E' ,3E'3 242'*23

    Este modelo de$ne 5#ressman6 seis acti!idades las cuales se muestran en la$gura. En algunas ocasiones( estas acti!idades se producen de formasecuencial y lineal( pero esto no siempre es así.

    7nálisis de in!entario.

     8odas las organizaciones de software deberán disponer de un in!entario detodas sus aplicaciones. El in!entario puede "ue no sea más "ue una hoja decalculo con la información "ue proporciona una descripción detallada 9porejemplo% tama:o( edad( importancia para el negocio; de todas lasaplicaciones acti!as.

    'os candidatos a la reingeniería aparecen cuando se ordena esta informaciónen función de su importancia para el negocio( longe!idad( mantenibilidadactual y otros criterios localmente importantes. Es entonces cuando esposible asignar recursos a las aplicaciones candidatas para el trabajo dereingeniería.

    Reestructuración de documentos.

    'a documentación d1bil es la marca de muchos sistemas heredados.

  • 8/18/2019 Reing Soft

    3/55

    negocio y debe !ol!er a documentarse por completo incluso en este caso unenfo"ue inteligente es recortar la documentación a un mínimo esencial. 2adauna de estas opciones es !iable. >na organización de software debe elegir lamás apropiada para cada caso.

    *ngeniería in!ersa

    El t1rmino &ingeniería in!ersa) tiene sus orígines en el mundo del hardware.>na cierta compa:ía desensambla un producto de hardware competiti!o enun esfuerzo por comprender los &secretos) del dise:o y fabricación de sucompetidor. Estos secretos se podrán comprender más fácilmente si seobtu!ieran las especi$caciones de dise:o y fabricación del mismo. #ero estosdocumentos son pri!ados( y no están disponibles para la compa:ía "ueefect0a la ingeniería in!ersa.

    El t1rmino &ingeniería in!ersa) tiene sus orígines en el mundo del hardware.>na cierta compa:ía desensambla un producto de hardware competiti!o enun esfuerzo por comprender los &secretos) del dise:o y fabricación de sucompetidor. Estos secretos se podrán comprender más fácilmente si seobtu!ieran las especi$caciones de dise:o y fabricación del mismo. #ero estosdocumentos son pri!ados( y no están disponibles para la compa:ía "ueefect0a la ingeniería in!ersa.

    'a ingeniería in!ersa del software es algo bastante similar. Sin embargo( en lamayoría de los casos( el programa del cual hay "ue hacer una ingenieríain!ersa no es el de un ri!al( sino( más bien( el propio trabajo de la compa:ía9con frecuencia efectuado hace muchos a:os;. 'os &secretos) "ue hay "ue

    comprender resultan incomprensibles por"ue nunca se llegó a desarrollar unaespeci$cación.

    Reestructuración del código.

    #ara lle!ar a cabo esta acti!idad( se analiza el código fuente mediante unaherramienta

    de reestructuración( se indican las !iolaciones de las estructuras deprogramación

    estructurada( y entonces se reestructura el código 9esto se puede hacerautomáticamente;. El

    código reestructurado resultante se re!isa y se comprueba para asegurar"ue no se hayan

  • 8/18/2019 Reing Soft

    4/55

    introducido anomalías. Se actualiza la documentación interna del código.

    Reestructuración de datos.

    7 diferencia de la reestructuración de código( "ue se produce en un ni!elrelati!amente

    bajo de abstracción( la estructuración de datos es una acti!idad dereingeniería a gran escala. En la mayoria de los casos( la reestructuración dedatos comienza por una acti!idad de ingeniería in!ersa. 'a ar"uitectura dedatos actual se analiza minuciosamente y se

    de$nen los modelos de datos necesarios.

    *ngeniería directa 9foward engineering;.'a ingeniería directa( "ue se denomina tambi1n reno!ación o reclamación( nosolamente recupera la información de dise:o de un software ya eistente(sino "ue( además( utiliza esta información en un esfuerzo por mejorar sucalidad global. En la mayoría de los casos( el software procedente de unareingeniería !uel!e a implementar la funcionalidad del sistema eistente( ya:ade además nue!as funciones y/o mejora el rendimiento global.

    INTRODUCCIÓN

    'a e!olución del software esta di!idida en !arias etapas( una de ellas es lallamada ?crisis del software?. Esta crisis fue el resultado de la introducción de latercera generación del hardware. El hardware dejo de ser un impedimento parael desarrollo de la informática@ redujo los costos y mejoro la calidad y e$cienciaen el software producido. 'a crisis se caracterizo por los siguientes problemas%

    A *mprecisión en la plani$cación del proyecto y estimación de los costos.

    A Baja calidad del software.

    A i$cultad de mantenimiento de programas con un dise:o pocoestructurado( etc.

    7 raíz de esta crisis se !io la necesidad de crear estándares de desarrollo delsoftware( esto dio lugar a lo "ue hoy llamamos ?*ngeniería de software? el cual esel establecimiento y uso de principios de la ingeniería a $n de obtenereconómicamente software "ue sea $able y "ue funcione e$cientemente.

    7 pesar de la creación de estos estándares( muchos sistemas siguieron siendo

  • 8/18/2019 Reing Soft

    5/55

    desarrollados y mantenidos sin aplicar ninguna practica de ingeniería de softwarepor lo "ue hoy en día( muchas organizaciones se !en obligadas a seguir !i!iendoen esta crisis dado "ue sus sistemas son !itales para el funcionamiento de dichasorganizaciones.

    'a reingeniería de software es la acti!idad con el cual se pretende dar solución aestas organizaciones. 'a reingeniería de software pretende dejar morir esossistemas imposibles de mantener( no sin antes etraer de ellos conocimientos"ue permitan crear un nue!o sistema $able( e$ciente y de fácil mantenimiento.

    ado "ue en muchos de los casos( la reingeniería de software se con!ierte en la0nica solución a estos sistemas de baja calidad( esta monografía pretenden daruna bre!e introducción a dicha solución para mostrarle al lector "ue a pesar de"ue el esfuerzo de aplicar reingeniería es un proceso difícil( trae grandesbene$cios si se emplea de manera adecuada.

    Capítulo 1: Reingeniería de procesos

    Esta primera parte de la monografía proporciona una bre!e !isión general de lo"ue es reingeniería desde un punto de !ista administrati!o. Se comienza pornarrar el primer caso de reingeniería de procesos( el cual se aplicó en el procesode disparar proyectiles por parte de la ,arina de los Estados >nidos. En elsubtema C se da y eplica la de$nición de reingeniería de procesos y se hacemención a la esencia de la reingeniería. #or 0ltimo( este 2apítulo hace unacomparación de la reingeniería contra los programas de mejora incremental.

    Capítulo 2: Sistemas de informacin !eredados " reingeniería desoft#are

     Da "ue se de$nió el concepto de reingeniería desde el ámbito administrati!o enel 2apítulo anterior( se podrá abordar el tema de reingeniería de software. Eneste 2apítulo se detalla las características de los sistemas de informaciónheredados( "ue son a"uellos a los "ue es necesario aplicarles reingeniería paradespu1s abordar por completo el concepto de reingeniería de software y susobjeti!os. 8ambi1n se menciona la importancia de aplicar reingeniería desoftware en los sistemas de información heredados. 7ntes de $nalizar este2apítulo( se eplica el modelo "ue propone Sneed para calcular los costes de unproyecto de reingeniería.

    Capítulo $: %&todos " modelos de la reingeniería de soft#are

    Este 2apítulo eplica de una forma muy bre!e los m1todos y modelos "ue sonutilizados para lle!ar a cabo de manera satisfactoria la acti!idad de reingeniería.7l comienzo del 2apítulo se alude al m1todo de análisis de opciones parareingeniería 937R por sus siglas en ingles de 3ptions 7nalysis for Reingeneering?dando su de$nición y eplicando la necesidad de aplicarlo( se menciona de formabre!e las acti!idades principales y especializadas de este m1todo así como la

  • 8/18/2019 Reing Soft

    6/55

    estructura de ellas. En los siguientes dos subtemas se trata a dos modelosutilizados para la reingeniería% El modelo herradura y el modelo cíclico(eplicando bre!emente los ni!eles o acti!idades de cada uno.

    Capítulo ': Reconstruccin de la ar(uitectura

    El 0ltimo 2apítulo de esta monografía trata el tema de reconstrucción de laar"uitectura de un sistema candidato al proceso de reingeniería. 'areconstrucción de la ar"uitectura es una de las principales acti!idades "ue sedeben realizar al iniciar un proyecto de reingeniería ya "ue esta nos permiteentender al programa "ue sufrirá la transformación mediante la creación deabstractas del sistema. En el primer subtema se intenta de$nir cual es el rol de lareconstrucción de la ar"uitectura en el proceso de reingeniería para despu1smencionar algunas recomendaciones para un proyecto de reconstrucción de laar"uitectura. Este 2apítulo $naliza eplicando a detalle las fases "ue conformanla acti!idad de reconstrucción de la ar"uitectura dando en algunos casos(

    ejemplos "ue ayuden a entender dichas fases.

    C)*+TU,O 1

    R-IN.-NI-RI) D- *ROC-SOS

    #ara poder hablar de la reingeniería de software( es necesario conocer el origende esta acti!idad( el cual se dio en el ámbito de la administración. En estecapítulo se aborda el concepto de reingeniería desde un punto de !istaadministrati!o( ya "ue fue en este enfo"ue donde la reingeniería hace suaparición. En el primer subtema de este capítulo se narra el primer caso dereingeniería de procesos( el cual se aplicó en el proceso de disparar proyectiles

    por parte de la ,arina de los Estados >nidos. En el subtema C se da y eplica lade$nición de reingeniería de procesos y se hace mención a la esencia de lareingeniería. #or 0ltimo( este capítulo hace una comparación de la reingenieríacontra los programas de mejora incremental.

    1/1 *RINCI*IOS D- ,) R-IN.-NI-R+)

    #ara eplicar el origen de la reingeniería de procesos es necesario retroceder ala:o FGF durante la guerra de los Estados >nidos con Espa:a. urante estaguerra( la ,arina de los Estados >nidos disparó un total de GHII proyectiles( delos cuales sólo C 9.JK; hicieron impacto sobre el objeti!o. urante este a:o(

    ese porcentaje representaba la máima e$ciencia mundial aun"ue en tiemposactuales ese porcentaje sería desastroso.

    En FGG( haciendo una nue!a demostración del liderazgo "ue entonces ejercíaen ca:oneo na!al de precisión( la ,arina de los Estados >nidos realizó unaehibición de práctica de tiro para referenciar su rendimiento. En un total de!einticinco minutos de fuego contra un blanco "ue era un bu"ue situado a unadistancia aproimada de una milla 9.L Mm.;( se registraron eactamente dos

  • 8/18/2019 Reing Soft

    7/55

    impactos( y 1stos en las !elas del bu"ue "ue ser!ía de blanco.

    #ero en GIC( las ,arina de los Estados >nidos podía dar en un blanco parecidocuantas !eces disparará un ca:ón@ la mitad de las balas podían hacer impactodentro de un cuadrado de HI pulgadas por lado 9.N m;. Este espectacular

    rendimiento fue logrado gracias a un o$cial de artillería na!al llamado OilliamSonden Sims( el cual se puede decir "ue fue el primero en utilizar el proceso "uehoy llamamos reingeniería. 5,ang GH6

    +ace un siglo( apuntar un ca:ón hacia un blanco en alta mar era una acti!idadmuy aleatoria. El ca:ón( el blanco y los mares "ue los rodeaban se hallaban enmo!imiento continuo. 'os h1roes tradicionales de los combates na!ales eran losna!egantes "ue maniobraban para colocar el bu"ue en una u otra posición y dara los cabos de ca:ón la oportunidad de cumplir su difícil tarea. #ero en unasmaniobras "ue se hicieron en el ,ar de la 2hina( Sims obser!ó los a!ancesdecisi!os "ue los artilleros ingleses habían empezado a lograr en la manera de

    apuntar y disparar.

    'os elementos del proceso para la artillería na!al eran bastante sencillos hace unsiglo% un ca:ón( una mani!ela para le!antarlo al ángulo de la trayectoria deseadapara un alcance normal de una milla( y un anteojo de larga !ista montado sobreel ca:ón mismo a $n de mantener el blanco en la mira hasta un instante despu1sdel disparo y el retroceso de la pieza. Sims descubrió una manera muy sencillade mejorar espectacularmente la puntería compensando la ele!ación y el tiempodel balanceo del barco.

    'o primero "ue sugirió fue reglamentar la relación de los engranajes de tal

    manera "ue el artillero pudiera ele!ar o bajar fácilmente el ca:ón siguiendo elblanco en los balanceos del bu"ue. En segundo lugar propuso cambiar de sitio lamira del ca:ón para "ue el artillero no fuera afectado por el retroceso al disparar.Esta inno!ación le permitiría conser!ar el blanco en la mira durante todo el actodel disparo. El resultado sería fuego de puntería continua.

    Basándose en los cálculos "ue hizo en sus notas( Sims predijo "ue susmodi$caciones al proceso tenían el potencial de aumentar la precisión de tiro enmás del JIII por ciento( sin costos adicionales( sin usar tecnología adicional( ysin necesidad de aumentar el personal de maniobra. 'os consiguientes a!ancesdecisi!os en producti!idad fueron enormes( Py llegaron al JIII por ciento "ue

    había predicho SimsQ

    espu1s de haber re!isado el primer caso de reingeniería podríamos dar una!aga idea sobre el proceso llamado Reingeniería@ el cual tiene como resultado uncambio radical en los procesos obsoletos para obtener un mejorapro!echamiento y rendimiento de la producti!idad. Este es considerado como elprimer caso documentado en el "ue se aplica reingeniería ya "ue cumple con lade$nición "ue se da en el siguiente tema( el cual a grandes rasgos( es realizar un

  • 8/18/2019 Reing Soft

    8/55

    cambio radical a todo un proceso para lograr la producti!idad de unaorganización.

    1/2 R-IN.-NI-R+) D- *ROC-SOS

    >na de$nición de Reingeniería basada en 5,ang GH6 y 5+amm G6 sería% es la

    acti!idad en el "ue los procesos son objeto de una re!isión fundamental yredise:o radical( para lograr así la optimización de los ujos del trabajo y laproducti!idad de una organización.

    #ara poder analizar esta de$nición es necesario tambi1n de$nir lo "ue es unproceso. ?e$nimos un proceso de negocios como un conjunto de acti!idades"ue recibe uno o más insumos y crea un producto de !alor para el cliente.?5+amm G6

    Se dice "ue durante una reingeniería( los procesos son objeto de una re!isiónfundamental ya "ue es necesario realizarse las preguntas básicas sobre su

    compa:ía y como funciona sin dar nada por sentado. 'a reingeniería determinaprimero qué debe hacer una compa:ía para despu1s determinar cómo debehacerlo. Se ol!ida por completo de lo "ue es y se concentra en lo "ue debe ser.

    'a re!isión fundamental de un proceso nos permitirá aplicarle un redise:o radicallo cual no es simplemente realizar cambios super$ciales o correcciones a lo "ueya esta instalado. Se trata de desechar por completo los !iejos procedimientos ein!entar nue!as formas de realizar el trabajo. Redise:ar es rein!entar el negocio(no mejorarlo o modi$carlo.

    7l aplicar la reingeniería a un proceso lograremos optimizar los ujos de trabajo y

    la producti!idad dando resultados "ue deben ser notables y hasta sorprendentes(esto debido a "ue el programa de reingeniería es difícil y nunca se conseguirá unapoyo ejecuti!o sin promesas de resultados más "ue simplementeincrementales.

    ,a -sencia de la Reingeniería

    ?En el corazón de la reingeniería esta la noción del pensamiento discontinuo = dereconocer y romper desde afuera las !iejas reglas y suposiciones con respecto alas operaciones. >na !ez "ue cambiemos las reglas( nosotros simplementereacomodaremos las sillas en el 8itanic.? 5+amm GI6

     8odos los negocios están llenos de reglas "ue se tienen desde las primerasd1cadas. Esas reglas de dise:o de trabajo están basadas en !ejas suposicionesacerca de los objeti!os de la tecnología( gente y organizaciones. El repertorioactual de información tecnológica disponible es grande y se distribuyerápidamente. 2alidad( inno!ación y ser!icios son más importantes "ue el costo(crecimiento y control.

    #ara las empresas deberá ser una sorpresa "ue sus procesos de negocios y

  • 8/18/2019 Reing Soft

    9/55

    estructuras están fuera de moda y obsoletos% las estructuras de trabajo yprocesos no tienen lugar con los cambios en tecnología( demografía y objeti!osde negocios.

    En reingeniería( los administradores rompen con los procesos pasados de moda y

    principios fundamentales de dise:o y crean nue!os@ para ello( la reingenieríare"uiere de la obser!ación de los procesos fundamentales de los negocios desdeuna perspecti!a funcional para formar un e"uipo "ue represente las unidadesfuncionales in!olucrados en el proceso "ue sufrirá reingeniería y todos lasunidades "ue dependen de 1l.

    El e"uipo deber analizar y encuestar los procesos eistentes hasta "ue realmenteentiendan "ue los procesos están tratando de terminar. En lugar de "ue el e"uipobus"ue oportunidades de mejorar el proceso( deberá determinar cuales de esospasos realmente agregan !alor y buscar nue!as formas de registrar losresultados.

    1/$ ,) R-IN.-NI-R+) 0S ,OS *RO.R)%)S D- %-OR) INCR-%-NT),

    2omo ya hemos !isto( la reingeniería consiste en un cambio radical y si hay algo"ue las empresas "uieren e!itar es el cambio radical. 'a mejora continuaincremental = en contraposición a la Reingeniería de #rocesos = está más deacuerdo con la manera como las organizaciones se entienden naturalmente conel cambio. 'a mejora continua hace hincapi1 en cambios pe"ue:os(incrementales@ el objeto es mejorar lo "ue una organización ya está haciendo.

    Estos cambios incrementales para mejorar el rendimiento de los negociosre!isten formas distintas( por ejemplo( calidad( automatización( reorganización(

    reducción o recti$cación del tama:o. #ero

  • 8/18/2019 Reing Soft

    10/55

    A To sólo calidad( a0n cuando casi siempre se enfoca en la satisfacción delcliente y en los procesos "ue la apoyan.

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    'a Reingeniería de #rocesos es un enfo"ue e"uilibrado "ue puede contener

    elementos de los programas más tradicionales de mejoramiento con los cuales a!eces se confunde. #ero la Reingeniería de #rocesos es mucho más.

    En primer lugar( la Reingeniería de #rocesos busca a!ances decisi!os en medidasimportantes del rendimiento( más "ue mejoras incrementales. En segundo lugar(busca metas multifac1ticos de mejoramiento( incluyendo calidad( costos(eibilidad( rapidez( precisión y satisfacción de los clientes( todosimultáneamente( mientras "ue los demás programas se concentran en unaspocas metas o relaciones entre ellas.

    #ara lograr estos resultados( la reingeniería de procesos adopta una perspecti!a

    de procesos sobre los negocios( mientras "ue otros programas conser!an unaperspecti!a funcional u organizacional. 'a gestión de calidad total si eamina losprocesos( pero para mejorarlos incrementalmente( no para redise:arlos.

     8ambi1n comprende la !oluntad de pensar cómo debe hacerse el trabajo( y hastade descartar totalmente las prácticas corrientes si se !e "ue es necesario.Uinalmente( la reingeniería de procesos adopta para la mejora de los negocios unenfo"ue integral "ue abarca tanto los aspectos t1cnicos de los procesos9tecnología( normas( procedimientos( sistemas y controles; como los aspectossociales 9organización( dotación de personal( políticas( cargos( planes de carrerase incenti!os;. En otras palabras, la reingeniería de procesos multiplica el poder

    de la tecnología y faculta a las personas.

    C)*+TU,O 2

    SIST-%)S D- INOR%)CIÓN 3-R-D)DOS 4 R-IN.-NI-RI) D- SOT5)R-

     Da "ue se de$nió el concepto de reingeniería desde el ámbito administrati!o enel 2apítulo anterior( se podrá abordar el tema de reingeniería de software. En elsubtema C. se detalla las características de los sistemas de informaciónheredados( "ue son a"uellos a los "ue es necesario aplicarles reingeniería. En elsegundo subtema se emprende por completo el concepto de reingeniería desoftware y sus objeti!os. En el siguiente subtema se menciona la importancia deaplicar reingeniería de software en los sistemas de información heredados. 7l$nal de este 2apítulo( se eplica el modelo "ue propone Sneed para calcular loscostes de un proyecto de reingeniería.

    2/1 SIST-%)S D- INOR%)CIÓN 3-R-D)DOS

    'os sistemas de información heredados generalmente son la columna !ertebraldel ujo de información de las empresas y la principal forma de agruparla.

  • 8/18/2019 Reing Soft

    11/55

    >n Sistema de Información Heredado 9'*S por sus siglas en ingles 'egacy*nformation System; puede ser de$nido como ?cual"uier sistema de información"ue signi$cati!amente se resiste a la modi$cación y e!olución? 5Brod G6. 8ales'*Ss pueden causar serios problemas a la organización%

    A 'os '*Ss casi siempre son ejecutados sobre hardware obsoleto "ue sonlentos y caros de mantener.

    A El mantenimiento del software puede ser caro( por"ue carecen de ladocumentación necesaria para el entendimiento de los detalles delsistema y su seguimiento es costoso y consume mucho tiempo.

    A >na falta de interfaces limpias hace "ue la integración de los '*Ss conotros sistemas sea difícil.

    A 'os '*Ss son tambi1n difíciles mas no imposibles ampliarlos.

    'a solución a estos problemas seg0n Oeiderman 5Oeid GN6 caen en las siguientescategorías%

    A %antenimiento% es un proceso incremental e iterati!o en el cual sehacen pe"ue:as modi$caciones al sistema.

    A %oderni6acin% implica cambios más etensos "ue el mantenimientopero conser!a partes considerables del sistema eistente.

    A Rempla6arlo% el cual consiste en reconstruir desde los inicios al sistema.Esta solución consiste en aplicarle al sistema acti!idades de Reingeniería.

    2/2 R-IN.-NI-R+) D- SOT5)R-

    Reingeniería de Software es una forma de modernización para mejorar lascapacidades y/o mantenibilidad de los sistemas de información heredadosmediante la aplicación de tecnologías y practicas modernas. 'a Reingeniería deSoftware ofrece una disciplina de preparación para migrar un sistema deinformación heredado hacia un sistema e!olucionable. El proceso aplicaprincipios de ingeniería para un sistema eistente para encontrar nue!osre"uerimientos.

    ?El *nstituto de *ngeniería de software 9SE*; desarrollo una de$nición de

    Reingeniería como% Reingeniería es la transformación sistemática de un sistemaeistente dentro de una nue!a forma de realizar mejoramientos de calidad enunas operaciones( capacidad del sistema( funcionabilidad( rendimiento oe!olucionabilidad a bajo costo( agendas o riesgos para el cliente.? 58ill GH6

    El propósito de la reingeniería es "ue los sistemas eistentes tomen !entajas delas nue!as tecnologías y habilitar el nue!o esfuerzo de desarrollo para "ueapro!eche las !entajas de reutilizar sistemas eistentes. 'a reingeniería tiene el

  • 8/18/2019 Reing Soft

    12/55

    potencial de mejorar la producti!idad y calidad del software a tra!1s de todo elciclo de !ida.

    'a reingeniería casi siempre implica cambiar la forma de un programa y mejorarsu documentación. En este caso( la funcionabilidad del programa no es

    cambiada@ sólo su forma es modi$cada. En otros casos( la reingeniería !a másallá de la forma e incluye redise:ar para cambiar la funcionabilidad del programapara buscar mejores re"uerimientos de usuario.

    'os objeti!os de la reingeniería son% 5,c2l GC6

    A #roporcionar asistencia automatizada para el mantenimiento.

    A Reducir los errores y costos del mantenimiento.

    A *ncrementar la intercambiabilidad del grupo de mantenimiento.

    A +acer sistemas fáciles de entender( cambiar y probar.

    A +abilitar la con!ersión y migración de sistemas.

    A Reforzar el apego a estándares.

    A ,ejorar la respuesta a peticiones de mantenimiento.

    A ,ejorar el estado de ánimo del grupo de mantenimiento.

    A #roteger y etender la !ida del sistema.

    A >sar 27SE para apoyar sistemas eistentesA Re-usar componentes de sistema eistentes.

    'a reingeniería puede ayudar a entender sistemas eistentes y descubrir loscomponentes de software "ue son comunes en todo el sistema. Estoscomponentes comunes pueden ser re-usados en el desarrollo 9o redesarrollo; desistemas y así reducir el tiempo y riesgos del desarrollo de sistemas.

    'a reingeniería re"uiere tiempo@ implica un coste de dinero enorme y absorberecursos "ue de otro modo se podrían emplear en preocupaciones másinmediatas. #or todo esto( la reingeniería no se lle!a a cabo en unos pocos

    meses( ni si"uiera en unos pocos a:os. 'a reingeniería de sistemas deinformación es una acti!idad "ue absorberá recursos de las tecnologías de lainformación durante muchos a:os.

    2/$ ,) I%*ORT)NCI) D- )*,IC)R R-IN.-NI-R+) D- SOT5)R-

    ,as 0ie7as )plicaciones

    ,ucha gente al !er las grandes y !iejas mansiones "ueda asombrado de su

  • 8/18/2019 Reing Soft

    13/55

    belleza( pero no se preguntan "ue tan bien se puede !i!ir en ellas. 'as personas"ue lo hacen dicen "ue es una pesadilla mantenerlas. 8odas ellas fueronconstruidas con !iejas tecnología estándar. Sus paredes eternas no tienenaislamiento. El alambrado el1ctrico tiene limitaciones y claramente esinadecuada para las necesidades de energía de hoy y su cableado decadente

    crea un se!ero peligro el1ctrico.

    'os !iejos sistemas son muy similares a los grandes y !iejos edi$cios. Ellos tienenlos mismos problemas de mantenimiento( un hecho en gran parte irreconociblepor parte de la comunidad corporati!a. ,uchos de esos edi$cios son demolidospor "ue no son mantenibles y ya no sir!en para las necesidades de susocupantes.

    'as !iejas computadoras tal !ez se puedan !er solamente en museos. #ero enmuchos casos( software escrito para !iejos modelos de computadora estánejecutándose hoy en día. >n caso etremo es el de un software escrito para una

    *B, I 7utocoder. 2uando la compa:ía remplazó la I con una *B, JLI/I(compraron un emulador de la I para poder ejecutar el software. Esaaplicación hoy día corre en una #2 = la compa:ía compro otro emulador.

    'os clientes demandan "ue las nue!as capacidades sean agregadas al códigoescrito en sus !iejos sistemas. 2asi siempre( las empresas encuentran "ue nopueden modi$car su código = el programador "ue lo mantenía muriórecientemente o nadie sabe programar en el lenguaje en el "ue fue escrito. #or lo"ue la funcionalidad de ese programa "uedará así para siempre.

    'a siguiente lista son las razones por las "ue es aplicable la reingeniería a los

    sistemas de información heredados%

    A Urecuentes fallas de producción 9$abilidad cuestionable;.

    A #roblemas de rendimiento.

    A 8ecnología obsoleta.

    A #roblemas de integración del sistema.

    A 2ódigo de calida pobre.

    A i$cultad 9peligroso; al cambio.

    A i$cultad para probar.

    A ,antenimiento caro.

    A *ncremento de problemas del sistema.

    Estas razones pueden ser solucionadas al aplicar un proceso de mantenimiento

  • 8/18/2019 Reing Soft

    14/55

    de software( pero cuando dicho mantenimiento deja de ser !iable( entonces setoma la decisión de aplicar reingeniería.

    Nue8as Ideas9 Nue8o Soft#are

    7un"ue la reingeniería se usa principalmente durante el mantenimiento del

    software( !a mas allá de una simple ayuda para el mantenimiento. 'areingeniería es el puente desde !iejas tecnologías hacía nue!as tecnologías "uelas organizaciones deben usar en la actualidad para responder al cambio dere"uerimientos del negocio.

    'os !iejos programas representan la tecnología del ayer. 7hora sabemos "ue losa:os tienen cuatro dígitos y no dos( "ue los datos pueden ser manejados mejoren bases de datos y "ue tenemos nue!os dise:os de construcción y lenguajes deprogramación "ue permiten dise:ar programas notablemente mantenibles.

    2uando el costo de mantener !iejos edi$cios es altamente ecesi!o( se

    remplazan estos edi$cios. Tosotros deberíamos hacer lo mismo con losprogramas. 'os programas no se hacen obsoletos al paso del tiempo ya "uefueron escritos para hardware y sistemas operati!os "ue ya no eisten( muchosestán llenos de características y parches no documentados.

    Sólo cuando hayamos aprendido a "ue es mejor in!ertir en nue!o hardware ynue!os edi$cios podremos reconocer el !alor de remplazar los !iejos sistemasra"uíticos.

    2/' COST-S 4 -N-ICIOS D- ,) R-IN.-NI-R+)/

    7ntes de reconstruir un sistema en uso( es altamente recomendable analizar las

    di!ersas alternati!as disponibles%

    A ejar el producto como está.

    A 7d"uirir uno en el mercado "ue realice la misma función.

    A Reconstruirlo.

    E!identemente( elegiremos la opción "ue mejor relación coste/bene$cio nosofrezca. #ara calcular los costes de un proyecto de reingeniería( +arry Sneed5Snee GH6 propone un modelo basado en cuatro etapas%

    A Vusti$cación del proyecto de reingeniería.

    A 7nálisis de la cartera de aplicaciones.

    A Estimación de costes.

    A 7nálisis de costes / bene$cios.

    2/'/1 usti;cacin Del *ro"ecto De Reingeniería/

  • 8/18/2019 Reing Soft

    15/55

    #ara justi$car un proyecto de reingeniería se re"uiere de un análisis del softwareeistente( de los procesos de mantenimiento actuales y del !alor de negocio "uetienen las aplicaciones@ todo esto con el objeto de hacer una e!aluación enposibles aumentos de !alores sobre estos tres factores.

    'a mayoría de las organizaciones sólo toman en consideración los procesos dereingeniería cuando el coste de un nue!o desarrollo es demasiado alto. Encual"uier caso( y aun"ue a primera !ista parezca la 0nica o la mejor alternati!a(es necesario con$rmar la necesidad de reconstruir el sistema.

    Eisten cuatro operaciones "ue nos pueden dar una idea de los costes delproyecto y del !alor del software actual dentro del negocio%

    A *ntroducción de un sistema de e!aluación de los costes delmantenimiento. Es recomendable "ue esta tarea la lle!e a cabo laorganización anticipándose con su$ciente anticipación al momento en "ue

    se percibe la necesidad de aplicar reingeniería.

    A 7nálisis de la calidad del software actual( para lo cual pueden utilizarseauditores de código automáticos "ue proporcionan datos del tama:o(complejidad y m1tricas de calidad del código fuente. Estos !alores sonincorporados a una base de datos "ue es utilizada por otra herramientapara realizar comparaciones y obtener resultados.

    A 7nálisis de los costes de mantenimiento% Se proponen tres m1tricas paramedir los procesos de mantenimiento% ?ominio del impacto? o proporciónde instrucciones y elementos de datos afectados por una tarea de

    mantenimiento con respecto al total de instrucciones y elementos dedatos del sistema@ ?Esfuerzo empleado?( "ue es el n0mero de horasdedicadas a tareas de mantenimiento( con lo "ue se puede obtener unamedia del n0mero de horas por tarea de mantenimiento@ y ?8asa deerrores de segundo ni!el?( "ue es el n0mero de errores causados poracciones de mantenimiento. Si se obser!a "ue estas tres medidas seincrementan( es muy probable "ue los costes de mantenimiento seincrementen con el tiempo.

    A E!aluación del !alor de negocio del sistema actual( "ue es realizado por ladirección de la organización.

    2/'/2 )n

  • 8/18/2019 Reing Soft

    16/55

    ciclomática o errores/M'2( por ejemplo;.

    #ara cada !ariable "ue inter!iene en la calidad t1cnica e $jan unos límitesinferior y superior 9"ue representan los !alores máimos y mínimo de calidad;.#ara hallar el ni!el de calidad de la !ariable considerada se puede utilizar la

    siguiente formula%

     #or ejemplo( si establecemos los !alores mínimo y máimo de calidad en I y Nerrores por M'2( y actualmente hay J( 2i W I.HN.

    7sociando un punto de un plano para cada aplicación( e interpretando el !alor denegocio y la calidad t1cnica como coordenadas de estos puntos( se puederepresentar como en el diagrama de la siguiente $gura 5#iat II6%

    'as aplicaciones situadas en el cuadrante superior iz"uierdo tienen alta calidad ybajo !alor de negocio( por lo "ue no re"uieren reingeniería@ las situadas en elcuadrante inferior iz"uierdo tienen poco !alor en ambos parámetros( por lo "uepueden ser desarrolladas de nue!o o remplazadas por productos comerciales@ lasdel superior derecho tienen un gran !alor de negocio y alta calidad% se les puedeaplicar reingeniería( pero sin ecesi!a prioridad@ las del inferior derecho tienenalto !alor de negocio y baja calidad t1cnica( por lo "ue serán las primerascandidatas a la reingeniería.

    2/'/$ -stimacin De Costes/

    Se realiza identi$cando y ponderando( mediante m1tricas adecuadas( todos loscomponentes del software "ue se !an a modi$car.

    Se deben considerar los costes de cada proyecto de reingeniería% si 1stos sonsuperiores a los bene$cios( la reingeniería no será una alternati!a !iable y laaplicación deberá ser desarrollada de nue!o o bien ad"uirirse en el mercado.

    #ara estimar los costes de la reingeniería( se tienen ciertas !entajas respecto a lamisma estimación en proyectos de ingeniería directa% no se debe calcularfactores inuyentes como el n0mero de líneas de código( sentencias ejecutables(elementos de datos( accesos a archi!os( etc.( ya "ue son medidas "ue se pueden

    tomar directamente de la aplicación.Se aconseja utilizar como !ariables para calcular los costes las "ue se ofrecen acontinuación( y "ue deben ser debidamente ponderadas en función de suinuencia en el coste total%

    A T0mero de líneas de código no comentadas.

    A 2oste de los casos de prueba( "ue se calcula multiplicando el coste medio

  • 8/18/2019 Reing Soft

    17/55

    de cada caso de prueba por el n0mero de 1stos( "ue es función de lacomplejidad ciclomática del problema.

    A T0mero de accesos a archi!os( bases de datos y campos. En laponderación de estas entradas/salidas consideramos la complejidad de las

    estructuras de información y el grado de independencia de la aplicaciónrespecto de los datos.

    A T0mero de operaciones "ue realizan los usuarios de la aplicación( n0merode !entanas( n0mero de informes( etc.( para el caso de las interfaces deusuario.

    2/'/' )nna !ez "ue se ha calculado el coste de la reingeniería( la 0ltima etapa escomparar los costes con los bene$cios esperados 9no es su$ciente con eaminarlos bene$cios "ue aporte la reingeniería;.

    El bene$cio proporcionado por continuar manteniendo el producto sinreingeniería es el siguiente%

    BM = [P3 ? (P1 + P2! " P1#

    eberá retocarse la fórmula cuando los di!ersos costes !aríen de un a:o paraotro.

    Si se desarrolla de nue!o el sistema( se obtiene este bene$cio%

    B$ = [(P12 ? (P1% + P11 " (P1# ? P1& ? (P13 " P1'! ? BM

    El bene$cio producido por la reingeniería es%

    BR = [(P# ? (P& + P' " (P1# ? P ? (P) " P*! ? BM

    onde%

    # W 2oste de mantenimiento actual para una aplicación 9anual;.

    #C W 2oste de operación de una aplicación 9anual;.

    #J W alor del negocio actual 9anual;.

    # W 2oste pre!isto de mantenimiento tras la reingeniería 9anual;.

    #H W 2oste pre!isto de operaciones tras la reingeniería 9anual;.

    #L W alor de negocio pre!isto tras la reingeniería 9anual;.

    #N W 2oste estimado de la reingeniería.

    #F W uración estimada de la reingeniería.

    #G W Uactor de riesgo de la reingeniería.

  • 8/18/2019 Reing Soft

    18/55

    #I W 2oste pre!isto de mantenimiento tras el redesarrollo 9anual;.

    # W 2oste pre!isto de operaciones tras el redesarrollo 9anual;.

    #C W alor de negocio pre!isto el nue!o sistema 9anual;.

    #J W 2oste estimado del redesarrollo.# W uración estimada del redesarrollo.

    #H W Uactor de riesgo del redesarrollo.

    #L W ida esperada del sistema.

    C)*+TU,O $

    %-TODOS 4 %OD-,OS D- ,) R-IN.-NI-R+) D- SOT5)R-

    Este 2apítulo eplica de una forma muy bre!e los m1todos y modelos "ue sonutilizados para lle!ar a cabo de manera satisfactoria la acti!idad de reingeniería.7l comienzo del 2apítulo se alude al m1todo de análisis de opciones parareingeniería 937R por sus siglas en ingles de 3ptions 7nalysis for Reingeneering;dando su de$nición y eplicando la necesidad de aplicarlo( se menciona de formabre!e las acti!idades principales y especializadas de este m1todo así como laestructura de ellas. En los siguientes dos subtemas se trata a dos modelosutilizados para la reingeniería% El modelo herradura y el modelo cíclico(eplicando bre!emente los ni!eles o acti!idades de cada uno.

    $/1 -, %-TODO )N>,ISIS D- O*CION-S *)R) R-IN.-NI-R+) ?@O*TIONS)N),4SIS OR R-IN.-N--RIN.@ ?O)RAA

    $/1/1 De;nicin " Necesidad Del )nna tendencia emergente había sido la implementación de líneas deproducción de software para realizar medidas de economías y grandes e$cienciasen el desarrollo de de software 52lem I6.

  • 8/18/2019 Reing Soft

    19/55

    esde entonces muchas organizaciones tienen una substancial base de softwareheredado acti!o( algunas líneas de producción de desarrollo o esfuerzos demigración. Sin embargo( hasta ahora( estas habían sido formas no sistemáticaspara identi$car componentes para re-uso y para entender los tipos de cambiosre"ueridos para insertar componentes de sistemas heredados dentro de una

    línea de producción de software o una nue!a ar"uitectura 5,ull II6. En lamayoría de los casos( las opciones habían sido para cual"uiera eperimentar elcostoso y alto riesgoso proceso de reingeniería de un sistema completo o parasimplemente crear los componentes re"ueridos o sistemas desde cero.

    'a etracción de componentes casi siempre había sido discutido como unaalternati!a( pero re"uería el entendimiento de "ue tipos de componentes !alíanla pena etraer y como se debería etraer. 'os siguientes puntos son moti!ospara el cambio%

    A 2omponentes eistentes casi siempre eran pobremente estructurados y

    documentados.

    A 2omponentes eistentes diferían en ni!eles de granuralidad.

    A To había una guía clara sobre como sal!ar componentes.

    37R proporciona un acercamiento sistemático para direccionar esos puntos ytomar decisiones re"ueridas para el costo efecti!o y e$ciente de etraercomponentes de sistemas heredados.

    El m1todo 37R consiste de cinco acti!idades principales con tareas escalables.Esas tareas son representadas en la $gura J. y resumen las siguientes

    secciones.

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    Estas acti!idades serán abordadas bre!emente en las siguientes secciones.

    $/1/2 )CTI0ID)D-S *RINCI*),-S D-, %-TODO O)R

    -staBlecimiento del conteto de etraccin ?-C-A/

    Es importante para el e"uipo de 37R entender el conteto para la etracción.2ómo un resultado( la primer acti!idad de 37R consiste en entre!istar a los

    accionistas y estudiar la línea de producción de la organización o nue!osre"uerimientos de sistema( base heredada y epectati!as para la etracción decomponentes heredados. Estos esfuerzos establecen una línea base de unconjunto de metas( epectaciones y necesidades de componentes. Esto tambi1ndescubre los controladores de programa y t1cnicos para la toma de decisiones.

    In8entario De Componentes ?ICA/

    espu1s del E2E( el e"uipo 37R identi$ca los componentes del sistema heredado

  • 8/18/2019 Reing Soft

    20/55

    "ue potencialmente pueden ser etraídos para usarlos en una línea deproducción o en una nue!a ar"uitectura de software.

    urante esta acti!idad( los miembros del e"uipo identi$can componentes delíneas de producción necesarios y e!al0an los componentes heredados basados

    en esos criterios. 7"uellos "ue no descubran los criterios están incapacitadospara continuar con el proceso de reingeiería. Esta acti!idad resulta en unin!entario de los componentes heredados candidatos. 'a acti!idad de *2 tieneseis tareas%

    A *denti$car características de los componentes necesarios%

    A etermina las características re"ueridas de los potenciales componentesheredados.

    A *denti$ca las características satisfactorias de los componentes%

    A 2rea una tabla de componentes heredados con detalles de suscaracterísticas.

    A Uiltra los componentes "ue no satisfacen las características re"ueridas.

    A 2ompara las necesidades de componentes%

    A 2ompara los componentes heredados en contraste con la línea deproducción de componentes necesarios.

    A *n!entario de componentes candidatos%

    A 7ctualiza la tabla de componentes con mas detalles acerca de loscomponentes candidatos seleccionados.

    A #roduce tópicos de etracción

    A Re!isa cual"uier tópico de etracción e in"uietudes "ue fueronidenti$cados durante la acti!idad.

    A Re!isión del calendario 37R%

    A 7ctualiza el calendario de 37R si fuera necesario.

    )n

  • 8/18/2019 Reing Soft

    21/55

    A eterminar criterios deseables para cada componente heredado.

    A eja fuere a"uellos "ue no satisfacen esos criterios.

    A *denti$ca los componentes ?8al como están y de caja negra?

    A etermina a"uellos componentes "ue pueden ser tapados o usados ?talcomo están?.

    A *denti$ca componentes de caja blanca.

    A etermina a"uellos componentes "ue necesitarán ser modi$cados.

    A etermina cambios re"ueridos%

    A etermina los tipos de cambio "ue cada componente necesitará( el costoy esfuerzo in!olucrados( el ni!el de di$cultad y riesgo( el costo y esfuerzo

    comparati!o para el desarrollo de componentes desde cero.A #roducción de tópicos de etracción%

    A Re!isa cual"uier tópico de etracción e in"uietudes "ue fueronidenti$cados durante la acti!idad.

    A Re!isa el calendario 37R%

    A 7ctualiza el calendario 37R si fuera necesario.

    *lan de opciones de etraccin ?*O-A/

    ado el conjunto de componentes candidatos analizados( el e"uipo desarrollaralternati!as para la etracción basada en consideraciones de calendario( costo(esfuerzo( riesgo y recursos. El e"uipo 37R tambi1n $ltra una !ez más loscomponentes candidatos y analiza el impacto de agregación de diferentescomponentes.

    El #3E tiene siete tareas%

    A Selecciona componentes fa!orables%

    A esarrolla criterios( tales como costo o ni!eles de esfuerzo re"ueridos.

    A Ejecución de intercambio de componentes%

    A *denti$ca un componente 9o combinación; por linea de producción decomponentes necesarios.

    A Uorma opciones de componentes%

    A esarrolla criterios para agregar componentes.

  • 8/18/2019 Reing Soft

    22/55

    A etermina costos comparati!os y esfuerzos%

    A 2ompara el costo por cada agregación con el costo de desarrollar desdecero.

    A 7naliza di$cultad o riesgo%

    A etermina el ni!el de di$cultada y el riesgo in!olucrados por cadaagregación.

    L. #roducción de tópicos de etracción%

    A Re!isa cual"uier tópico de etracción e in"uietudes "ue fueronidenti$cados durante la acti!idad.

    A Re!isa el calendario 37R%

    A 7ctualiza el calendario 37R si fuera necesario.

    Seleccin de opciones de etraccin ?SO-A/

    Uinalmente( los miembros del e"uipo seleccionan la mejor opción de etracción ocombinación de opciones para programas y consideraciones t1cnicas. espu1sde e!aluar cada opción de etracción( ellos preparan un resumen "ue presenta y

     justi$ca sus elecciones.

    'a acti!idad S3E tiene cinco tareas%

    A Elegir la mejor opción%

    A etermina los controladores para seleccionar entre las opciones.

    A Selecciona una opción o combinación de ellas.

    A eri$cación de opción%

    A Xuarda todos los detalles acerca de cada una de las opciones escogidas.

    A *denti$ca componentes necesarios satisfechos.

    A 2ompleta la lista $nal de componentes necesarios satisfechos y nosatisfechos a tra!1s de las opciones seleccionadas.

    A #resentación de descubrimientos.

    A #repara la presentación de descubrimientos "ue proporciona detallesacerca de las opciones seleccionadas.

    A #roducción de resumen.

  • 8/18/2019 Reing Soft

    23/55

    A #roducción de un reporte $nal detallando las opciones seleccionadas y lasrazones para esas elecciones.

    $/1/$ Tareas -speciali6adas/

    2ada acti!idad tambi1n tiene un potencial conjunto de acti!idades

    especializadas para direccionar circunstancias "ue pueden de otro modoimposibilitar la cumplimiento de la acti!idad. Estas tareas pueden aplicarse bajolas siguientes condiciones%

    A El criterio eistente para las acti!idades prescritas no han sido satisfechas.

    A ,as trabajo puede ser re"uerido para "ue la acti!idad searazonablemente completada en la acti!idad de las tareas in!olucradas.

    A Se re"uieren datos adicionales para completar una tarea particular o paradireccionar necesidades especiales del cliente.

    A Eiste una necesidad de complementar tareas estándares 37R para a$narla toma de decisiones y reducir riesgos.

    'a siguiente sección incluye ejemplos de tareas especializadas.

    $/1/' -structura De )cti8idades

    2ada acti!idad esta compuesta de tareas y sub-tareas dise:adas para contestarun conjunto de preguntas de acti!idades especi$cas. Esas preguntas de$nirán laacti!idad y tambi1n ser!irán como una lista de comprobación para ser incluidasen los criterios de cada acti!idad.

    'as acti!idades están estructuradas de acuerdo a un formato ?E*83Y 9Entry2riteria( *nputs( 8asZ( alidation( 3utputs( Eit 2riteria;? 5Berg I6 "ue se muestraa continuación%

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    'as siguientes secciones muestran cómo la acti!idad E2E es estructurada deacuerdo al el formato E*83Y. 2ada una de las otras acti!idades siguen esteformato. Bergey et al.( proporciona este ni!el de detalle. 5Berg I6

    $/1/'/1 -7emplo De )cti8idad: -staBlecimiento Del Conteto De

    -traccin/*reguntas fundamentales/

    'as tareas de E2E fueron desarrolladas para direccionar un conjunto decuestiones "ue incluyen%

    A

  • 8/18/2019 Reing Soft

    24/55

    A

  • 8/18/2019 Reing Soft

    25/55

    A ,etas y objeti!os para el esfuerzo de etracción.

    A Re"uerimientos de la línea de producción y componentes necesarios.

    A ocumentación "ue describe el alcance de la línea de producción(ar"uitectura y especi$caciones de componentes.

    A isión general del sistema heredado y documentación de componentes.

    A Reportes de eperiencia de otros esfuerzos de etracción/reingeniería.

    A #er$l de calendario 37R típico.\

    'a acti!idad E2E se di!ide en diez tareas. Esas tareas son ejecutadas en orden.arias de estas tareas son subdi!ididas. #ara ayudar al e"uipo 37R a ejecutar lastareas y sub-tareas( el SE* 9Software Engeneering *nstitute; desarrollo plantillasde ejecución y datos. Estas plantillas de ejecución muestran los pasos(

    fundamentos y suposiciones para las tareas y sub-tareas. 'as plantillas de datosproporcionan ejemplos típicos y ofrecen !arios puntos de inicio para producirinformación de los clientes.

    'as tareas logran lo siguiente%

    A Re!isión de metas y objeti!os%

    A etermina las metas y objeti!os de los accionistas para el esfuerzo deetracción.

    A Re!isión de 'ínea de producción / Tue!os re"uerimientos de sistema%

    A *denti$car línea de producción o nue!os re"uerimientos de sistema.

    A Re!isión y selección de componentes necesarios%

    A *denti$car componentes necesarios "ue deberán ser direccionados para laetracción.

     ]]]]]]]]]]]]]]]]] 

    \ El ?#er$l de calendario 37R? es una plantilla proporcionada por el SE*

    -structura de tareas/

    A Re!isión de sistemas heredados y documentación%

    A Re!isión de sistemas heredados y documentación de componentesdisponibles.

    A eterminar controladores de etracción%

  • 8/18/2019 Reing Soft

    26/55

    A *denti$car controladores programáticos y t1cnicos.

    A alidar metas y objeti!os%

    A eterminar la compatibilidad de los controladores de etracción con lasmetas y objeti!os.

    A *denti$car componentes candidatos%

    A eterminar criterios para componentes heredados de gran !alor.

    A Selección del conjunto de componentes candidatos.

    A #roducción de tópicos de etracción%

    A Re!isión de cual"uier tópico de etracción e in"uietudes "ue fueronidenti$cados durante la acti!idad.

    A E!aluar el estado de preparación%

    A eterminar los ni!eles de estado de preparación de la organización.

    A Re!isión del calendario 37R%

    A 7ctualizar el calendario 37R si fuera necesario.

    7lgunas tareas tienen sub-tareas. 'a tarea cuatro por ejemplo es subdi!idida en%

    A Re!isión de sistemas heredados.

    A Re!isión de documentación de componentes.-7emplo de e7ecucin " plantillas de datos/

    'a plantilla de ejecución 9tabla J;( especi$ca como ejecutar la re!isión dedocumentación de componentes 9sub-tarea .C;.

    'a plantilla de datos ?E,2-.C-8? 9tabla J; sugiere "ue los siguientes tipos dedatos deben ser recolectados%

    A 'ista de componentes heredados.

    A ocumentación de componentes 9ej. Uuncionalidad y descripción deinterfaces;.

    A 2ódigo fuente de componentes heredados.

    A +istoria de mantenimiento para componentes heredados 9ej. 2osto(modi$cación( margen de tiempo( recursos de utilización;.

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

  • 8/18/2019 Reing Soft

    27/55

    0alidacin/

    espu1s de "ue las tareas fueron completadas( las preguntas fundamentalespara la acti!idad son re!isadas. 7lgunos de los criterios de !alidación para el E2Eson los siguientes%

    A 'as epectaciones son es"uematizadas y entendidas.

    A 8odos los sistemas de información heredados son identi$cados.

    A >n conjunto de I a CI componentes de línea de producción necesarioscon alto potencial han sido seleccionadas para ser satisfechas a tra!1s dela etracción.

    A 2ontroladores y prioridades son identi$cados y entendidos.

    A >n conjunto de H a JI componentes heredados han sido seleccionados

    como candidatos para la etracción.

    A El ni!el de preparación de etracción ha sido e!aluado.

    )rtefactos de salida/

    Establecer contetos de etracción produce los siguientes artefactos de salida%

    A >n conjunto de rele!antes sistemas de información heredados ydocumentación.

    A >n conjunto de componentes de línea de producción necesarios.

    A #rogramas principales y controladores t1cnicos.

    A >na conjunto de componentes heredados y documentación decomponentes asociados.

    A E!aluación del estado de preparación.

    A 'ista de tópicos de etracción e in"uietudes.

    A Re!isión del per$l del calendario 37R.

    Criterios de salida/

    7ntes de completar el establecimiento del conteto de etracción( es necesariocubrir los siguientes criterios de salida%

    A El e"uipo de etracción ha identi$cado un conjunto razonable de líneas deproducción necesarias y componentes candidatos.

    A 'a epectación de la organización es consistente con los ni!eles del

  • 8/18/2019 Reing Soft

    28/55

    estado de preparación.

    A El per$l del calendario 37R ha sido re!isado y cual"uier cambio necesarioha sido aceptado.

    A 8odos los artefactos de salida de esta acti!idad han sido producidos.

    A 8odas las preguntas fundamentales para esta acti!idad han sidocontestadas satisfactoriamente.

    -7emplos de tareas especiali6adas/

    Si los criterios de salida no son cumplidos( puede ser apropiado una tareaespecializada. 'os siguientes son ejemplos de tareas especializadas para laacti!idad de establecer del conteto de etracción%

    A *mpulsar los esfuerzos para identi$car los controladores de etracción y

    resol!er los problemas programáticos y tópicos t1cnicos.A *mpulsar la de$nición de los re"uerimientos de línea de producción y

    componentes necesarios en t1rminos de funcionalidad e interfaces.

    A 7islando e identi$cando la funcionalidad e interfaces de los componentesheredados.

    A esarrollando los ni!eles re"ueridos de documentación para loscomponentes heredados.

    $/2 -l %OD-,O 3-RR)DUR)

    'os tres procesos básicos = análisis de un sistema eistente( transformaciónlógica y desarrollo de un nue!o sistema = forman la base del modelo deherradura. El primer proceso sube el etremo iz"uierdo de la herradura( elsegundo cruza la parte superior y el tercero baja por el etremo derecho de laherradura. 'a ri"ueza del modelo de herradura son los tres ni!eles de abstracción"ue pueden ser adoptados para las descripciones lógicas. 2onceptualmente( estepuede ser a tra!1s de un conjunto de herraduras anidadas. 'as descripcioneslógicas pueden ser artefactos tan concretos y simples como el código fuente delsistema o tan complejos y abstractos como la ar"uitectura del sistema. Elpropósito de la metáfora !isual es para integrar las !istas de reingeniería a ni!el

    de código y ar"uitectónico del mundo. 5Berg GG6

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    En su más pura y completa forma( el primer proceso recupera la ar"uitectura pormedio de la etracción de artefactos desde el código fuente. Esta estructurarecuperada es analizada para determinar si esta se adapta a la ar"uitecturaantes dise:ada. 'a ar"uitectura descubierta tambi1n es e!aluada con respecto a

  • 8/18/2019 Reing Soft

    29/55

    un n0mero de calidad de atributos tales como rendimiento( modi$cabilidad(seguridad o con$abilidad.

    El segundo proceso es la transformación de ar"uitectura. En este caso( laar"uitectura antes construida es recuperada y es reingenierada para hacerla una

    nue!a ar"uitectura deseable. Esta es ree!aluada contra las metas de calidad delsistema y sujetas a otras restricciones organizacionales y económicas.

    El tercer proceso del modelo de herradura usa el ?7rchitecture-Basede!elopment 97B;? 5BassGG6 para ejempli$car la ar"uitectura deseable. En esteproceso( ya empa"uetados los tópicos son decididas e interconectadas lasestrategias elegidas. 'os artefactos a ni!el de código del sistema de informaciónheredado son normalmente tapados o reescritos para adaptarlos dentro de lanue!a ar"uitectura.

    $/2/1 ,os Tres Ni8eles Del %odelo 3erradura

    En el modelo herradura eisten tres ni!eles%

    A ?Representación de la estructura de código?( el cual incluye código fuentey artefactos tales como árboles de sintais abstractos 97bstract syntatree@ 7S8s; y diagramas de ujo obtenidos a tra!1s del análisis gramaticaly operaciones analíticas de rutina.

    A ?Representación del ni!el funcional?( el cual describe la relación entre lasfunciones del programa 9llamadas;( datos 9funciones y relaciones dedatos;( y archi!os 9agrupamiento de funciones y datos;.

    A ?Ti!el conceptual?( el cual representa grupo tanto de funciones yartefactos del ni!el de código "ue son ensamblados dentro desubsistemas de componentes relacionados o conceptos.

    El modelo completo no solo hace transformaciones en el ni!el de ar"uitectura(tambi1n lo hace en los ni!eles subsidiarios. 7 continuación se proporcionanalgunos ejemplos simples de transformaciones en cada ni!el.

    Ni8el de cdigo/

    En el ni!el de código eisten dos sub-ni!eles( transformación tetual 9o basadoen cadena; y transformación basado en el árbol de sintais. ,ientras algunos

    m1todos hacen distinciones entre transformaciones ?7? tetual 9sintáctico; y?B? 7S8-based 9semántico;( el modelo herradura los considera a ambos dentrodel conteto de estructura de código.

     8ransformación 8etual%

    En el ni!el 7( las transformaciones tetuales son realizadas a tra!1s de !ariascomparaciones de cadenas simples y remplaza m1todos. #or ejemplo( el mayor

  • 8/18/2019 Reing Soft

    30/55

    de los esfuerzos de solución al ?Dear CIII? 9DCM; fueron enfocadas en el códigofuente( el cual representaba los a:os como manipulaciones de dos dígitos 9porejemplo% GG para GGG;( la solución entonces fue remplazarlos con codigo "uemanipulara cuatro dígitos. 3tros ejemplos incluyen transformaciones tetuales denombres o palabras cla!es cuando portaban un sistema desde una plataforma o

    sistema operati!o a otro. 'as transformaciones del ni!el 7 son relati!amentesimples( directas y relati!amente baratas. Estas transformaciones son elegidaspor las organizaciones cuando el problema es su$cientemente simple o cuandose re"uiere un resultado rápido y sucio 9"uicZ and dirty;.

     8ransformación al árbol de sintais%

    En el ni!el B( las transformaciones a la estructura de código basada en árbolesde sintais 97S8s; soportan cambios "ue son inmunes a las !ariacionessuper$ciales de sintais. 7sí( la representación del código fuente esindependiente de las epresiones o la forma en "ue los lenguajes de

    programación representan n0meros. 8ransformaciones a la estructura de códigobasado en árboles de sintais son normalmente usadas para implementarnue!os lenguajes 9por ejemplo de 23B3' a 2^^; o para hacer cambios al códigoautomáticamente 9por ejemplo( m1todos más so$sticados para el problema DCM;.

    Transformaciones a ni8el funcional/

     8ransformaciones a ni!el funcional 9ni!el ?C?; tiene "ue !er con el re-empa"uetado de funcionalidad 9por ejemplo( migrar desde un dise:o funcional aun dise:o orientado a objeto o migrar desde un modelo de base de datosrelacional a un modelo orientado objeto;. 'a encapsulación de un modulo de

    funcionalidad por un diferente ambiente( es un ejemplo de transformación a ni!elfuncional. 8ransformaciones a ni!el funcional !a más allá de simplestransformaciones a la estructura del código( pero no !a más allá "ue unatransformación de ar"uitectura. Ellos son elegidos cuando grandes unidades defuncionalidad pueden ser sal!ados poni1ndolos dentro de un nue!o conteto.

    Transformaciones a ni8el de ar(uitectura/

    'as transformaciones a ni!el de ar"uitectura 9ni!el ?J?; in!olucran cambios a losblo"ues básicos de la ar"uitectura. Estos incluyen los modelos básicos deinteracción incluyendo los tipos de componentes( los conectores usados( la

    asignación de funcionalidad y el modelo en tiempo de ejecución de control ydatos. El ni!el de ar"uitectura es el más abstracto y lejos del alcance de lastransformaciones. 'as transformaciones a ni!el de ar"uitectura son hechascuando es necesario un cambio a la estructura principal debido a las principalesmodi$caciones o de$ciencias en los sistemas de información heredados. 'astransformaciones generalmente traen mayores compromisos de tiempo yrecursos( pero tambi1n trae consigo grandes bene$cios.

  • 8/18/2019 Reing Soft

    31/55

    Interaccin entre ni8eles/

    'as transformaciones a la estructura del código se pueden dar sin hacer cambiosde ni!el funcional o cambios a la ar"uitectura. 'as transformaciones del ni!elmás bajo soportan las transformaciones de ni!eles más altos. 2on esta !ista

    multi-ni!el de transformaciones( las transformaciones a la ar"uitectura sonnormalmente el conteto en los cuales toman parte ni!eles mas bajos. Sinembargo( las transformaciones de ni!el superior no soportan transformacionesde ni!el bajos por"ue esas transformaciones se pueden dar independientementede las transformaciones de ni!eles superiores. e echo( uno de los principalespropósitos del modelo herradura es ele!ar el ni!el de abstracción y brindarnoticiones de la ar"uitectura para las tareas de reingeniería.

    $/$ -, %OD-,O C+C,ICO

    Este modelo de$ne 5#res IC6 seis acti!idades las cuales se muestran en la $guraJ.J. En algunas ocasiones( estas acti!idades se producen de forma secuencial ylineal( pero esto no siempre es así. #or ejemplo( puede ser "ue la ingenieríain!ersa 9la comprensión del funcionamiento interno de un programa; tenga "ueproducirse antes de "ue pueda comenzar la reestructuración de documentos.

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    El paradigma de la reingeniería mostrado en la $gura es un modelo cíclico. Estosigni$ca "ue cada una de las acti!idades presentadas como parte del paradigmapueden repetirse en otras ocasiones. #ara un ciclo en particular( el procesopuede terminar despu1s de cual"uier de estas acti!idades.

    $/$/1 )cti8idades Del %odelo Cíclico/En esta sección se dará una bre!e eplicación de las acti!idades "ue se de$nenen el modelo cíclico% 7nálisis de in!entario( Reestructuración de documentos(*ngeniería in!ersa( Reestructuración de código( Reestructuración de datos e*ngeniería directa.

    )n

  • 8/18/2019 Reing Soft

    32/55

    estado de las aplicaciones 9por ejemplo( la importancia con respecto al negocio;puede cambiar en función del tiempo y( como resultado( cambiarán tambi1n lasprioridades para la reingeniería.

    Reestructuracin de documentos/

    >na documentación escasa es la marca de muchos sistemas de informaciónheredados.

  • 8/18/2019 Reing Soft

    33/55

    especi$cación. 2onsiguientemente( la ingeniería in!ersa del software es elproceso de análisis de un programa con el $n de crear una representación deprograma con un ni!el de abstracción más ele!ado "ue el código fuente. 'aingeniería in!ersa se etraerá del programa eistente información del dise:oar"uitectónico y de proceso( e información de los datos.

    Reestructuracin del cdigo/

    El tipo más com0n de reingeniería es la reestructuración del código. 7lgunossistemas heredados tienen una ar"uitectura de programa relati!amente sólida(pero los módulos indi!iduales han sido codi$cados de una forma "ue hace difícilcomprenderlos( comprobarlos y mantenerlos. En estos casos( se puedereestructurar el código ubicado dentro de los módulos sospechosos.

    #ara lle!ar a cabo esta acti!idad( se analiza el código fuente mediante unaherramienta de reestructuración( se indican las !iolaciones de las estructuras deprogramación estructurada( y entonces se reestructura el código 9esto se puedehacer automáticamente;. El código reestructurado resultante se re!isa y secomprueba para asegurar "ue no se hayan introducido anomalías. Se actualiza ladocumentación interna del código.

    Reestructuracin de datos/

    >n programa "ue posea una estructura de datos d1bil será difícil de adaptar y demejorar. e hecho( para muchas aplicaciones( la ar"uitectura de datos tiene más"ue !er con la !iabilidad a largo plazo del programa "ue el propio código fuente.

    7 diferencia de la reestructuración de código( "ue se produce en un ni!el

    relati!amente bajo de abstracción( la estructuración de datos es una acti!idad dereingeniería a gran escala. En la mayoria de los casos( la reestructuración dedatos comienza por una acti!idad de ingeniería in!ersa. 'a ar"uitectura de datosactual se analiza minuciosamente y se de$nen los modelos de datos necesarios.Se identi$can los objetos de datos y atributos y( a continuación( se re!isan lasestructuras de datos a efectos de calidad.

    2uando la estructura de datos es d1bil 9por ejemplo( actualmente seimplementan archi!os planos( cuando un enfo"ue relacional simpli$caríamuchísimo el procesamiento;( se aplica una reingeniería a los datos.

    ado "ue la ar"uitectura de datos tiene una gran inuencia sobre la ar"uitecturadel programa( y tambi1n sobre los algoritmos "ue los pueblan( los cambios endatos darán lugar in!ariablemente a cambios o bien de ar"uitectura o bien decódigo.

    Ingeniería directa ?fo#ard engineeringA/

    En un mundo ideal( las aplicaciones se reconstruyen utilizando un ?motor dereingeniería? automatizado. En el motor se insertaría el programa !iejo( "ue lo

  • 8/18/2019 Reing Soft

    34/55

    analizaría( reestructuraría y despu1s regeneraría la forma de ehibir los mejoresaspectos de la calidad del software. espu1s de un espacio de tiempo corto( esprobable "ue llegue a aparecer este ?motor?( pero los fabricantes de 27SE hanpresentado herramientas "ue proporcionan un subconjunto limitado de estascapacidades y "ue se enfrentan con dominios de aplicaciones especí$cos 9por

    ejemplo( aplicaciones "ue han sido implementadas empleando un sistema debases de datos especí$co;. 'o "ue es más importante( estas herramientas dereingeniería cada !ez son más so$sticadas.

    'a ingeniería directa( "ue se denomina tambi1n reno!ación o reclamación 52hiGI6( no solamente recupera la información de dise:o de un software ya eistente(sino "ue( además( utiliza esta información en un esfuerzo por mejorar su calidadglobal. En la mayoría de los casos( el software procedente de una reingeniería!uel!e a implementar la funcionalidad del sistema eistente( y a:ade ademásnue!as funciones y/o mejora el rendimiento global.

    C)*+TU,O '

    R-CONSTRUCCIÓN D- ,) )RUIT-CTUR)

    En este 0ltimo capítulo se trata el tema de reconstrucción de la ar"uitectura deun sistema candidato al proceso de reingeniería. 'a reconstrucción de laar"uitectura es una de las principales acti!idades "ue se deben realizar al iniciarun proyecto de reingeniería ya "ue esta nos permite entender al programa "uesufrirá la transformación mediante la creación de abstractas del sistema. En elprimer subtema se intenta de$nir cual es el rol de la reconstrucción de laar"uitectura en el proceso de reingeniería para despu1s mencionar algunas

    recomendaciones para un proyecto de reconstrucción de la ar"uitectura. Estecapítulo $naliza eplicando a detalle las fases "ue conforman la acti!idad dereconstrucción de la ar"uitectura dando en algunos casos( ejemplos "ue ayudena entender dichas fases.

    '/1 -, RO, D- ,) R-CONSTRUCCIÓN D- ,) )RUIT-CTUR)/

    'a reconstrucción de la ar"uitectura seg0n Bergey 5Berg IIa6 resulta en unarepresentación ar"uitectural "ue puede%

    A Ser usada para documentar la ar"uitectura eistente.

    A Ser usada para checar la conformidad de la ya implementada ar"uitecturaa la ar"uitectura dise:ada.

    A Ser!ir como un punto de partida para aplicar reingeniería al sistema paradise:ar una nue!a ar"uitectura a tra!1s de la estrategia detransformación de la ar"uitectura.

    A Ser usada para identi$car componentes para establecer un m1todo de

  • 8/18/2019 Reing Soft

    35/55

    línea de aplicación.

    Si una organización no tiene documentación actualizada para un sistemaeistente( este es a menudo una posibilidad para reconstruir la ar"uitectura delsistema para proporcionar documentación actual. >sando apoyo automatizado(las unidades fuentes "ue construyen componentes ar"uitectónicos y las ligasentre ellos sir!en como las base para la construcción de la documentación.

    En muchos casos( la ya implementada ar"uitectura de un sistema tendrá "uederi!arse en la ar"uitectura dise:ada. En algunos casos( reconstruyendo laar"uitectura del software ayuda en el che"ueo de conformidad de la yaimplementada ar"uitectura contra la ar"uitectura dise:ada.

    En otros casos( una organización deseará actualizar y agregar funcionalidad alsistema. 'a ar"uitectura ya implementada es entonces reconstruida y usadacomo la base para la transformación para la nue!a ar"uitectura dise:ada.

    2uando se introduce un m1todo a la línea de producción( este normalmente sebene$cia al usar los componentes de la ar"uitectura eistente en la línea deproducción. En estos casos( la reconstrucción de la ar"uitectura puede ayudar aidenti$car componentes comunes "ue pueden ser el centro acti!o en la nue!alínea de producción de la ar"uitectura.

    '/2 R-CO%-ND)CION-S 4 )S-S *)R) ,) R-CONSTRUCCIÓN D- ,))RUIT-CTUR)

    '/2/1 Recomendaciones *ara ,a Reconstruccin De )r(uitectura

    'os siguientes( seg0n Mazman 5Mazm GN6 son recomendaciones generales para el

    proyecto de reconstrucción de la ar"uitectura%

    A 8ener una meta y un conjunto de objeti!os o preguntas en mente antes deemprender un proyecto de reconstrucción de datos. #or ejemplo( re-usarpartes del sistema en una nue!a aplicación puede ser una meta. Sin estasmetas u objeti!os( gran parte del esfuerzo puede ser gastado en laetracción de la información y generar !istas ar"uitectónicas "ue puedenno ser 0tiles.

    A 3btener una !isión de alto ni!el de la ar"uitectura del sistema antes decomenzar el detallado proceso de reconstrucción. Esta !isión guía la%

    A

    A #rocesos de etracción para ayudar a identi$car la información "ue senecesita ser etraída del sistema.

    A #rocesos de reconstrucción para ayudar a determinar "ue se !e en laar"uitectura y "ue !istas se generarán.

  • 8/18/2019 Reing Soft

    36/55

    A >sar la documentación eistente para generar solo !istas de alto ni!el delos sistemas. En muchos casos( la documentación eistente para unsistema puede no reejar eactamente el sistema como estaimplementado( pero este puede dar una indicación de conceptos de altoni!el.

    A *n!olucrar a la gente "ue esta familiarizado con el sistema en el proyectopara obtener un mejor entendimiento del sistema "ue será reconstruido.+erramientas pueden ayudar al esfuerzo y acorta los procesos dereconstrucción( pero ellos no pueden ejecutar una reconstruccióncompleta automáticamente. 'a reconstrucción de ar"uitectura re"uiere"ue se in!olucre la gente 9ar"uitectos( desarrolladores y gente demantenimiento del software; "uienes están familiarizados con el sistema.

    A 7signar a alguien de tiempo completo para trabajar sobre el proyecto dereconstrucción de ar"uitectura. 'a reconstrucción de ar"uitectura

    in!olucra un etenso y detallada análisis de un sistema y re"uiere unsigni$cante esfuerzo.

    '/2/2 ases *ara ,a Reconstruccin De ,a )r(uitectura/

    'a reconstrucción de datos re"uiere una serie de acti!idades y t1cnicas. 2on lagran cantidad de software en la mayoría de sistemas( es casi imposible ejecutartodas las acti!idades de reconstrucción manualmente. En lugar de eso( unconjunto de herramientas 9conocidas como workbench; es necesario para apoyara las acti!idades de reconstrucción de la ar"uitectura.

    >n worZbench para la reconstrucción de ar"uitectura debe ser abierto 9acoplarfácilmente nue!as herramientas; y proporcionar una fácil integración de unmarco de trabajo 9conocido comoframework ; para "ue las nue!as herramientasagregadas al conjunto no afecten a las herramientas eistentes o datos. >nworZbench es ?7R,*T?( el cual remplaza al worZbench ?ali architectureReconstruction? 5Mazm GN6. 7R,*T se utiliza para etraer información desde elcódigo fuente y otros artefactos del sistema( 7R,*T habilita la carga de estainformación para "ue pueda ser usada en el proceso de reconstrucción.

    >sando las herramientas proporcionadas por 7R,*T( la reconstrucción de laar"uitectura seg0n Mazman 5Mazm IJ6 comprende las siguientes fases%

    A Etracción de la información.

    A 2onstrucción de la base de datos.

    A Uusión de !istas.

    A 2omposición de las !istas ar"uitectónicas.

  • 8/18/2019 Reing Soft

    37/55

    '/2/2/1 -traccin de la Informacin

    'a etracción de la información in!olucra el análisis del dise:o eistente yartefactos de implementación de un sistema para construir un modelo basado enlas !istas de las m0ltiples fuentes. esde los artefactos fuente 9código( archi!os

    cabecera( archi!os construidos; y otros artefactos 9ejecución del programarenglón por renglón; de los sistemas( los elementos interesantes y las relacionesentre ellos pueden ser identi$cados y capturados para producir !arias !istasfundamentales del sistema. 'a siguiente tabla muestra una lista de elementostípicos y !arias relaciones entre los elementos "ue pueden ser etraídos de unsistema.

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    2ada una de las relaciones entre los elementos constituye una !ista diferente delsistema. 'as relaciones ?calls? entre funciones muestran como interact0an !ariasfunciones en el sistema. 'as relaciones ?includes? entre archi!os muestra lasdependencias entre los archi!os del sistema. 'as relaciones ?access]read? y?access]write? entre funciones y !ariables muestra como son usados los datos enel sistema. 2iertas funciones pueden escribir en un conjunto de datos y otrospueden leerlos. Esta información de relaciones es usada para determinar comoson pasados los datos entre !arias partes del sistema.

    Si el sistema analizado es grande y di!idido dentro de una estructura dedirectorio( capturar la estructura del directorio puede ser importante para elproceso de reconstrucción. 2iertos componentes o subsistemas pueden seralmacenados en directorios( y capturar las relaciones tales como

    ?dir]contains]dir? y ?dir]contains]dir? puede ayudar a identi$car componentes enel proceso de reconstrucción.

    El conjunto de elementos y relaciones etraídos dependerá del tipo de sistemaanalizado y las herramientas de etracción disponibles. Si el sistema areconstruir es orientado a objetos( clases y m1todos deben ser agregados a lalista de elementos etraídos( y relaciones tales como ?2lass is]subclass 2lass? y?2lass contains ,ethod? deben ser etraídas y usadas en el proceso dereconstrucción.

    'as !istas etraídas pueden ser catalogadas en estáticas o dinámicas. 'as !istas

    estáticas son a"uellas obtenidas por obser!ación de los artefactos del sistema(mientras "ue las !istas dinámicas son las obtenidas por la obser!ación delsistema durante su ejecución. En muchos casos( las !istas estáticas y dinámicaspueden ser combinadas para crear una representación más completa y eactadel sistema. Si la ar"uitectura del sistema cambia en tiempo de ejecución( porejemplo( un archi!o de con$guración es leído por el sistema( y ciertoscomponentes son cargados en tiempo de ejecución( la con$guración en tiempode ejecución deber ser capturado y usado cuando se lle!e a cabo la

  • 8/18/2019 Reing Soft

    38/55

    reconstrucción.

    >na !ista fuente puede ser etraída aplicando cual"uiera de las herramientasdisponibles( apropiadas o necesarias para un sistema objeti!o dado. El tipo deherramientas "ue se usan regularmente en la etracción de información son las

    siguientes 5Mazm IJ6%

    A #arsers 9por ejemplo( ?>nderstand for 2/2^^/ja!a?( ?*magi?( ?STiUU^?(?2^^ *nformation 7bstractor 52*76?( ?Rigiparse?;.

    A 7nalizadores basado en árboles de sintais abstractos 97S8; 9ejemplo(?Xen^^?( ?Re$ne?;.

    A 7nalizadores l1icos 9por ejemplo( ?'ightweight Source ,odel Etractor5'S,E6?;.

    A #er$ladores.

    A *nstrumentación de código.

    A 7d +oc 9por ejemplo( ?Xrez?( ?#erl?;

    Estas herramientas son aplicadas a las líneas del código fuente. #arsers analizanel código y generan representaciones internas del código. 8ípicamente( esposible sal!ar esta representación interna para obtener una !ista fuente. 'osanalizadores basados en 7S8 hacen un trabajo similar( pero ellos construyen unarepresentación del árbol eplicito de la información analizada.

    7nalizadores l1icos eaminan los artefactos fuentes como cadenas de

    elementos l1icos o se:ales. El usuario del analizador l1ico puede especi$car unconjunto de patrones l1icos "ue coincidan y los elementos "ue regresará.Similarmente se usan una colección de herramientas ad hoc tales como Xrez y#erl para lle!ar a cabo comparaciones y b0s"ueda de patrones l1icos dentro delcódigo en orden de alguna información de salida re"uerida.

     8odas estas herramientas = parsers( analizadores basados en 7S8( analizadoresl1icos y ad +oc = son usadas para etraer información estática.

    'as herramientas per$ladoras y de código son usadas para etraer informaciónacerca del código "ue esta siendo ejecutado. >sar estas herramientas

    generalmente no re"uiere la agregación de cual"uier código nue!o al sistema.#or otro lado( instrumentación de código = tales como los aplicados en el campodel testeo = in!olucra agregar código al sistema para hacer resaltar algunainformación especi$ca 9por ejemplo( "ue procesos se conectan con otros;mientras el sistema se ejecuta 5,c2a IC6. Estas herramientas y t1cnicas generan!istas dinámicas del sistema.

    '/2/2/2 Construccin de la Base de datos/

  • 8/18/2019 Reing Soft

    39/55

    El conjunto de !istas etraídas son con!ertidas al formato ?Rigi Standard Uormat?9RSU; o al ?Xraph eYchange 'anguage? 9XY'; y cargadas en 7R,*T durante lafase de construcción de bases de datos. Esta con!ersión es hecha usando #erlscripts "ue leen los datos y los con!ierten en un archi!o RSU. 'as !istas etraídaspueden estar en diferentes formatos dependiendo de las herramientas usadas

    para etraerlas. #or ejemplo( una herramientas de etracción tal como?>nderstand for 2/2^^/Va!a? o ?*magi-?( pueden ser usadas para cargar elcódigo fuente dentro de una representación interna( y esta información puedeentonces ser descargada a un conjunto de archi!os bandera indeados porarchi!os o función. Estos archi!os tienen una estructura uniforme( y los scriptspueden ser desarrollados en #erl para leer esos archi!os y etraer informaciónacerca de los elementos y relaciones. 'a siguiente $gura describe este proceso.

    >na !ez "ue los elementos y relaciones de archi!os 9la !ista etraída; escon!ertida a RSU o a XY'( estos pueden ser cargados en 7R,*T. 'a $gura .Cmuestra un etracto de un archi!o RSU ejemplo. El archi!o completo puede sercargado dentro de una base de datos en 7R,*T.

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    '/2/2/$ usin de 8istas/

    En la fase Uusión de !istas( las !istas etraídas son manipuladas para crear !istasfusionadas. #or ejemplo( una !ista estática puede ser fusionada con una !istadinámica. 2omo se puede notar( una !ista estática no puede proporcionar toda lainformación rele!ante de la ar"uitectura. En algunos casos( algunas funcionessolo pueden ser identi$cables en tiempo de ejecución( entonces se necesitará

    generar una !ista dinámica. Estas dos !istas necesitan ser compaginadas yfusionadas para producir la grá$ca completa del sistema.

    'a fase de fusión de !istas compagina y establece coneiones entre las !istas"ue proporcionan información complementaria. 'a fusión es ilustrada usando losejemplos de las siguientes sub-secciones. El primer ejemplo muestra elmejoramiento de una !ista estática de un sistema orientado a objetosagregándole información dinámica. El segundo muestra la fusión de !arias !istaspara identi$car funciones llamadas en un sistema.

    %e7orando una 8ista/

    2onsideramos las dos !istas de código de la $gura .J( las cuales son delconjunto de m1todos etraídos desde un sistema implementado en 2^^.

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    'as diferencias entre estas !istas se muestran en la siguiente $gura%

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

  • 8/18/2019 Reing Soft

    40/55

    'a !ista dinámica muestra "ue List::getnth es llamada. Sin embargo( estem1todo no esta incluido en el análisis de la !ista estática por"ue este no fueidenti$cado por la herramienta de etracción estática. Esto muestra "ue laherramienta de etracción estática no es perfecta( haciendo necesario !alidar losresultados de la información etraída. 8ambi1n( las llamadas a los m1todos

    constructores y destructores de InputValue y List  no están incluidas en la !istaestática. Esa ausencia de m1todos debe ser agregada a la !ista de ar"uitecturacompaginada.

    En adición( la etracción estática muestra "ue la clase rimiti!e"p tiene unallamada al m1todo 2ompute. 'a etracción dinámica no muestra tal clase( peromuestra clases tales como #rithmetic"p( #ttach"p y $tring"p( cada una de lascuales tiene un m1todo 2ompute y es de echo una subclasede rimiti!e"p( rimiti!e"p es una superclase@ este nunca es llamada en laejecución del programa. #ero este es la llamada a rimiti!e"p "ue se muestracuando se ejecuta el etractor estático. #ara tener una !ista eacta de laar"uitectura( las !istas estáticas y dinámicas de rimiti!e"p deben sercompaginadas.

    'a siguiente $gura muestra los ítems "ue deben ser agregados a la !istafusionada y a"uellos "ue deben ser remo!idos desde la !ista fusionada.

      Despe7ando la amBigEedad de las funciones llamadas/

    En una aplicación multi procesos( es muy probable "ue ocurra cho"ue denombres. #or ejemplo( !arios de los procesos pueden tener un procedimiento

    llamada main al cual pueden llamar. Es importante identi$car y eliminar laambig_edad de esas colisiones de nombres dentro de las !istas etraídas. 3tra!ez( por medio de la fusión de información "ue puede ser etraída fácilmente(podremos remo!er las ambig_edades potenciales. En este caso( necesitamosfusionar las !istas estáticas con una !ista "ue contenga archi!os/funciones 9paradeterminar cuales funciones están de$nidos en cuales archi!os; y con una !istade dependencias 9para determinar "ue archi!os están compilados junto a losejecutables producidos;. 'a fusión de estas tres fuentes de información hace alos nombres de procedimientos( m1todos y otros elementos nombrados(permitiendo entonces ser referidos sin ambig_edad en el proceso de

    reconstrucción de la ar"uitectura. Sin la fusión de !istas( la colisión de nombrespuede persistir( y los resultados de la reconstrucción pueden ser ambiguos.

    '/2/2/' Composicin de 8istas ar(uitectnicas/

    'a fase de composición de !istas ar"uitectónicas consiste en dos áreas deacti!idad principales%

  • 8/18/2019 Reing Soft

    41/55

    A isualización e interacción.

    A e$nición de scripts de comandos e interpretación.

    'as áreas de !isualización e interacción proporcionan un mecanismo "ue permiteal usuario !isualizar( eplorar y manipular !istas interacti!amente. El

    componente ?7ggregator? de 7R,*T es usado para presentar !istas al usuariocomo una grá$ca de descomposición jerár"uica 5Oong G6. >na presentaciónejemplo de una !ista ar"uitectónica es mostrada en la $gura .L. >sando el7ggregator( el usuario puede !er !istas en una !ariedad de estilos de dise:osincluyendo jerár"uicos( espiral y ortogonal.

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    'a de$nición de scripts de comandos y la interpretación proporcionan facilidadespara la abstracción de información de bajo ni!el para generar !istasar"uitectónicas. 'os scripts de comandos facilitan al usuario para escribir scripts

    para construir mejores !istas abstractas desde !istas más detalladas por mediode la identi$cación de agregación de elementos. 'os scripts 7R,*T son escritosusando el 7R' y cual"uier editor( y son cargados dentro de 7R,*T.

    'a reconstrucción ar"uitectónica no es un proceso directo. 'a construcciónar"uitectónica no es representada eplícitamente en el código fuente( lo "uehace "ue la reconstrucción sea especialmente difícil. 7dicionalmente( laconstrucción ar"uitectónica es realizada por una di!ersidad de mecanismos enuna implementación. >sualmente estos son colecciones de funciones( clases(archi!os( objetos y demás. 2uando un sistema es inicialmente desarrollado( loselementos de la ar"uitectura/dise:o de alto ni!el son mapeados para la

    implementación de elementos. #or consiguiente( cuando los elementosar"uitectónicos son ?reconstruidos?( se aplica un mapeo a la in!ersa.

    'a reconstrucción ar"uitectónica es un proceso interpretati!o( interacti!o eiterati!o( no un proceso automático. Este re"uiere la habilidad y atención tantode epertos en ingeniería in!ersa y ar"uitectos 9o algunos de los "ue tienen unconocimiento substancial de la ar"uitectura;. Basándose en los parámetrosar"uitectónicos "ue los epertos en la ar"uitectura pueden encontrar en elsistema( la ingeniería in!ersa puede construir !arios scripts de comandos usando7R,*T. Estos scripts resultan en una nue!a agregación "ue muestra !arias

    abstracciones o agrupamientos de elementos de bajo ni!el 9los cuales puedenser artefactos fuentes o abstracciones;. #or la interpretación de estas !istas y elanálisis de estos( es posible re$nar los scripts y agregaciones para producir!arias hipótesis de !istas ar"uitectónicas del sistema. Estas !istas pueden serinterpretadas( re$nadas o rechazadas. To eiste un criterio uni!ersal para esteproceso@ este está completo cuando la representación ar"uitectónica essu$ciente para apoyar el análisis necesario para los usuarios( entonces las metasde la reconstrucción pueden ser logradas.

  • 8/18/2019 Reing Soft

    42/55

    2onsideremos el subconjunto de elementos y relaciones mostradas en lasiguiente tabla%

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    En este ejemplo( las !ariables ?a? y ?b? están de$nidas en la función ?f?@ esto es(

    ellas son locales a ?f?. Esta información la podemos representar grá$camentecomo se muestra en la $gura .N.

    #ara !er el grá$co seleccione la opción ?escargar? del men0 superior

    'as !ariables locales no importan durante una reconstrucción de ar"uitecturapor"ue ellas proporcionan poca comprensión de la ar"uitectura del sistema. #orconsiguiente( instancias de !ariables locales pueden ser agregadas a la funciónen la cual ocurren. >n script tal como el "ue se muestra a continuación se puedeescribir para ese propósito.

    'a primer línea es un comentario el cual comienza con el signo de libra `. 'asegunda línea obtiene los descendientes de una función 9usando el comandodesc; = en este caso( !ariables locales. El comando desc regresa un arreglotridimens