UML Model Exchange via XMI

UModel supports import and export of models as industry standard XMI files for maximum UML compatibility. UModel supports the latest XMI version – XMI 2.4 – both to import XMI files describing UML models created in other applications and to export UModel projects.

Support for industry-standard XMI import and export creates opportunities to extend the benefits of UML in large development teams. You can add copies of UModel to work alongside – or even to replace – higher-priced and cumbersome legacy UML tools. Team members can also employ XMI export to share UModel projects with specialized UML add-ons such as model execution and debugging tools that are not required by the entire project team.

XMI 2.4 supports the latest UML 2.4 standard and also provides backward compatibility with UML 2.0, UML 2.1, UML 2.2 and UML 2.3. UModel can import XMI files that describe models in any UML 2 version.

Working with XMI Files

Successful import of an XMI file into UModel creates a new UML project, with each element fully editable exactly as if the project had been originally created in UModel. You can open diagrams to display content or relationships.

XMI Model Interchange with Altova UModel

You can also add new functionality or modify existing features, then generate code or export the updated project as XMI again.

Source Control Support

UModel includes full support for source control systems, since source control systems are a critical tool to maintain the integrity of a software development project.

Source Control Support in Altova UModel

UModel project files and source code files created or modified by UModel can be checked out and checked in again directly through the UModel file interface and the code generation interface. During subsequent code generation, only source code files that are actually changed are checked out.

The UModel Source Control menu selection offers access to source control functionality, including options to get the latest version, check files out and in, or view a record of source control check-in events.

Click here for a complete list of source control systems supported by UModel and other Altova tools.

Integration with Eclipse and Microsoft® Visual Studio®

UModel support for integration with the Eclipse and Visual Studio allows you to view and seamlessly switch between your UML software model and source-code editing windows in the same application development environment where you develop software projects.

In either development environment, automatic, real-time synchronization between the UModel project and your source code lets you refer to and work in either the UML software model or the source code editor, confident that both display the up to date project status. Any change you make in one window is immediately reflected in the other.

Additionally, UModel Enterprise Edition includes version control system support when integrated with Eclipse or Visual Studio, using the IDE's built-in support for version control.

UModel supports integration with Eclipse versions 4.3, 4.4, 4.5, and 4.6, and Visual Studio 2017, Visual Studio 2015, Visual Studio 2013, Visual Studio 2010, Visual Studio 2008, or Visual Studio 2005. The UModel Eclipse and Visual Studio integration modules are available free-of-charge for both the UModel Enterprise Edition and UModel Professional Edition at the UModel download page.

UModel Script Editor

UModel includes an integrated scripting environment and forms editor that empowers you to adapt UModel to your team’s development style. The scripting environment can help you accelerate productivity by customizing UModel functionality and automating repeated operations.

Automate Altova UModel with Custom Scripts

Harness the UModel scripting environment to automate a series of operations, write and save macros, create custom menus and pop-up forms, or create event handlers that define custom responses to application events.

The scripting environment and forms editor utilizes the Microsoft® .NET Framework and supports versions 2.0 - 4.0. Numerous .NET assemblies are included by default, and you can add others you may require. The scripting editor also supports JScript and VBScript, and includes an interactive form editor, and macro testing and debugging functionality.

UModel Application Programming Interface (API)

UModel includes support for a high level automation interface and a low level API that gives direct access to application functionality and the UML data tree.

The UModel Application Programming Interface (API) includes full support for programmers who want to remotely access UModel functionality and manipulate UModel projects. The UModel COM-based API and Java-based API both allow complete automated control of UModel and manipulation of UML data structures, classes, interfaces, and diagrams. For example, an external application could launch UModel, then open a UModel project and highlight elements within UML diagrams to provide a visual tracing system that simulates execution of the target application.

The automation API also allows UModel to be manipulated externally to update a UML model, re-generate code, or reverse engineer existing code in response to external events. The API allows users to write UModel plug-ins to add special functionality, with custom windows and dialog boxes, that can be installed in UModel via the Customize menu. The API also allows manipulation of UModel via external scripts, for instance to open UModel at a particular time, then reverse engineer a source code library, and create HTML documentation of a project.

Model Driven Architecture

UModel supports Model Driven Architecture (MDA) through platform-independent models and a Model Transformation selection in the Project menu that transforms all code relevant modeling elements to and from C#, Visual Basic, Java, databases, and XSD.

Model Driven Architecture in Altova UModel

Model Driven Architecture is a set of standards and methods for applying the UML (Unified Modeling Language) administered by the Object Management Group. In Model Driven Architecture, the UML model of a software project is a platform independent model (PIM) that can be fully described without concern for the details of any specific programming language. This development strategy allows software architects and other developers to focus exclusively on logic required by the subject domain, rather than characteristics of any programming language.

A Model Driven Architecture approach to software engineering with platform independent models provides two primary advantages: during the design phase, developers do not need to be concerned with the details and variations between software languages, or an existing UModel project can be transformed from one source code language to another. For instance, a UML model for a C# application can become a Java or Visual Basic project.

Model Transformation can even be applied to projects that are reverse engineered from existing source code. For instance, an existing Java application can be reverse-engineered by UModel then transformed to generate Visual Basic classes, and many other possibilities are available.

During model transformation, UModel maps data types from the source to the target to accommodate differences between languages. The Type Mapping dialog lets you review or even edit type mapping pairs. UModel also automatically adds the target language profile to the transformed project.

Persistent Transformation Parameters

The transformation paradigm extends to updating existing transformations and merging the updates into the specified target models. Transformation parameters are stored in a Model Transformation Profile in the modelThe Transformation Profile can be set to run transformations automatically before forward engineering code generation, and/or after reverse engineering, to update elements for one target language based on changes to model elements for another.

This functionality lets UModel automate much of the maintenance of multiple source code languages as a cross-platform model evolves.

Teamwork Support

UModel includes features to assist teams working together to successfully model large projects. The graphical communication benefits of UML software modeling multiply when more developers work on a project, as the visual representation of subprojects enhances communication across the development team.

UModel supports teams working on large projects by allowing projects to be split up into multiple subprojects. Individual developers may simultaneously edit different parts of a single model, and each subproject can be individually added to a source control system. The top-level project, i.e., the project from which the subprojects are organized, is the main project. Subprojects are UML packages saved as individual UModel project files and have a *.ump extension.

An existing project can be split into subprojects as it grows and more developers are assigned. Or, independent teams may initiate new UModel project files that can later be combined as subprojects under a new main project.

UModel lets you organize subprojects without imposing any rigid development style. Based on the preferences of your own team, you can: organize subprojects as siblings on a flat level, organize subprojects hierarchically – a subproject can have its own subprojects through nesting, or you can assign each subproject as editable within the main project, or as read-only from within the main project.

During code generation or when updating the model from code, all subprojects are processed – there is no difference between a single project file or one that consists of multiple editable subprojects.

3-way Project Merge

If team members make independent changes in copies of the same project file, or to combine project files, UModel project merge functionality lets you combine the changes into a single result.

Teamwork Support in Altova UModel

Subproject Documentation

The UModel Generate Documentation feature allows users to optionally include subprojects in generated documentation, offering flexibility for individual developers to generate documentation for their own subprojects, and for project managers to automatically generate documentation for the full application.