Ingeniería Inversa y Sincronización

Superior  Previo  Próximo

La Ingeniería Inversa en EA permite al usuario importar un código fuente ya existente desde una variedad de lenguajes de código en un modelo del UML. Las estructuras de código fuente ya existentes serán asignadas en las representaciones, por ejemplo una clase de Java será asignada en un elemento de clase del UML con las variables siendo definidas como los atributos, métodos que son modelados como operaciones y las interacciones entre las clases de Java que se muestran en el diagrama de clase del modelo del UML con los conectores apropiados.  

 

La Ingeniería Inversa permite a los usuarios examinar código legacy y examinar la funcionalidad de las bibliotecas de código para ser reusadas o para actualizar el modelo del UML con el código que ha sido desarrollado como parte de un proceso llamado sincronización. Examinar el código en un modelo de UML permite al usuario identificar los módulos críticos contenidos en el código, permitiendo un punto de inicio para el entendimiento del negocio y los requerimientos del sistema preexistente y permitir a los desarrolladores lograr un mejor entendimiento global del código fuente.  

 

Para comenzar el proceso de importar un código existente en EA, un código existente necesita ser importado en EA, el cual puede ser un solo directorio o una estructura de directorio. Varias opciones están disponibles cuando se realiza el proceso de ingeniería inversa. La página opciones de Ingeniería de Código Fuente contiene varias opciones que afectan al proceso de ingeniería revesa. Estas incluyen:

Si se realiza ingeniería inversa de los comentarios en los campo de notas, y como se realiza el formato de las mismas.
Como se reconocen los métodos de la propiedad.
Si se deben crear las dependencias para el retorno de la operación y los tipos de parámetros.  

 

Es importante tener en cuenta que cuando un sistema legacy ha sido diseñado pobremente que simplemente importar el código en EA no creará un modelo del UML fácil de entender. Cuando se trabaja con un sistema legacy que ha sido pobremente diseñado es útil fracturar el código en componentes manejables examinando los elementos de código en una base de "per element". Esto se puede lograr importando una clase de interés especifico en un diagrama y luego insertar los elementos relacionados en un nivel para determinar las relaciones inmediatas a otras clases. Desde este punto es posible crear casos de uso que identifican la interacción entre las clases legacy permitiendo una apreciación global de la operación de sistemas legacy

 

La propiedad de Copyright es un tema importante para tener en cuenta cuando se emprende el proceso de ingeniería inversa. En algunos casos, el software tendrá limitaciones especificas que prohiben el proceso de ingeniería inversa, es importante que el usuario gestione el tema de Copyright antes de comenzar el proceso de ingeniería inversa del código. A continuación se mencionan algunas situaciones sobre las que se puede realizar ingeniería inversa de código fuente:

Código fuente que ya ha desarrollado.
Código fuente que es parte de una biblioteca de terceras partes para la cual ha obtenido permiso para usar.
Parte de un esquema que su organización usa.
Código que esta siendo desarrollado diariamente por sus desarrolladores.

 

Enterprise Architect actualmente soporta ingeniería inversa en los siguientes lenguajes de programación.

Actionscript
C++
C#
Delphi
Java
PHP
Python
Visual Basic
Visual Basic .NET

 

Enterprise Architect también puede realizar ingeniería inversa de ciertos tipos de archivos binarios: archivos Java .jar y archivos .NET PE. Ver Importar Modulo Binario para obtener más información.

 

Tenga en cuenta: Realizar ingeniería inversa de otros lenguajes incluyendo CORBA IDL esta actualmente disponible a través del uso de tecnologías MDG desde www.sparxsystems.com.au/resources/mdg_tech/.