Skip to content Skip to navigation

Connexions

You are here: Home » Content » Reingeniería con Netbeans

Navigation

Lenses

What is a lens?

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

This content is ...

In these lenses

  • Java display tagshide tags

    This module is included inLens: Hannes Hirzel's Java Lens
    By: Hannes Hirzel

    Click the "Java" link to see all content selected in this lens.

    Click the tag icon tag icon to display tags associated with this content.

Recently Viewed

This feature requires Javascript to be enabled.

Tags

(What is a tag?)

These tags come from the endorsement, affiliation, and other lenses that include this content.
 

Reingeniería con Netbeans

Module by: Miguel-Angel Sicilia. E-mail the authorEdited By: Verónica De la Morena

Summary: Descripción de cómo realizar Reingeniería con Netbeans.

La ingeniería inversa se ha definido como el proceso de construir especificaciones de un mayor nivel de abstracción partiendo del código fuente de un sistema software o cualquier otro producto (se puede utilizar como punto de partida cualquier otro elemento de diseño, etc.).

A continuación se detalle cómo realizar Ingeniería Inversa a través de NetBeans, para ello primero hay que tener instalado NetBeans 5.5.

Ejemplo práctico con Netbeans

Instalar NetBeans 5.5

En primer lugar tenemos que tener instalado NetBeans 5.5 (http://www.netbeans.org). De esta Web se puede descargar e instalar. Se puede instalar en diferentes idiomas.

A continuación debemos de comprobar si tenemos instalado o no el módulo UML Modelling1.

Para ello, primero hay que asegurarse de que no está ya instalado. Esto puede hacerse en la opción de menú “Herramientas|Gestor de módulos…”:

Figure 1
Figure 1 (Figura1.gif)

Figura 1. Módulos del Gestor de Módulos a través de la opción Herramientas

Una vez comprobado que el módulo de UMl no está instalado, utilizando el botón “Actualizar” y se podrán descargar actualizaciones disponibles.

Figure 2
Figure 2 (graphics2.png)

Figura 2. Instalar manualmente UML Modelling

Lo podemos encontrar para descargarlo en la Web e instalarlo manualmente en la siguiente dirección: http://www.linglom.com/downloads/uml-beta-nbms.zip

Una vez descargado el fichero, lo descomprimimos y tendríamos que agregarlos en la siguiente pantalla:

Figure 3
Figure 3 (graphics3.png)

Figura 3. Visión de los módulos a instalar del fichero zip descomprimido.

Figure 4
Figure 4 (graphics4.png)

Figura 4. Instalación de los módulos y verificación de la firma digital.

Figure 5
Figure 5 (graphics5.png)

Figura 5. Comprobación de los módulos instalados

Una vez instalado UML Modelling, volvemos a “Herramientas-Gestor de módulos” y lo comprobamos que está bien instalado.

Figure 6
Figure 6 (graphics6.png)

Figura 6. Comprobación de UML en el Gestor de módulos

Crear Diagrama de Uso con NetBeans 5.5

Creamos un nuevo proyecto, que denominamos UMLDemo. Para ello, vamos a: Archivo – Nuevo Proyecto:

Figure 7
Figure 7 (graphics7.png)

Figura 7. Realizamos un nuevo proyecto

Figure 8
Figure 8 (Figura8.gif)

Figura 8. El proyecto se va a denominar UMLDemo

Figure 9
Figure 9 (graphics9.png)

Figura 9. Seleccionamos el Diagrama de Caso de uso, cuyo nombre será UseCaseDiagram

Figure 10
Figure 10 (graphics10.png)

Figura 10. Pantalla Inicial para crear nuestro Diagrama de Caso de Uso

A continuación realizamos el siguiente diagrama de caso de uso:

Figure 11
Figure 11 (graphics11.png)

Figura 11. Ejemplo de un Diagrama de Caso de uso

Generar código con NetBeans 5.5

En nuestro ejemplo anterior (UMLDemo), vamos a realizar otro tipo de Diagrama, el Diagrama de clases.

Figure 12
Figure 12 (graphics12.png)

Figura 12. Crear Diagrama de clases

Y realizamos el siguiente diagrama, añadimos los atributos y operaciones:

Figure 13
Figure 13 (graphics13.png)

Figura 13. Ejemplo de Diagrama de clases

Creamos el proyecto, dónde vamos a generar el Código. A esto proyecto le vamos a llamar EjercicioCodigo:

Figure 14
Figure 14 (graphics14.png)

Figura 14. Crear proyecto Java

Figure 15
Figure 15 (graphics15.png)

Figura 15. Nombre del Proyecto

A continuación, en UMLDemo, botón derecho, Generamos Código (Generate Code…)

Figure 16
Figure 16 (graphics16.png)

Figura 16. Nombre del Proyecto

Figure 17
Figure 17 (graphics17.png)

Figura 17. Ubicación del Código que vamos a generar

Y el código que se genera en EjercicioCodigo es el siguiente:

Figure 18
Figure 18 (graphics18.png)

Figura 18. Código generado

Ingeniería Inversa con NetBeans 5.5

Vamos a realizar Ingeniería Inversa con NetBeans. Para ello creamos el siguiente proyecto:

Figure 19
Figure 19 (graphics19.png)

Figura 19. Creamos Proyecto para Ingeniería Inversa cuyo nombre será UMLIngenieriaInversa

Figure 20
Figure 20 (graphics20.png)

Figura 20. En Java Project ponemos nuestro Código Java

Figure 21
Figure 21 (graphics21.png)

Figura 21. Estructura de nuestras carpetas

Seleccionamos nuestra carpeta DicomImage y botón derecho Create Diagram From Selected Elements

Figure 22
Figure 22 (graphics22.png)

Figura 22. Seleccionamos la opción

Figure 23
Figure 23 (graphics23.png)

Figura 23. Elegimos el diagrama de Clases

Y obtenemos nuestro Diagrama de Clase.

Figure 24
Figure 24 (graphics24.png)

Figura 24. Realización de la Ingeniería Inversa

Ejemplo práctico de Reingeniería del Software

Un ejemplo sencillo para poder dar un panorama de lo que se trata reingeniería de software sería un sistema de un mini súper.

En este sistema se tienen:

  • Bases de datos de los productos: en la cual viene toda la información de los productos en diferentes campos como precio de compra, precio de venta, descripción (nombre, marca, tipo, etc.), descuentos, inventario ,proveedor, clasificación, etc. Con 200 registros.
  • Bases de datos de los trabajadores: aquí también existen diferentes campos por cada registro como salario, horario, descripción (nombre, dirección, teléfono, antigüedad, etc.), puesto, etc, con 20 registros.

Al paso del tiempo este sistema se ha ido modificando debido a que las demandas de la tienda fueron cambiando. Se modificaron elementos como: la creación de una base de datos especial para proveedores la cual tenía interacción con la de productos; se contrataron varias empresas de recursos humanos para la reclutación de su personal, por lo tanto se creó un registro de estas y se hizo una interacción entre estas con los trabajadores; como había descuentos especiales en los productos para los trabajadores se hizo una interacción de la base de datos de trabajadores con la de productos. Aumentaron los trabajadores de 20 a 120, y los productos de 200 a 500.

Todas estas modificaciones se hicieron como se fue requiriendo, y por lo tanto solo se crearon parches en el sistema, lo que hizo que el sistema: se fuera alentando cada vez más, no tuviera una buena presentación, no fuera fácil su mantenimiento, etc.

Por lo tanto se tenía que modificar totalmente el sistema para una mejor manutención para lo cual utilizamos la reingeniería de software, ya que con esto no tendríamos que reconstruir el software totalmente sino que podíamos utilizarlo como base para la construcción de un software con reingeniería.

En primer lugar se decide traducir el código a una versión más actualizada del mismo lenguaje, esto con el fin de que nuestro programa sea más versátil, para esto se utilizo una herramienta para que la traducción se hiciera de manera automática. Utilizamos las herramientas de ingeniería inversa para poder extraer toda la información posible del software inicial para obtener el diseño del nuevo sistema, el cual tiene que tener las mismas funciones del anterior con la misma interfaz. Con el nuevo diseño y el código fuente, ya traducido a un lenguaje adecuado, se empezó a reestructurar el programa para que la rapidez en sus funciones fuera óptima, para esto se necesitaba que existiera una buena modulación y así se empezó a establecer módulos de los pequeños programas que se interrelacionaran, para conseguir tener varios módulos con fines similares, ya estando bien la modulación sería más fácil poder implantar una estructura adecuada. Finalmente se hizo la depuración de los datos, creando una base de datos general con apuntadores a datos, con una buena clasificación e interacción entre estos. Al relacionar los programas con nuestra base de datos generada tendremos como resultado un nuevo sistema creado con reingeniería el cual va a ser más rápido, más mantenible, actualizado, y con capacidad de crecimiento sin estropear la arquitectura original.

Con esto tendremos una optimización de costes y eficiencia.

Footnotes

  1. UML Modeling: Reverse Engineering Java Applications. Netbeans. Disponible en: http://www.netbeans.org/kb/55/uml-re.html.

Content actions

Download module as:

PDF | EPUB (?)

What is an EPUB file?

EPUB is an electronic book format that can be read on a variety of mobile devices.

Downloading to a reading device

For detailed instructions on how to download this content's EPUB to your specific device, click the "(?)" link.

| More downloads ...

Add module to:

My Favorites (?)

'My Favorites' is a special kind of lens which you can use to bookmark modules and collections. 'My Favorites' can only be seen by you, and collections saved in 'My Favorites' can remember the last module you were on. You need an account to use 'My Favorites'.

| A lens I own (?)

Definition of a lens

Lenses

A lens is a custom view of the content in the repository. You can think of it as a fancy kind of list that will let you see content through the eyes of organizations and people you trust.

What is in a lens?

Lens makers point to materials (modules and collections), creating a guide that includes their own comments and descriptive tags about the content.

Who can create a lens?

Any individual member, a community, or a respected organization.

What are tags? tag icon

Tags are descriptors added by lens makers to help label content, attaching a vocabulary that is meaningful in the context of the lens.

| External bookmarks