Hot Topics

The following are frequently requested or high priority new features for ArgoUML. They have all been discussed fairly recently on the developer mailing list, and are considered important features. Some are already being worked on and are expected to be complete in future releases of ArgoUML. You can express your interest in these features by voting for them in the issue tracker (hint: multiple votes are allowed).

From UML 1.4 to UML 2.2
ArgoUML is based on UML 1.4 (implemented using Netbeans Model Data Repository, MDR). Implementation of UML 2.x support began as part of the Google Summer of Code in 2007, but is not yet complete. What we achieved on top of that: we have a model subsystem implementation, called "eUML", it's based on Eclipse's UML2 library which implements UML 2.2 specification. And: we have a first developer release (0.29.1) that allows working with both (the old MDR and the new eUML) model subsystems!

For actual information, there's a page in the developer wiki: http://argouml.tigris.org/wiki/UML_2.x_support

Team Support, Collaborative Modeling
UML models are often developed and maintained by more than a single person. It is required to both read and modify models in a safe and convenient way by many people. See issue 3497 for a discussion about that topic.

An important step for consistent team modeling is made by ArgoUML 0.26 by implementing a Profile Configuration.

Undo/Redo
ArgoUML does not currently implement an Undo/Redo mechanism. This has been one of the most requested feature for ArgoUML and implementation work has begun, but it is not yet at a usable state. The biggest issue is the handling of model element deletion (due to the limitations of the currently used UML repository MDR). To vote for this feature or track its progress, please see issue 1834 in our bug database.

Merging Projects
There is currently (v0.26) no good way to merge project files. Issue 3497 addresses the need for being able to reuse models in different contexts. The same underlying machinery that was put in place for Profile Configuration will be used for this, but everything is not in place yet. There is also an open feature request for an Import function (citation?) to allow one project to be imported permanently into another.

Right now the options are:

1. Use one project as a "profile" and reference it from the other project. The profile project will be read-only in the context of the other project and it won't be possible to include any diagrams from it (it's the model information from the XMI file only).

2. Merge the projects by hand. This is tedious, but possible. Before doing anything, create backups of your files, then do the following:


 * Unjar (or unzip) both projects into separate directories
 * Copy the .pgml files (diagrams) from one project into the other
 * Edit the target .argo file to include references to the new diagrams
 * Edit the target .xmi file and include the model information from the source .xmi file (basically copy everything inside the top level UML:Model element)
 * Repack everything in the target project using jar or zip

Before attempting this, one should make sure that the xmi.id values are unique for each file. One case where they might not be is if a project is created by cloning another. These values are used for all crossreferencing, so the UML library will complain bitterly if they are duplicated and refuse to load the combined XMI file.

Copy & Paste
Copying elements around is restricted to the dragging of model elements to arbitrary many diagrams. There's no support for the common Ctrl-C Ctrl-X Ctrl-V editing facilities. This well-known issue is discussed here: http://argouml.tigris.org/issues/show_bug.cgi?id=808

However, for a special case there is a manual solution: Cloning a Project Subtree is the description of how the .zargo project file can be manipulated to have a part of the project copied several times.