This article is a preview of Enterprise Architect 16 beta (build 1600) which is available to download with your registered account (if you own an active license) from www.sparxsystems.com.
Covered features and enhancements:
- Enterprise Architect 64 bits
- New QEA/QEAx file-based repositories
- Native connection to DBMS repositories
- XEA new exchange format
- JavaScript support
- User interface improvements
Enterprise Architect 64 bits
Sparx Systems has released its first 64-bit version of Enterprise Architect to provide increased performances and support larger data sets: increased efficiency in processing larger XMI import/export or report generation tasks, saving or exporting larger diagram, run bigger simulations, etc.
It is possible to install both 32- and 64-bits versions on the same computer, respectively in C:\Program Files (x86)\Sparx Systems\EA and C:\Program Files\Sparx Systems\EA.
Add-ins/extensions support
In the Specialize menu, I noticed that none of the add-ins were available with Enterprise Architect 64 bits. The manage add-ins window was empty:
With some investigations, I identified a way to fix this for my add-in eaUtils (built with .Net C#).
- Step 1: build the add-in with the x86 platform (32 bits), and then repeat the build with the x64 platform (64 bits). As a result, each DLL is available from a separate folder and registered in the respective COM.
- Step 2: add the 64 bits version of the add-in in the Windows Registry as explained here:
When opening the 32 bits version of Enterprise Architect, it reads the Windows registry to load the installed add-ins under \HKEY_CURRENT_USER\SOFTWARE\Sparx Systems\EAAddins.
I noticed a new entry to store all options and settings for the 64-bits version of Enterprise Architect: HKEY_CURRENT_USER\SOFTWARE\Sparx Systems\EA64. So, I gave it a try, created HKEY_CURRENT_USER\SOFTWARE\Sparx Systems\EAAddins64, and copied my add-in details.
Opening Enterprise Architect 16 64 bits, it worked!
Model Repositories
New file-based repositories with QEA and QEAx files
Until then, local Enterprise Architect projects have involved files using the EAP or EAPx extension. These are Jet Engine databases that can be opened using Ms Access.
Enterprise Architect 16 introduces the new QEA and QEAx extensions, backed by SQLite. Note: a QEAx file can be opened using SQLlite browser tools, where the EA tables and data can be found.
It remains possible to open existing EAPx files with EA 16 (Jet Engine v4) contrary to older EAP files that use a previous Jet Engine version. When an EAP file is opened in EA 16, there’s an Access error message followed by the prompt below:
A window is opened to copy your local project to a new QEA/QEAx local file or an existing centralized database.
This feature is available from the Settings > Transfer menu, where additional Project Transfer options are available:
Simplified access to DBMS repositories
When users share access to a common Enterprise Architect repository hosted on a DBMS such as MySQL (or any other supported server), they can either open the project using a URL for the Pro Cloud Server http/https gateway, or an ODBC data source. In the latter case, the following configuration is required on the user’s PC:
- Install the ODBC driver for the chosen DBMS e.g., MySQL.
- Create an ODBC data source (DSN) with the custom configuration to access the EA repository as per Enterprise Architect user guide.
- Open a project using “Server Connection” and select the DSN.
Enterprise Architect 16 introduces a new native connection as a simplified alternative to the server ODBC connection. This is a very useful enhancement as custom ODBC drivers and DSN are longer required to be setup on each user’s PC since DBMS drivers are now distributed with Enterprise Architect.
Notes:
- Current ODBC settings can still be used with Enterprise Architect 16.
- http/https access via a Pro Cloud Server remains the easiest option.
The native connection method simplifies the access to a centralized database repository. As illustrated below, I simply had to select the DBMS (PostgreSQL), and provide the database server details and credentials. Once the Test is successful, the connection can be opened.
New exchange format: native XEA
XMI (XML Metadata Interchange) files is a common and convenient way to exchange models via Enterprise Architect export/import XMI features. With Enterprise Architect 15, the Native XML format was introduced as an alternative to the Project Transfer by exporting the entire DB content to XML files matching EA tables content. One of the advantage is that it's compatible with the Pro Cloud Server. Enterprise Architect 16 adds a new XEA format that “helps to streamline model archiving and the export and import of Enterprise Architect repositories”.
In the Publish menu, the Export Package includes XEA as an alternative to XMI:
Looking at the content of the generated XEA file, it’s an SQLite database with the data matching the exported package.
The XMI export involves a conversion process (DB to XML) which can be time consuming for large models. Hence moving the export to a file-based SQLite makes sense as it involves a direct DB data extraction.
Scripting: JavaScript support
JavaScript is the new default scripting language that Sparx Systems recommends using with Enterprise Architect 16. Built-in libraries until then available for VBScript and JScript are now available for JavaScript.
Enterprise Architect is using Mozilla Spider Monkey JavaScript engine. Compared with VB and JScript, JavaScript has the advantage to be object-oriented. Here is an example based on Sparx Systems Logging script after replacing the functions by a Logger “class”:
const LOGLEVEL_ERROR = 0;
const LOGLEVEL_INFO = 1;
const LOGLEVEL_WARNING = 2;
const LOGLEVEL_DEBUG = 3;
const LOGLEVEL_TRACE = 4;
class Logger {
constructor(logLevel) {
this.logLevel = logLevel;
}
get Level() {
return this.logLevel;
}
Clear() {
Repository.ClearOutput("Script");
}
LOGError(message) {
if (this.logLevel >= LOGLEVEL_ERROR) {
Session.Output( this.DisplayDate() + " [ERROR]: " + message ); }
}
LOGDebug(message) {
if (this.logLevel >= LOGLEVEL_DEBUG) {
Session.Output( this.DisplayDate() + " [DEBUG]: " + message ); }
}
LOGInfo(message) {
if (this.logLevel >= LOGLEVEL_INFO ) {
Session.Output( this.DisplayDate() + " [INFO]: " + message ); }
}
DisplayDate() {
var now = new Date();
var hours = now.getHours();
if ( hours < 10 )
hours = "0" + hours;
var minutes = now.getMinutes();
if ( minutes < 10 )
minutes = "0" + minutes;
var seconds = now.getSeconds();
if ( seconds < 10 )
seconds = "0" + seconds;
var displayDate = now.getFullYear() + "-" + (now.getMonth() + 1) + "-" + now.getDate();
displayDate += " " + hours + ":" + minutes + ":" + seconds;
return displayDate;
}
}
Here is an example of how it is called from a JavaScript script:
var log = new Logger(LOGLEVEL_INFO);
log.Clear();
LOGInfo("test");
A JavaScript console is available to help with building and testing a script.
User Interface
Here are the main UI enhancements I identified so far with Enterprise Architect 16 beta.
Quick Access toolbar
A new Quick Access toolbar is available. As experienced with common Microsoft applications such as Word or Excel, this is a very handy feature.
- Right click on a menu from the ribbon to add the menu (e.g. Package Matrix).
- Result: the package matrix is available from the Quick Access toolbar.
- - It is possible to move this toolbar below the ribbon menu.
Refreshing Diagrams
For a more streamlined use in a collaborative environment, Enterprise Architect 16 provides two new options:
1- Auto-Refresh diagram
This feature is intended to collaborate and co-edit the same diagram e.g. during a workshop involving remote peers.
- A first user enables the collaboration on the diagram via the Collaborate menu.
- Once saved, the diagram is locked so no one can edit it.
- A second user would like to carry updates: to get an exclusive edit lock, the Pause & Edit collaborative option must be selected.
- Whenever this user saves the diagram (Ctrl + S), these changes are automatically updated and visible for all users within a few seconds.
- The edit lock can be released by choosing the Resume collaborative option.
2- Auto-Reload diagrams
Working on a shared model repository, when one updates and saves a diagram, other users with this active diagram are notified to reload this diagram.
Message when the diagram hasn’t been modified:
Message when the diagram has been modified locally:
A new option is available for all diagrams under the menu Layout > Diagram > Options > Auto Reload Changed Diagrams. Purpose: “Set Enterprise Architect to reload any diagrams you have open when there are changes made by others working in the same model at the same time”.
This option reloads more transparently the opened diagrams (without any prompt window).
Other UI enhancements
This new feature is one of my favourites; Notes, hyperlinks, text elements, boundaries are now visible in the project browser under a specific blue sub-package named “{ }”. This is very handy as such elements have been hidden until then and workarounds with scripts or others means were required to manage them.
Here are some of the advantages from this feature:
- Running a Find in Browser on a selected notes, boundary or text element from a diagram now selects it in the project browser to see in which package it is located. It can easily be moved to a different package.
- This visibility makes it possible to set up a diagram navigation and appropriately reuse text elements i.e. a single title text element can be updated once and propagated in all diagrams.
- When exporting a package, one can check that all elements are included.
The start page has tabs to easily access the Create from Pattern, Add Diagram and Guidance:
The order of fields on the Model Search has been changed: it starts with the search criteria.