Este documento describe el proceso de ingeniería inversa y reingeniería de software. La ingeniería inversa implica analizar un sistema existente para crear una representación de alto nivel, mientras que la reingeniería busca entender y mejorar un sistema existente. Ambos procesos involucran identificar casos de uso, relacionarlos con el código fuente, y generar un grafo que conecta todos los artefactos del sistema.
0 calificaciones0% encontró este documento útil (0 votos)
198 vistas12 páginas
Este documento describe el proceso de ingeniería inversa y reingeniería de software. La ingeniería inversa implica analizar un sistema existente para crear una representación de alto nivel, mientras que la reingeniería busca entender y mejorar un sistema existente. Ambos procesos involucran identificar casos de uso, relacionarlos con el código fuente, y generar un grafo que conecta todos los artefactos del sistema.
Este documento describe el proceso de ingeniería inversa y reingeniería de software. La ingeniería inversa implica analizar un sistema existente para crear una representación de alto nivel, mientras que la reingeniería busca entender y mejorar un sistema existente. Ambos procesos involucran identificar casos de uso, relacionarlos con el código fuente, y generar un grafo que conecta todos los artefactos del sistema.
Este documento describe el proceso de ingeniería inversa y reingeniería de software. La ingeniería inversa implica analizar un sistema existente para crear una representación de alto nivel, mientras que la reingeniería busca entender y mejorar un sistema existente. Ambos procesos involucran identificar casos de uso, relacionarlos con el código fuente, y generar un grafo que conecta todos los artefactos del sistema.
Descargue como DOC, PDF, TXT o lea en línea desde Scribd
Descargar como doc, pdf o txt
Está en la página 1de 12
Introduccin.
Uso de la ingeniera inversa en el desarrollo de software.
La ingeniera inversa es el proceso de analizar un sistema para crear una representacin del mismo, pero a un nivel ms elevado de abstraccin. La ingeniera inversa es un proceso que recorre hacia atrs el ciclo de desarrollo de software. Es posible iniciar el proceso de abstraccin a partir del cdigo fuente y llegar hasta la fase de anlisis, lo cual representa un fluo inverso. En la prctica, e!isten dos tipos de ingeniera inversa ". #asado en el cdigo fuente$ El cdigo fuente est disponible% sin embargo, aspectos de ms alto nivel no son conocidos, e!iste una documentacin pobre o e!iste documentacin, pero no corresponde, por eemplo, en t&rminos de actualizacin. '. #asado en el programa eecutable$ (o e!iste cdigo fuente disponible, as que los esfuerzos se concentran en descubrir el correspondiente cdigo fuente. El principal enfoque que se le ha dado a la reingeniera es hacia las actividades de mantenimiento. En el conte!to de mantenimiento, los obetivos de la reingeniera son$ predecir, corregir, perfeccionar y adaptar. )tros usos que se la han dado a la reingeniera son$ logro de los atributos de calidad, logro de obetivos de los requerimientos, optimizacin de la arquitectura, dise*o de patrones, y optimizacin del desempe*o bao m+ltiples criterios. La reingeniera ha sido utilizada en los diferentes paradigmas de desarrollo, tales como$ orientado a obetos, orientado a obetivos, orientado a agentes, y orientado a aspectos. ESTRATEGIAS PARA IMPLEMETAR LA IGEIER!A I"ERSA # LA REIGIER!A El obetivo de hacer ingeniera inversa es generar una documentacin del sistema que permita tratamientos futuros, tales como un incremento de funcionalidad, lo cual representa e!tender el tiempo de vida del mismo. ,ebido a que el obetivo es aumentar la funcionalidad, entonces lo ms conveniente es construir un modelo de casos de uso a partir del cdigo fuente. En un sistema no documentado, los casos de uso pueden ser identificados en el cdigo fuente, o a trav&s de la interfaz grfica de usuario. El modelo construido aparentemente se queda en una sola vista de la arquitectura. La estrategia que se propone est basada en la identificacin de casos de uso y la construccin de un grafo de relaciones que conecta los casos de uso con el cdigo fuente. ,e esta forma se tendr una combinacin de la vista conceptual y la vista de implementacin, teniendo la posibilidad de ir de la vista de casos de uso hacia atrs a los requerimientos, lo mismo hacia delante a las vistas lgica y de proceso% esto con el fin de completar todas las vistas de la arquitectura.
El procedimiento recomendado para hacer la ingeniera inversa a trav&s de la -./ y en forma manual es$ ". /dentificacin de casos de uso en la -./. '. /dentificacin de las relaciones entre casos de uso. 0. 1onstruir un grafo con los casos de uso y sus relaciones. 2. Localizacin de los archivos de cdigo fuente correspondientes a los casos de uso y las entidades de cdigo fuente derivadas. 3gregar estos artefactos al grafo. 4. /dentificacin de las relaciones entre las entidades de cdigo fuente. 1onectar los artefactos de cdigo fuente entre ellos y conectarlos con el nivel anterior del grafo. 5. -eneracin de la versin final del grafo de relaciones. M en C Alejandro Cifuentes A. Pgina 1 6i no se dispone de cdigo eecutable, la ingeniera inversa se realiza a partir del cdigo fuente, para lo cual se utiliza un procedimiento parecido al anterior.
El $roceso de reingeniera El obetivo de hacer reingeniera es entender un sistema de software e!istente, a nivel de especificaciones, dise*o e implementacin% esto con el fin de hacer una re7implementacin para aumentar y8o meorar la funcionalidad del sistema, el desempe*o o la misma implementacin. El proceso de reingeniera est orientado a sistemas que cuentan con cierto nivel de documentacin. La documentacin del sistema est integrada por el siguiente conunto de artefactos$ documento de requerimientos, descripcin de casos de uso, prototipos de la interfaz de usuario por caso de uso, diagramas de casos de uso, diagramas de secuencia, diagramas de colaboracin, clases, diagramas de clases, archivos de cdigo fuente, archivos de cdigo eecutable y grafo de relaciones entre artefactos. El procedimiento recomendado para realizar la reingeniera es el siguiente$ ". Evaluar la cantidad de funcionalidad e!presada en los casos de uso. '. /dentificar la funcionalidad nueva. 0. ,efinir los nuevos casos de uso. 2. 9acer ingeniera hacia delante a partir de los casos de uso, completando el grafo de relaciones. 4. -eneracin de la versin final del grafo de relaciones. #ao este enfoque, incluso se pueden realizar incrementos o austes al cdigo fuente, o se puede generar cdigo fuente nuevo tratando de optimizar la funcionalidad. La arquitectura completa del sistema se e!presa mediante el grafo de relaciones que conecta los casos de uso con el cdigo fuente, pasando por los dems artefactos del modelado, teniendo tambi&n la posibilidad de llegar hacia atrs a los requerimientos. 1abe mencionar que el grafo se va completando a partir del paso 0. %esarrollo. Parte I. ". ,escarga de (etbeans de :ava. En el sitio de (etbeans$ http$88www.netbeans.org se puede descargar el :,;5 y (etbeans<. '. ,escarga del plug7in de .=L =odeling para (etbeans de :ava. :ava posee un mdulo para el desarrollo de /ngeniera /nversa con .=L =odeling, el cual est incluido en (etbeans como >everse Engineering :ava 3pplications y se encuentra disponible en$ http$88www.netbeans.org8?b8448uml7re.html @Ahttp$88www.netbeans.org8?b8448uml7re.htmlBC La descarga del plug7in se hace desde la .>L$ http$88dlc.sun.com.edgesuite.net8netbeans85.D8rc8start.h tmlEfilenameFzip8moduleclusters8netbeans75.Drc'7 'G"GG5G"G"G07ml7uml.zip M en C Alejandro Cifuentes A. Pgina 2 3. 3l ingresar al sitio directamente se presenta la siguiente ventana de descarga$ .na vez descargado el archivo, puede encontrarse en el escritorio por eemplo, se e!trae y se instala con una de las dos opciones siguientes$ )pcin "$ ,igitar clic derecho del mouse en el icono del instalador. 6e muestra el siguiente men+ con la ubicacin directa de instalacin. Este es el icono del instalador$ . El men+ de instalacin$ . )pcin '$ ,igitar doble clic del mouse en el icono. 6e muestran las opciones de instalacin y se selecciona la carpeta de (etbeans <.G #eta. 1on cualquiera de las dos opciones anteriores se instala automticamente, como se indica enseguida$ Parte II. 6e abre el /,E de (etbeans de :ava para iniciar el dise*o de un sistema. M en C Alejandro Cifuentes A. Pgina 3 1. En el men+ principal seleccionar File > new Project.... 2. En Choose Project > Categories se selecciona UML y en Projects se selecciona :ava Platform Model. 3. 6e le asigna un nombre. Hor eemplo, UMLDemo. 4. ,el men+ principal File > new File, se selecciona UMLDemo para crear un nuevo diagrama. 6e selecciona Use Case Diagram. M en C Alejandro Cifuentes A. Pgina 4 4. La apariencia general del /,E debe mostrarse en forma similar a la siguiente imagen. 6. En el lado izquierdo en Projects se muestra el icono de UMLDemo. 7. I se puede desplegar su contenido seleccionando su smbolo &. Parte III. En el lado derecho de la ventana aparece la paleta de componentes , cuyos smbolos se pueden arrastrar y pegar en el rea central de trabao. 1ada componente tiene asociado un conunto de elementos o smbolos que se muestran al digitar un clic en &l. M en C Alejandro Cifuentes A. Pgina 5 Introduccin al dise'o. Para introducirse al dise'o( utili)ando los s*+olos anteriores( dise'ar el siguiente diagra*a, ". 1rear un nuevo archivo$ '. 6eleccionar la categora UML y tipo de archivo Diagram. 1lic en Next$ 0. 6eleccionar el diagrama de clase Class Diagram. 1lic en Finish$ 2. )bservar que en la parte izquierda de la pantalla aparece la estructura del proyecto$ 4. 6i se selecciona el elemento Class de la paleta y se le arrastra al centro, la apariencia general M en C Alejandro Cifuentes A. Pgina 6 del rea de trabao debe ser similar a la figura de abao$ 5. El componente 1lass posee tres partes$ El ttulo, los atributos y las operaciones. <. ,igitar doble clic sobre Unnamed para cambiar el nombre de la clase. La zona se marca en azul$ J. 6e ingresa el nombre, por eemplo DicomImage$ D. 1on clic derecho sobre el smbolo de la clase se muestra el siguiente men+ y se selecciona Create Attribte, para crear un atributo en la zona de atributos$ "G. La zona se marca en azul. M en C Alejandro Cifuentes A. Pgina 7 "". I con doble clic en el nombre del atributo se edita el nombre del atributo, por eemplo private int width=0$ "'. 6e muestra la actualizacin en el componente$ "0. 3hora, se ingresan las restantes modificaciones para obtener la apariencia siguiente del componente$ Enseguida se de+e crear una car$eta en la cual se al*acena todo lo relacionado a la creacin del cdigo. "2. 1rear un nuevo proyecto en el cual se va a generar el cdigo, seleccionando en categoras :ava y en proyectos !a"a Class Librar#. 1lic en Next$ "4. /ngresar el nombre del proyecto, por eemplo %jercicioCodigo. 1lic en Finish$ M en C Alejandro Cifuentes A. Pgina 8 "5. )bservar que se actualiza la carpeta de proyectos$ "<. 1on clic derecho seleccionar UMLDemo$ "J. En el men+ mostrado seleccionar &enerate Code'$ "D. En el men+ desplegable Karget Hroect seleccionar %jercicioCodigo$ En el rea central de trabao se muestra el cdigo y en la ventana inferior (t)t su descripcin. 1ada lnea de cdigo posee un n+mero de lnea y al inicio de ellas se indica un smbolo L o 7, digitar en ellos para mostrar su contenido o contraer el cdigo$ M en C Alejandro Cifuentes A. Pgina 9 Parte I". Ingeniera Inversa. 1. En el men+ principal seleccionar File > New Project$$$. 6eleccionar en categoras UML y en proyectos *e"erse %ngineered !a"a+ Platform Model$ M en C Alejandro Cifuentes A. Pgina 10 2. /ngresar el nombre del proyecto, por eemplo UMLIngenieriaIn"ersa. En el campo :ava Hroect seleccionar el cdigo ava, en este caso %jercicioCodigo. ,igitar en Finish$ 3. En la pesta*a de proyectos se muestra la carpeta UMLIngenieriaIn"ersa$ 4. ,igitar clic derecho en la carpeta DicomImage para mostrar el siguiente men+$ 5. 6eleccionando la opcin Create Diagram From ,elected %lements se muestra la siguiente ventana. 6eleccionar la opcin Class Diagram e ingresar el nombre del diagrama, por eempo IngenieriaIn"ersa. 1lic en Finish$ 6. En la figura inferior se muestra el diagrama de la clase$ M en C Alejandro Cifuentes A. Pgina 11 -TA, Generar un re$orte con un $ro.ecto individual si*ilar al de este e/ercicio. Incluir una +reve introduccin al te*a( desarrollo( i*0genes( conclusiones . +i+liografa. M en C Alejandro Cifuentes A. Pgina 12