Ingeniería inversa en código C++
En lo que respecta a la ingeniería inversa, los proyectos en C++ suelen ser mucho más voluminosos que los proyectos 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 2026 son compatibles con Microsoft Visual C++ Compiler (la compatibilidad se refiere al dialecto de código usado en la fuente .cpp los archivos; para que el proyecto de Visual Studio sea compatible con la importación, debe haberse guardado con versiones de Visual Studio comprendidas entre Visual Studio 2010 y Visual Studio 2026).
Tenga en cuenta que:
•Si UModel detecta un tipo de datos desconocido durante la operación de importación, la ventana Mensajes muestra una advertencia y el tipo aparece en el modelo como int. Esto difiere de C# o Java, donde los tipos desconocidos se colocan en el paquete «Elementos externos desconocidos».
•Al importar código C++ a UModel, se añade automáticamente al proyecto un perfil integrado de UModel para C++. El perfil incluye los tipos de datos básicos (fundamentales) de 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 importado el código C++ a UModel, puede realizar modificaciones en él desde el modelo y, a continuación, aplicar dichos cambios de nuevo al código (ingeniería de ida y vuelta). Al igual que ocurre con otros lenguajes de ingeniería de código, la implementación del código fuente original (por ejemplo, los cuerpos de los métodos) permanece inalterada tras el proceso de ingeniería de ida y vuelta. No obstante, cualquier tipo de datos o nombre de miembro que haya modificado en el modelo (por ejemplo, clases a las que haya cambiado el nombre) se reflejará en el código. Para más información consulte Ejemplo: Generar código C++ y Sincronizar el modelo y el código fuente.