The Modelio development team is pleased to announce the release of version 3 of Modelio. It will be released in June 2013. This version is a major evolution of Modelio, both functionally and technically.
New concept of « project »
In Modelio 2, a project was bound to a unique model repository (.ofp file). With Modelio 3, the concept of the « modeling project » has been completely overhauled: projects can be distributed within several repositories.
A Modelio 3 project groups a certain number of local or remote models.
Local models, or working models, can be edited by the user, while remote models, which are accessed by HTTP, are used to integrate models published by other contributors into the project. Model components, which already existed in Modelio 2, are still supported. They appear as local versioned libraries which cannot be edited.
In practical terms, this means that once the project configuration has been established, the different models are viewed as a single model in the model browser. They can be used transparently for modeling work.
As an illustration of this distribution capacity, during 2013, Modeliosoft will make available to the community a UML model publication site consisting of a certain number of libraries among the most commonly used in the Java world (for example, the JDK).
The workspace view now provides a page of information on the selected project. This page resumes the contents and configuration of the project in question.
Additional web pages, chosen by the user, can be associated with the project. These pages are then displayed in the workspace view at the same time as the project information page.
Such additional pages can be used, for example, to display the project's documentation, the list of anomalies to correct, the planning schedule, the state of builds or any other information that may be useful to the developer.
Configuring a project
The configuration of a project is now carried out in a dedicated GUI which groups together all project parameters:
• work models
• model components
• modules and their parameters
• project web pages
The model audit graphical interface has been enriched. It now allows audit results to be sorted by rule, element, severity or date.
A separate « Audit an element » command enables particular model elements to be checked, in order to produce a diagnostic for this element in particular.
The Modelio 3 model browser has been rewritten. Several model browsers can now be opened simultaneously.
The model browser shows the different models that make up the aggregated project.
The browser also indicates those model elements for which an audit result is currently available.
The element search function and the corresponding GUI have been improved.
A module catalog has been added to Modelio 3. The user can add modules to this catalog by installing .jmdac files. Modules added to the catalog in this way become available in the project configurator and can be added to projects.
Modelio 3 is now completely written in Java. For this, Modelio 2's C++ core has been entirely rewritten in Java, with several points being improved.
Support of «absent» objects
Absent objects are elements which are momentarily inaccessible but still known by their identifier and their type. In Modelio 2, this kind of situation prevented any operations on the model, including simple viewing.
In Modelio 3, absent objects are represented in simplified form (name, type icon) and therefore do not prevent the model from being used. Links modeled towards an « absent » object are retained where they would have been lost in Modelio 2.
When an « absent » object is re-established and becomes accessible once again, these links are automatically re-established in their complete definition.
This mechanism enables, for example, a Modelio 3 project open in the modeler to « survive » a network disconnection which deprives it of remote libraries and the elements they contain.
Modelio 3 is not based on an EMF implementation of its metamodel for reasons of efficiency. Modelio 3 completes its modeling API already available in Modelio 2 with the addition of an EMF-like API which respects naming conventions from accessors to model element properties.
An EMF-compatible meta API is provided (eGet(), eSet(), and the lists of objects handled are compatible with EList.
This EMF compatiblity stops when maintaining it would make a stronger dependency on EMF inevitable, since, as we have already mentioned, Modelio 3 is not based on an EMF implementation of its metamodel.
Developers who are used to the EMF API will find themselves in familiar territory with Modelio 3. The most interesting specificities of the Modelio 2 API are retained, such as the unique element creation factory or filtering accessors which save the developer a lot of time and effort.
Model persistence is now carried out more openly in the form of XML files (out with the unique OFP binary file).
Other than greater openness, this choice improves the reliability of Modelio 3. In the worst possible case scenario, a corrupt OFP file could lead to the complete loss of a model, whereas a corrupt XML file can more often than not be repaired (with greater or lesser facility) and can always be deleted (one or several « absent » objects then appear, but these do not cause the project to « crash »).
The limitations of Modelio 2 in terms of internationalization were largely due to the C++ core of the former design. The switch to 100% Java code opened up new possibilities. New i18n can be supported (Chinese, Russian, Arabic languages for example).
A German version of Modelio is currently being prepared. Contributions for the support of other languages are welcome.
Modelio 3 brings improvements in performance.
In terms of speed, the removal of the Java/C++ link (via JNI) considerably reduces copying of data structures. The modeling API thus becomes more efficient.
All modules benefit from this, and the effect is particularly significant on the generation and reverse of Java code.
In terms of memory resources, the simplifications provided by the new core and by a certain number of graphical optimizations (image management) reduce Modelio 3's memory footprint during intensive use.
The release of Modelio 3 is planned for June 2013.
Modelio 2 projects can be migrated to Modelio 3 using a dedicated migration tool, which will be made available at the same time as Modelio 3.