Please enable JavaScript to view this site.

Altova UModel 2020 Enterprise Edition

Existing Java, C#,C++, and VB.NET program code can be imported into UModel (a process also known as "reverse engineering"). The following project types can be imported into UModel:


Java projects (Eclipse .project files, NetBeans project.xml files, and JBuilder .jpx files)

C# and VB.NET projects (Visual Studio .sln, .csproj, .csdprj, .vbproj, .vbp as well as Borland .bdsproj project files)

C++98, C++11, C++14, C++17 projects (this includes Visual Studio .vcxproj and .sln project files created with Visual Studio 2010, 2012, 2013, 2015, 2017, and 2019).


In addition to importing source code from a source project, it is also possible to import code from a source directory. Importing from a source directory works in a similar way, and is particularly useful when your code doesn't use any of the project types listed above. For an example of importing a source directory, see Reverse Engineering (from Code to Model).


It is possible to import source code either into a new, empty UModel project or into an existing UModel project. During the import, you can specify whether the imported elements should overwrite those in the model (if any), or be merged into the model. Optionally, Class and Package diagrams can be generated automatically as you import code.


The import wizard includes various import options specific to each platform (Java, .NET, C++). For example, if the imported Java/C#/VB.NET code contains comments, these can be optionally converted to UModel documentation. For a complete list of options, see Code Import Options .


Once your C++, C#, VB.NET, or Java code has been imported into UModel, it is possible to modify the model (for example, add new classes, or rename properties and operations), and optionally synchronize it back with the original code, thus achieving full round-trip engineering, see Synchronizing the Model and Source Code.



UModel includes several built-in sub-projects that were created specifically for code engineering and which include the data types applicable to each supported language and platform. Before attempting to import source code into a UModel project, it is recommended to include the built-in UModel subproject applicable to the corresponding programming language and platform, see Including Subprojects. Otherwise, certain data types will not be recognized and will be placed after import into a separate package called "Unknown externals".



To include a subproject with the required language data types:

1.On the Project menu, click Include Subproject.

2.Click the tab applicable to the source language and platform (for example, Java 8.0, C# 6.0, VB 9.0), and then click OK.


Note the following:


When you include a data type subproject for a particular language, UModel also automatically adds the profile of that language to your project. The profile subproject (.ump) contains only the most basic types and is different from the data type subproject (also .ump) which contains more extensive type definitions.

If you perform the import without including a data type subproject, the import operation will take place nonetheless, and UModel will also automatically include the profile of that language to the project. However, any unknown types will be placed into "Unknown externals" package. To solve this, make sure to include the data types subproject for the required language and platform, as explained above.

For C++, there is no subproject with all possible C++ data types from the Standard Template Library (STL). Instead, there is a C++ language profile with basic (fundamental) types. You can either add this subproject manually as shown above, or it is automatically added to the project when you import C++ code or when you right-click a package and select the context menu command Code Engineering | Set as C++ Namespace Root.


Importing source code from a project

1.On the Project menu, click Import Source Project. (Alternatively, if you would like to import code from an existing directory, select Import Source Directory.)

2.Select the language version of the source project (for example, Java 8.0, C# 6.0, or C++14).

3.Click Browse um_ic_browse1 and select the source project file.

4.Set or change the required import options, see also Code Import Options (note that these options depend on the language selected in step 2).

5.Click Finish to complete the wizard.


For a step-by-step example, see Example: Import a C# Project.

© 2019 Altova GmbH