Ingeniería inversa en código C++
Al aplicar ingeniería inversa, los proyectos en C++ tienen un tamaño mucho mayor que los escritos en Java, C#, o VB.NET. En general se recomienda usar la función de ingeniería inversa para proyectos en C++ que sean pequeños o de tamaño mediano. Para proyectos en C++ grandes, la operación de importación podría tardar mucho (15 minutos o más).
Para importar proyectos en C++ a UModel, use el comando de menú Proyecto | Importar proyecto de código fuente.
Para importar proyectos en C++ escritos en un entorno de desarrollo integrado que no sea Visual Studio, use el comando de menú Proyecto | Importar directorio de código fuente en lugar de Proyecto | Importar proyecto de código fuente. Para esos proyectos debe indicar las directivas de preprocesador, las rutas y la configuración del compilador del cuadro de diálogo de importación (véase Opciones de importación de código).
Los directorios que se deben incluir para que se analicen se pueden definir a nivel del proyecto, desde Opciones de importación de código, o de forma global. Para añadir directorios de forma global, configure la variable de entorno UMODEL_CPP_INCLUDE como lista de directorios separados por punto y coma ( ; ). Por ejemplo, puede añadir la ruta "C:\example\include" como sigue:
1.Abra el Panel de control y comience a teclear "variables de entorno" en el campo de búsqueda.
2.Haga clic en Editar las variables de entorno del sistema.
3.Haga clic en Variables del entorno.
4.Haga clic en Nueva y añada una nueva variable llamada UMODEL_CPP_INCLUDE y el valor C:\example\include
5.Haga clic en Aceptar para cerrar todos los cuadros de diálogo.
6.Reinicie UModel.
Para proyectos en C++ escritos con Visual Studio, las directivas de preprocesador y las rutas se detectan automáticamente desde los archivos .vcproj. Las ediciones Visual Studio 6.0 a Visual Studio 2019 son compatibles con Microsoft Visual C++ Compiler (la compatibilidad se refiere al dialecto de código usado en la fuente .cpp los archivos; debe guardar su proyecto de Visual Studio como Visual Studio 2010, 2012, 2013, 2015, 2017 y 2019 para que se pueda importar).
Tenga en cuenta que:
•Si UModel encuentra un tipo de datos desconocido durante el proceso de importación, la ventana Mensajes mostrará advertencias y el tipo de datos aparecerá en el modelo como int. Esto no ocurre en C# o Java, donde los tipos de datos desconocidos se colocan en el paquete "Elementos externos desconocidos".
•Cuando importa código C++ a UModel se añade automáticamente al proyecto un perfil para C++ integrado en UModel. El perfil incluye los tipos de datos básicos (fundamentales) para C++ y los estereotipos necesarios para la ingeniería de código, y es similar a los perfiles disponibles para otros lenguajes.
La compatibilidad con atributos C++ es limitada. Solo se reconocen los atributos integrados como [[noreturn]], [[carries_dependency]], [[deprecated]]. Los atributos personalizados (definidos por e usuario) se ignorarán.
Una vez que el código se ha importado a UModel, puede modificarlo desde el modelo y luego propagar los cambios al código (ingeniería de ida y vuelta). Como con otros lenguajes de ingeniería de código, la implementación del código fuente original (por ejemplo, cuerpos de método) no cambia después de aplicar ingeniería de ida y vuelta. Sin embargo, cualquier tipo de datos o nombres de miembros que haya cambiado en el modelo (por ejemplo, clases renombradas) se reflejarán en el código. Para obtener más información, consulte Ejemplo: generar código C++ y Sincronizar el modelo y el código fuente.