Enterprise Architect version 13

download
purchase

English Chinese (Simplified) Czech Dutch French German Italian Korean Polish Portuguese Russian Slovak Spanish Swedish

My Profile

Social Media Channels

facebook google plus twitter youtube linkedin

Guillaume

Guillaume

Guillaume Finance

VISEO (Modelling and Sparx EA Consultant & trainer)
 
Business and Systems Analyst with a software development background, and certified training instructor on UML, SysML and Sparx Enterprise Architect.
After spending several years working at an international level in the UK, I'm currently working for VISEO (formerly Objet Direct), Sparx Systems authorised reseller, VAR and Training Partner in France (www.viseo.com). Current and past projects cover the following industries: banking & finance (e.g. mortgage application), payment card systems (ATM, POS, UK APACS, ISO8583), set-top boxes, oil and gaz, and hydraulic utility manufacturing (EDF).
I publish articles and news about modelling languages and Enterprise Architect on my blog www.umlchannel.com.
I also maintain eaUtils addin for Sparx: www.eautils.com.
Tuesday, 14 February 2017 08:04

SysML 1.4 reference card

The SysML reference card defined by Tim Weilkiens (oose.de) is now available in a version with diagrams done with Sparx Systems Enterprise Architect modelling tool. This overview illustrates SysML modelling language concepts, organized by topic:

  • System context diagram
  • Use case diagram
  • Block Definition diagram
  • SysML ports
  • Internal Block diagram
  • Requirements
  • Packages
  • Sequence diagram
  • Activity diagram
  • State Machines
  • Comments and constraints
  • Allocations
  • Parametric diagram

SysML 1.4 reference card is available in the PDF format.

Notes:

  • SysML is available in the Systems Engineering and Ultimate editions of Sparx Systems Enterprise Architect.
  • This reference card is also available in French and provided during VISEO SysML with Sparx Enterprise Architect training sessions (more details available in French here).

Download links:

VISEO EA UML to JHipster Generator MDG Technology

This article shares an MDG Technology that integrates Sparx Enterprise Architect UML models with JHipster.

VISEO EA UML to JHipster Generator MDG produces JDL (JHipster Domain Language) content from UML models maintained in Enterprise Architect. This output can be used in JHipster to create the application's entities, including properties and relations.

Not being able to find a suitable tool that generates JHipster entities from UML models, I started such integration for a software application that has been implemented with JHipster 2.

Note: the current version of the MDG is compatible with JHipster 2, latest available version when the project started. JHipster 3 new features could be integrated in a future version.

Context

A modelling project has been launched with Enterprise Architect to gather and maintain all the information and knowledge related with the project for the development team and stakeholders.

The initial models included business classes to identify the concepts, shared through a visual representation with UML. This approach has been useful when integrating these concepts in the technical environment JHipster.

JHipster, or “Java Hipster”, is a handy Open Source application generator that aims to create a complete and modern Web app:

  • A high-performance and robust Java stack back-end (Spring Boot, Spring Security, Spring Data, Spring MVC, etc.)
  • A sleek, modern, mobile-first front-end (Angular.js and Bootstrap)
  • A suite of pre-configured development tools like Yeoman, Maven, Gradle, Grunt, Gulp.js and Bower

UML to JHipster JDL generator

Overview

Defining class models on both business and technical layers enabled a proper integration of the business definitions in the software application. Design workshops were carried in an efficient manner through the use of a common language and tool (Sparx Enterprise Architect and UML).

Looking for existing integration solutions between UML tools and JHipster yielded XMI exports/imports. However XMI implementations in UML tools don't provide most of the time a proper and full exchange of UML models i.e. without loss or modification of definitions. JDL Studio looked interesting; this online tool renders an entity diagram matching the JDL content. The downloaded file can be used to generate entities in JHipster (command line example: "yo jhipster:import-jdl export-jdl-uml.jh").
Without a suitable link between Enterprise Architect and JHipster, I wrote a script that generates such content directly from Enterprise Architect models. It requires the following JHipster 2 customizations carried in Enterprise Architect:

  • Data types: JHipster types are available for the entities' attributes.
  • UML profile: stereotypes on UML classes and attributes to provide JHipster properties via tagged values, listed below.
    • Classes
      • jhipsterDto : use mapstruct for the DTO-entity mapping
      • jhipsterPaginate : pagination choice for lists (infinite-scroll, pager, pagination)
      • jhipsterService : apply serviceClass to the entity
    • Attributes
      • jhipsterisRequired : the attribut is required
      • jhipsterMin: provides the minimum value (declared as minlength for String attributes, or min for Integer, Long, Float, Double, or BigDecimal attributes)
      • jhipsterMax: provides the maximum value (declared as maxlength for String attributes, or max for Integer, Long, Float, Double, or BigDecimal attributes)
      • jhipsterPattern: provide the pattern value for a String attribute
    • Script: generates the JDL content

The following UML class diagram illustrates the meta-model applied for the UML to JHipster 2 JDL integration:

SparxSystems Enterprise Architect UML to JHipster JDL File generator metamodel

The script and UML profile have been improved through users' feedback and reviews from JHipster experts at VISEO.

Installation

The EA UML to JHipster MDG is published via an XML file. Once installed, it is listed in the MDG Technologies screen:

MDG EA UML to JHipster JDL

Note: this MDG is available on request (e-mail: jhipster[at]umlchannel.com).

JHipster diagram and toolbox

EA/JHipster MDG Technology supports a diagram with its toolbox to create stereotyped classes and attributes:

uml to jhipster sparx en toolbox

UML profile and JHipster stereotypes

EA/JHipster MDG Technology includes a UML profile with stereotypes on classes and attributes to provide relevant Tagged Values.

When starting a JHipster design class diagram, JHipster entities contain tagged values available from the JHipster tab: DTO, paginate, service. The "none" value is set by default so all tagged values are optional.

uml jhipster entity properties

The JHipster entity "Language" field is set to JHipster so its attributes are associated with the JHipster data types list.

The diagram toolbox can be used to add a stereotyped attribute to a JHipster Entity class. Such attributes also contains properties from the Tagged Values tab:

sparx ea uml attribute jhipster

UML to JHipster generation script

The following UML class diagram has been defined with Sparx Enterprise Architect based on the JDL Studio example. This model provides a mean to check that the generated JDL content from either solution matches.

Compared with the JDL studio diagram, UML class diagrams have the advantage of being based on the OMG standard. Furthermore using a tool like Sparx Enterprise Architect provides a way to maintain the entity design model within a complete modelling repository e.g. including requirements, business, analysis and architecture models.

The following JDL content has been generated using this script:

=== EA UML to JHipster Entity Export ===
== More information is available from www.umlchannel.com/jhipster ==
INSTRUCTIONS: copy and paste the following content in a text file, and rename it e.g. as dpl.jh =
entity Department {
departmentId Long,
departmentName String required
}
entity JobHistory {
startDate ZonedDateTime,
endDate ZonedDateTime,
language Language
}
entity Job {
jobId Long,
jobTitle String,
minSalary Long,
maxSalary Long
}
/**
* The Employee entity.
*/
entity Employee {
employeeId Long,
/**
* The firstname attribute.
*/
firstName String,
lastName String,
email String,
phoneNumber String,
hireDate ZonedDateTime,
salary Long,
commissionPct Long
}
entity Location {
locationId Long,
streetAddress String,
postalCode String,
city String,
stateProvince String
}
entity Task {
taskId Long,
title String,
description String
}
entity Country {
countryId Long,
countryName String
}
entity Region {
regionId Long,
regionName String
}
enum Language {
FRENCH, ENGLISH, SPANISH
}
relationship OneToOne {
Department{location} to Location
}
relationship OneToMany {

/**
* A relationship
*/
Department{employee} to
/**
* Another side of the same relationship
*/
Employee
}
relationship OneToOne {
JobHistory{department} to Department
}
relationship OneToOne {
JobHistory{employee} to Employee
}
relationship OneToOne {
JobHistory{job} to Job
}
relationship ManyToMany {
Job{task(title)} to Task{job}
}
relationship ManyToOne {
Employee{manager} to Employee
}
relationship OneToMany {
Employee{job} to Job
}
relationship OneToOne {
Location{country} to Country
}
relationship OneToOne {
Country{region} to Region
}
paginate JobHistory, Employee with infinite-scroll
paginate Job with pagination
dto Job, Employee with mapstruct
service Employee with serviceClass

The final step involves copying this content to a JH file, and use it in JHipster to generate entities.

Scope

This approach was used as a mean to easily generate new versions of the design entity model within JHipster. Updates were carried in Enterprise Architect to remain consistent with the business model, whilst being generated, tested and approved directly in the application.

Once entities are updated in JHipster with custom code, it prevents any synchronization with the UML model. Where a full synchronization between the JHipster and UML projects is not the final purpose of this MDG, it allows having a design model that matches exactly the entities definition in the development environment during the first iterations of the project. This level of information in the design layer is very useful, even if mismatches with the code are bound to occur. The design team may chose to manually update the UML design model when needed.

Future versions

This MDG has been implemented and used with JHipster 2. A future version could be released to support JHipster 3 that has introduced new properties such as:

  • new serviceImpl service
  • new syntax e.g. "dto (ou service ) * with … except …"
  • skipClient and skipServer declaration on entities
  • angularSuffix
  • Microservices (e.g. microservice with <jhipster app name>)
  • elasticsearch search on entities (e.g. search * with elasticsearch except …)
  • New types (AnyBlob, ImageBlob)
  • Generate minbytes and maxbypes for blob attributes( Blob, AnyBlob, ImageBlob)

 

I ran a number of times a 3 day training course for a client in the automotive industry on SysML with Sparx Systems Enterprise Architect tool to model complex systems. This training course in french involved two instructors: Pascal Roques, a SysML and Systems Engineering expert in France, and myself on modelling and Sparx Enterprise Architect.

This training course combines the theory with the SysML modelling language brought by Pascal expertise alongside Enteprise Architect as a SysML modelling tool, brought by Viseo. Enterprise Architect tool is covered throughout the 3 days course to understand its environment, its SysML integration and features, and putting it all in practice via exercises.

Following several successful "intra company" training sessions, Pascal and myself have decided to run "inter-company" training sessions throughout France, starting 2017. The first SysML + Enterprise Architect training session will take place in Grenoble in April (4 to 6th April).

Full details in French are available from this link. Contact me on This email address is being protected from spambots. You need JavaScript enabled to view it. for any further information.

Wednesday, 06 July 2016 07:42

Enterprise Architect 13 beta preview

This article provides a preview about the upcoming Enterprise Architect 13, available in its beta version since beginning of June.

SparxSystems Enterprise Architect 13 leaflet covers the main enhancements including:

  • Ribbon interface, replacing the traditional menus
  • Links between connectors for a new level of traceability
  • Time Aware Modeling with a package and element Cloning approach
  • SysML simulation with OpenModelica and parametric diagrams
  • Tagged Values support within diagram filters
  • A new "Progress bar" tagged value type
  • Various other enhancements:
    • Direct publishing to Joomla CMS
    • Improved Linux and Mac compatibility
    • Back end repository updates when accessing a shared Enterprise Architect project, hosted on a centralized database with the Security feature enabled
    • Cloud Service improved (IPv6 support, better performance)

Enterprise Architect 13 Ribbon interface

The screenshot below illustrates Enterprise Architect 13 user interface:

Traditional menus have been replaced with a Ribbon interface. As a result, some time will be needed to find Enterprise Architect features. This modern look and feel should make it easier to use features compared with the previous interface.
Activation of the main views such as notes, project browser, pan and zoom is available via the Window button, available from all ribbons.

enterprise architect 13 beta ribbon window

The Start ribbon provides access to a Search button:

enterprise architect 13 beta search ribbon

  • Search in Model opens the project search screen (also available via the Ctrl+F shortcut).
  • Search in Project Browser opens the Project Browser search dialog window.
  • Search for Diagram or Package opens an associated predefined search.
  • Browse for Diagram or Package is a new feature to browse a project tree version without the elements, making it easier to find a diagram or package. Choosing a package or diagram selects it in the Project Browser.

 sparx enterprise architect 13 beta search diagram

The Configure ribbon provides access to the project options and settings including Security, Version Control (e.g. SVN), code and MDA templates, installed MDG technologies, etc. 

ruban configure sparxsystems enterprise architect 13

Enterprise Architect tool configuration is available from the Start ribbon > Preferences.

sparxsystems enterprise architect 13 beta start ribbon preferences
The Extend ribbon shows all installed extensions/add-ins such as eaDocX, eaUtils, eaNavigator... Each extension menu can be accessed via its own button, improving the access to their features.

Important: add-ins menus in this ribbon don't match with Enterprise Architect v12.1 and earlier (see EXTENSIONS menu). Instead options from these menus match the ones listed upon a right click from the project browser. This seems to be something to fix or clarify. It would be nice to have a way also to replace the buttons images with the extensions logos.

sparxsystems enterprise architect 13 beta extensions ribbon

Current versions of Enterprise Architect (12.1, 12, 11...) make it possible to personalize and reduce Enterprise Architect menus on a local PC. This customization can be very useful in order to simplify the user interface e.g. by removing the Execution Analyzer and other features that are not used by a group of users. Enterprise Architect 13 ribbon interface can be customized via the Start ribbon > Perspectives > Show Perspectives Window > Ribbon Menu.

sparx enterprise architect 13 beta ribbon menu preferences

Menu search with the Office 2016 visual style

Visual Styles can be modified from the Start ribbon to customize the user interface. Office 2016 visual style provides a search module on the menus. To activate this style, open the Start ribbon > Visual Style and select Microsoft Office 2016.

sparx enterprise architect 13 beta office 2016 visual style search

The search feature is illustrated below.

sparx enterprise architect 13 beta office 2016 visual style search

Enterprise Architect 13 helpers

Helpers features can be enabled via the Layout ribbon.

sparx ea 13 helpers

Sweeper and HV lock provide custom behaviours when moving diagram elements:

  • Enable the Sweeper helper so a collection of elements within a diagram section can be moved altogether. Where this looks useful, one has to understand and control the definition of a section.
  • Enable the HV lock helper so selected elements can either be moved horizontally or vertically.

The Presentation mode highlights any selected element and prevents from creating associations between elements (quicklinker is disabled).

Reorder messages mode is only active in UML or SysML sequence diagrams. When enabled, it lets you move messages without ordering the surrounding ones (same effect as when using the Alt key shortcut).

Enable the Show direction helper so that connectors are displayed in red or green when an element is selected according to the following rules:

  • Green: the selected element is the connector's source.
  • Red: the selected element is the connector's target.

This feature can be useful to control that relations are set in the right direction according to traceability rules.

sparx enterprise architect 13 beta helper show direction

Links between connectors

Enterprise Architect 13 makes it possible to create links between connectors. This feature can be useful for advanced traceability needs, e.g. in a Systems Engineering context, a control flow between action pins can be associated with a matching connector between SysML blocks' ports. This provides a way to ensure consistency between the static and dynamic view of a system.

Important: to prevent "not UML compliant" error messages, the Strict Connector Syntax option must be disabled in the preferences.

sparx enterprise architect 13 beta options strict connector syntax

The following screenshots illustrate this feature.

  • Select one of the connectors to enable the quicklinker (see arrow).

 sparx enterprise architect 13 beta connector links

  • Use the quicklinker to create a dependency with another connector.

sparx enterprise architect 13 beta connector links

  • As a result, the following dependency link has been created:

sparx enterprise architect 13 beta connector links

Improvements would be required to access this type of traceability. For instance it would be useful to have a Links tab in the connectors' properties window. It would also be useful to see this link within the traceability view once a connector has been selected in the diagram.

Diagrams

The diagram toolbox displayed at the top of diagrams in current versions of Enterprise Architect has disappeared in version 13. It is however useful to easily change the colour of elements or links, the font, to align elements, apply the same dimensions, etc. Hopefully it will be available again in the final version.
All these features are currently solely available from the Layout ribbon.

 

Managing versions with a package and element Cloning approach

Sparx Systems provides a new "time aware model" feature to manage versions via a cloning approach. Right click on a package from the project browser and select "Clone Structure as a new version". Provide the new version and select a target package.

This version has been allocated to a new package (it needs to be renamed). A diagram has also been created and it contains the elements from the existing version.

Any element needs to be cloned within the new version before carrying modifications.

In the following example, Class2 has been cloned in the new version 1.1, and an attribute has been added to this class.

It is subsequently possible to display all elements onto the same diagram and apply versioning filtrers.

This feature can be useful to manage versions within an Enterprise Architect modelling project, e.g. to define and compare an "as-is" with a "to-be" vision of a model. However this approach seems to be limited when applied on a complex branch of models.

SysML simulation with OpenModelica

Enterprise Architect 13 offers an alternative and much more powerful SysML parametric simulation compared with the existing built-in tool. As regards, Sparx Systems has integrated a link with the OpenModelica, an Open Source Modelica-based modeling and simulation environment.

This feature requires installing OpenModelica tool (https://www.openmodelica.org/). Algorithms must be entered in SysML constraint blocks' invariant constraints, and SysMLSim configurations must be created via the Enterprise Architect 13 Simulate ribbon. This feature requires identifying and understanding all the properties to set prior to get a running simulation configuration.

The following screenshots illustrate the OpenModelica SysML simulation in Enterprise Architect 13.

sparx enterprise architect 13 beta sysml simulation open modelica

sparx enterprise architect 13 beta sysml simulation open modelica

Diagram filters: tagged values support

Diagram filters make it possible to hide or grey out elements from an active diagram according to a set of criteria. Tagged values support has been added in Enterprise Architect 13:

Conclusion

Enterprise Architect 13 upcoming version should be released end of 2016 or early 2017. This new version not only provides a nice and useful user interface in line with the latest applications, but also carries an interesting number of enhancements and features that will be handy once finalized.

eautils addin for sparx systems enterprise architect

I started last year a personal addin project for Sparx Enterprise Architect; eaUtils was intended to gather features that have addressed situations I came across over the past years. Initial eaUtils features come from scripts that were shared with the community (see Enterprise Architect project browser scripts: sort elements by alias or by tagged value).

Following an initial version launched in December 2015, enhancements were released in February 2016 with eaUtils 1.11. Current features include:

  • Sort elements from a package tree, a package, or composite element by Alias, Tagged Value, Stereotype or Name
  • Sort a package elements according to their layout order in a diagram (top to bottom or left to right)
  • Generate elements alias values according to their order in a diagram
  • Generate the breadcrumb trail in a diagram

Elements sorting

eaUtils sorting features update the elements tree position from a package or element. Enterprise Architect applies a default sorting order based on the name of the elements. In order to achieve a better management and more efficient use of the elements from within the project browser, it can be useful to have alternative and enhanced sorting options e.g. based on the alias, stereotype, tagged value, or according to the layout in a diagram.

eaUtils latest version provides a way to sort elements within a package tree, which is illustrated below. Further information on eaUtils sorting features is available from eaUtils Help.

Sort elements by alias in a package tree

Having enabled the package tree option, this feature can be used via a right click on the main package > Extensions > eaUtils > Project Browser : Sort elements by alias. eaUtils addin opens the following dialog window, prompting to select the packages to process within the current tree:

sparx systems enterprise architect addin eaUtils package tree sorting window

Below is a summary of the available actions or information:

  • Status: set to Ready unless the elements sorting is running (Busy).
  • eaUtils settings: a summary of the sorting settings values is displayed. A button is available to open eaUtils Settings.
  • Select all/none: enable or disable all packages within the displayed tree.
  • Tree: packages within the tree are displayed and can be individually enabled or disabled. Any locked package is greyed out and followed by (Locked).
    • Note: Root nodes are always disabled and marked as locked as they cannot have any element to sort.
  • Sort elements in the selected packages by...: run the elements sorting within each selected package.
  • Cancel: close this window.

Whilst eaUtils sorting by feature is running, progress is updated as packages are processed.

eautils addin sparxsystems enterprise architect sort by package tree progress busy

Once completed, all selected packages are marked as DONE, and a confirmation dialog is displayed.

eautils package tree sorting addin enterprise architect completed

Generate aliases

eaUtils provides a feature that generates elements aliases according to their order in a diagram, from top to bottom or left to right. I often use this feature to generate use case aliases according to their order in a diagram e.g. UC_001, UC_002.... It also can be applied to other diagrams such as UML activity, BPMN process, Archimate, etc.

Consider the following use case diagram:

exemple sparx ea eautils addin to generate elements alias values

Note: use cases on the above diagram are stored in the same package whereas actors are located in a dedicated one. eaUtils provides an option to deal with this situation so that external elements (actors) are ignored when generating the alias.

eaUtils provides a range of settings to define the prefix, suffix and numbering format to generate in each alias. Below is an example for the current example:

  • the prefix is set with the element's name followed by an underscore e.g. UseCase_
  • the numbering will be generated with 2 leading zeros e.g. 001, 002...
  • the suffix is set to "_BookStore"
  • only Use Case elements are processed

 

eautils sparx ea addin generate alias settings prefix suffix

Running eaUtils "Generate Alias" leads to the result below:

sparx eautils addin model diagram generate alias results

Breadcrumb trail for diagram navigation

Navigating between a large number of opened diagrams within a Sparx Enterprise Architect modelling project can be cumbersome. Having opened successive composite elements such as an activity, use case, or BPMN2 subprocess, going back to the previous diagram is often not easily achievable. This issue is not only valid when one uses Sparx tool, but also when a published HTML version is opened in a web browser (e.g. Firefox, Chrome, IE).

A workaround involves creating a diagram hyperlink back to each calling/linking diagram; eaUtils addin provides a Breadcrumb Trail feature that generates such hyperlinks within an active diagram. In the example below, a BPMN2 process is detailed via an associated composite BPMN diagram:

eautils sparx enterprise architect addin breadcrumb

Running eaUtils breadcrumb feature on BusinessProcess1 diagram leads to the following result i.e. a hyperlink back to the Business diagram has been created:

eautils sparx systems enterprise architect addin breadcrumb trail result

eaUtils addin for Sparx Systems Enterprise Architect

eaUtils is listed as a Sparx Systems 3rd Party Add-In in the Model Management Category.

eaUtils addin can be downloaded for free from www.eautils.com website, where an online help content is also available.

 

sparx systems enterprise architect training courses

VISEO released its 2016 training catalogue, including a full range of updated training courses for Sparx Systems Enterprise Architect. All training materials are available in French.

  • Slides and exercises content updated with Enterprise Architect 12.1 version.
  • 2 or 3 day thorough training courses, involving UML, BPMN2, or SysML.
  • Optional sessions available: 
    • configure a project to be shared with other users;
    • create an MDG Technology;
    • implement an add-in with C#;
    • generate a document (built-in RTF generator or eaDocX);
    • define business processes with BPMN 2.0;
    • ArchiMate 2.0.

Please visit Viseo website for more details:

 

Microsoft AzuRE DB Cloud Services with Sparx Enterprise Architect

This article provides guidance on setting up a Sparx Systems Enterprise Architect modelling project in the Cloud, using Microsoft Azure SQL Database services.

Microsoft Azure SQL Database (formerly SQL Azure, SQL Server Data Services, SQL Services, Windows Azure SQL Database) is a cloud-based service from Microsoft offering data-storage capabilities (similar to Amazon Relational Database Service) as a part of the Azure Services Platform (Source: wikipedia).

As regards an Azure SQL Database is very similar to a Microsoft SQL Server database, supported by Sparx Enterprise Architect. A few tweaks were needed a while ago, however Sparx Systems has since released an Azure version which works well.

Context

We started a distributed project involving partners from several locations, hence working remotely. In order to set up a centralised database that can be easily accessed and maintained, we chose Microsoft Azure SQL services.

We tested the following services by increasing the DTU levels (Database Transaction Units).

  • We started with the Basic option (5 DTU): KO, too slow.
  • S0 option (10 DTU): KO, too slow for a daily use.
  • S1 option (20 DTU): OK, chosen option with the best performance/cost ratio.
  • S2 option (50 DTU): OK with a slight improvement over Q1 which did not however support the increased cost.

Requirements

Below are the requirements prior to transfer an existing Enterprise Architect project in the Microsoft database cloud-based service:

  • Create an Azure SQL Database where the modelling project data will be stored (note: a database is required for each EA project).
    • Once available, details should include a server url (e.g. abcd.database.windows.net), port (e.g. 1433), and credentials (username + password).
  • Download and install SQL Server Management Studio.
  • Download and install SQL Server ODBC drivers (if not already available).
  • Download SQL scripts provided by Sparx Systems to create the required Enterprise Architect repository tables:

Setting up the database tables

The first step involves creating the tables where the EA project data will be stored.

  •  Open the SQL Server Management Studio, and provide the Azure SQL database details.

microsoft management studio azure enterprise architect cloud

  • Open the "SQLAzure_EASchema.sql" file downloaded from Sparx Systems web site.

microsoftsql database azure enterprise architect cloud run schema script sparx

  • Execute the query against your database and wait for the Successful confirmation notification.

microsoftsql database azure enterprise architect cloud completed schema script sparx

  • Refresh the Object Explorer to view Enterprise Architect tables.

microsoft sql database azure enterprise architect cloud object explorer

Transferring your project to Microsoft Azure SQL Database

You're ready to transfer data from your existing Enterprise Architect project, whether it is stored in a local EAP file, or shared in a centralised DBMS. In the following example, a local EAP file is transferred:

  • Open Enterprise Architect, menu Project | Data Management | Project Transfer
  • Select "File to DBMS" transfer type.
  • In Source Project, select the local EAP file.
  • In Target Project, click on the [...] button to access the ODBC settings
    • Select the SQL Server driver > click Next
    • Provide the Azure SQL database details

microsoft SQL database azure enterprise architect cloud odbc

  •  Click OK; the project transfer is ready to be launched.

microsoft management studio azure enterprise architect project transfer

  • The transfer may take some time to complete (it could around 15 minutes to transfer my project). Please wait for the confimation message to be displayed.

Your Enterprise Architect project is now centralized and available to all team members who have suitable credentials. Specific guidelines to set up ODBC access are recommended to reduce the time required setting up each user's PC.

It is also recommended to enable "EA Security" feature where users can create locks to access and update models.

sparx logo execution analyzer

Enterprise Architect is mainly used as a modelling tool to define and maintain a structured set of models based on standard languages or notations such as UML, BPMN, SysML, or ArchiMate.

Enterprise Architect includes several features to fulfill other needs, associated with functional, business, design, or architecture aspects. This article illustrates the use of Enterprise Architect Execution Analyzer to capture and record method calls between instances of implementation classes during code runtime. A method call recording feature can be enabled:

  • to visualize and analyze interactions i.e. invoked methods between instanciated implementation classes,
  • to document implementation classes,
  • to understand a software or application behaviour,
  • as an option to identify reasons for bugs when static code analysis hasn't been satisfying.

Note: static code analysis can be carried on the source code from the IDE, whereas dynamic code analysis is carried in a runtime environment.

Context

More and more complex technical architectures are defined for projects, with several heterogeneous software components communicating via their interfaces or services, and design patterns such as Dependency Injection can be applied to load modules or objects at run time, preventing any analysis at compile time.

Investigating bugs in such context on a production environment can be difficult. Source code analysis from the IDE may not be the right place to find solutions. This is exactly a case that one of my clients came across; Enterprise Architect Execution Analyzer feature offered an interesting and innovative approach enabling dynamic code analysis via method call recording. This could potentially lead to identify details surrounding a random software bug. In this specific case, as the issue was not related with the code itself, the Execution Analyzer hasn't identified any clue.

This article illustrates how to configure and use this feature in Sparx Enterprise Architect 12. As an example, I selected an Enterprise Architect add'in project I'm currently working on. The technical environment involves a Visual Studio 2012 C# solution. The Execution Analyzer also works with other technical environments such as Java or C++.

Setting up a suitable workspace

The Execution Analyzer involves the use of several views which can be enabled from the Analyzer menu:

  • Manager Analyzer Scripts
  • Debug > Debugger
  • Breakpoints and Markers

sparx enterprise architect execution analyzer menu

Once all the mentioned views have been displayed in your Enterprise Architect workspace, this configuration can be saved from the menu View > Perspectives > Save as New.

sparx enterprise architect perspective

Configuring the Execution Analyzer

Importing the source code with reverse engineering

Start with importing the source code in the Enterprise Architect project:

  • Create a package and run Code Engineering > Import Source Directory.
  • Select C# and the folder that contains the source code.

sparx enterprise architect import source directory

  • Packages and implementation classes resulting from the reverse engineering are visible from the Project Browser.

sparx enterprise imported csharp code

Create a local path for the IDE

To easily access and run Visual Studio IDE files, the local path %VS2012% has been defined via the menu Tools > Local Directories and Path:

Create an Execution Analyzer Script

Right click on the root package where implementation classes have been imported, and select Execution Analyzer; the dialog box below is displayed. Click on Yes to generate an Execution Analyzer script on this package.

sparx enterprise execution analyzer config

The Execution Analyzer script properties are displayed. Configure the source code compilation from the Build tab:

  • The command line need to match the following example:
    • "%VS2012%\devenv.com" /build Debug myapp.sln
  • Default directory: source code location
  • Parse Output: Microsoft .NET
  • Exec Command as: Batch File
  • These settings will be used by Enterprise Architect to build the C# solution.

sparx enterprise execution analyzer config build

Select the Clean tab and provide the same information as previously (Build), and replace "/build" with "/clean" in the command line:

  • "%VS2012%\devenv.com" /clean Debug myapp.sln
  • These settings will be used by Enterprise Architect to clean the C# solution.

sparx enterprise execution analyzer config clean

Open the Debug\Platform tab, and provide the following information:

  • Debugger: Microsoft.NET
  • Select Run
  • Default directory: location for compiled binary files
  • Application path: application to launch
  • These settings will be used by Enterprise Architect to start the applicatin in debug mode (in the case of an add'in, Sparx Enterprise Architect is launched).

Open the Debug\Workbench tab:

  • The following properties can be entered e.g. by selecting a DLL file, so that implementation classes can be instanciated from Enterprise Architect (this feature is not used in the current article).

sparx enterprise execution analyzer config workbench

Define breakpoints

As the source code can be opened in Enterprise Architect, breakpoints can be defined like in Visual Studio or any other IDE. Once a breakpoint is reached during the runtime, the application is suspended, pending any user action in Enterprise Architect, acting like an IDE since it builds and debugs the application.

Enterprise Architect supports a specific type of breakpoints: Recording Markers, described below. 

  • Open the source code from a class in the Project Browser (select the class > F12)
  • Enterprise Architect internal code editor opens the source code file associated with the class, e.g. src\Main.cs

sparx enterprise execution analyzer source code f12

  • A right click on a line in the source code can be used to insert a Breakpoint > Add Start/End Recording Marker

sparx enterprise execution analyzer breakpoint

  • Add Start Recording Marker indicates that Enterprise Architect must start recording the method calls
  • Add End Recording Marker indicates that any active recording must end (optional)
  • In the following example, two recording markers have been added: start recording on line 114, and stop on line 118.
  • Once a start recording marker is reached, method calls are recorded in the project. This data can be used after exiting the debug mode to generate UML sequence diagram.

sparx enterprise execution analyzer record breakpoint

Build with the Execution Analyzer

Important: Windows 7 usually requires to starts Enterprise Architect as an Administrator so the Build can be run without any error.

sparx enterprise start as admin

Select and right click on the the Execution Analyzer script (configuration) > Build, or click on Build Current Package :

sparx-enterprise-execution-analyzer-build-current-package

The System Output view displays results to confirm if the build has been successful (content should be identical to a Build run in Visual Studio).

Debug with the Execution Analyzer

To start the Debug from Enterprise Architect, select and right click on the script > Debug.

A new instance of Enterprise Architect is launched in order to run tests on the add’in (other types of applications will be launched in debug mode).

Use the add’in to reach a start recording marker e.g. by displaying the About window.

On the Start Recording Marker is reached, Enterprise Architect starts recording method calls. Note that the add'in execution can be more or less slowed down due to the recording processing performed by Enterprise Architect. This show down can be relative on the analysed application.

Additional add'in features can be tested to reach the Stop Recording Marker.

Display the Record and Analyze view to show all recorded method calls, listed under a sequence of interactions.

Each interaction has two "Method" columns: the first displays the current class and method whereas the second one displays the invoked class and method, alongside parameters. A double click on one of the interactions opens the invoked method in the source code, e.g. gui.About.About invoked from Mail.EA_MenuClick:

A right click on the whole sequence will generate a UML sequence diagram with the recorded data.

Note: number 15 in the above screenshot defines the depth level to record calls. This can be modified according to analysis requirements.

The following dialog is shown to optionally rename and confirm the sequence diagram to create in the modelling project:

An illustration of the generated diagram is shown below. Colours and comments have been added following the carried analysis.

The above diagram shows a scenario of executing the code according to the deployed version in the runtime environment. This diagram and the implementation class model generated using the reverse engineering can be associated with other modelling elements, such business classes, processes, or requirements.

sparx enterprise architect 12.1 beta

Sparx Systems released mid September the first beta of Enterprise Architect version 12.1. Full details on this version are available here.

Below is a summary of the main features and enhancements introduced in EA 12.1.

Web-based, online EA User Guide

Enterprise Architect User Guide has been redesigned to access the help content from a web browser. By default, the EA user guide is opened on Sparx Systems web site in order to access an up to date help content.
For those who use Enterprise Architect offline, an installation file makes it possible to access it locally. The online help section is available here.

Project Security

Management of security user accounts and groups in Enterprise Architect 12.1 has been improved with the Active Directory Groups support (prior to this version, each AD user had to be imported).

Permission and user details are shown in a more efficient manner.

Tagged Values support in the Traceability view

The traceability view provides a dynamic, navigable view of the current element's relationships to other elements in the model, e.g. to find associated classes, realized requirements, etc.

Enterprise Architect 12.1 adds a support for model elements referenced in a Tagged Value. To illustrate this enhancement, a RefGUID Tagged Value (see. Sparx EA User Guide) has been defined so that a reference between an business and implementation class can be set. In the example below, the traceability view shows a link between Class1 (Domain Object) and Class1 (System) via the "Tagged Value References" list.

Diagrams

Metafile rendering improvement

Image Metafile rendering has been improved with Enterprise Architect 12.1. An anti-aliasing filter is applied for many metafiles to increase the image clearness. Below is a screenshot-based comparison between Enterprise Architect versions 12 (build 1512) and 12.1 (build 1220).

Enterprise Architect 12 :

Capture écran EA 12

Enterprise Architect 12.1 :

Note: a new image library to use with Enterprise Architect 12 is available from Sparx Systems web site.

Quicklinker: Create multiple elements

The Quicklinker is a very useful feature that lets you create elements on the fly from within a diagram. Enterprise Architect 12.1 makes it possible to create multiple elements at once. When dragging the Quicklinker, a new option is available:

The popup window below lets you define a list of associated elements, providing their name, type and link type:

Once submitted, the expected elements are created:

Model Wizard pattern customization

The Model Wizard is available via the Project Browser to create a predefined model structure, provided by Sparx Systems. A new "Customize Pattern on Import" option is available to let users select the model branches to generate.

Virtualized Connector Ends

Enterprise Architect 12.1 introduces the concept of virtualized elements, a feature that lets you show several times the same element onto a diagram. This feature answers a need for a number of users that need to achieve this e.g. to simplify its layout.

I tried to add the same class twice onto a diagram and Enterprise Architect didn’t let me do that, so how does this feature work?

Once a connector has been created between elements, a right click on this connector makes it possible to create a virtual representation of the element. In the following diagram, a blue connector has been added between the Transaction and ShoppingBasket classes.

A right click on the connector lets you virtualize the connector end either to the Source or Target i.e. it lets you create a virtualized element of the source (Transaction class) or the target (ShoppingBasket class).

Notes:

  • Enterprise Architect 12.1 does not let you create connectors to a virtualized element. It would be useful as an enhancement to allow the association of a virtualized element with any other element.
  • When the element or any of its virtualized version is selected, they’re all selected. 
  • When the main element is hidden, all virtualized elements are hidden as well since they're directly associated with connectors.
  • Hiding a virtualized element will hide the connector as well.
  • Virtualized elements don't count as additional occurrences of the element in the diagram (results from running Find in All Diagrams are the same).

Diagram Legends

This feature hasn’t changed for a while until this new version 12.1 which supports a link between the diagram legend and the rendering style of the elements and connectors.

The Diagram Legend window provides additional options to compare elements with the legend’s content. If an element matches a set of criteria, it will be rendered with a fill colour, line colour and line width as set in the legend’s value. This is enabled with the “Apply auto color” option.

To test this enhancement, a filter has been defined on the element’s alias i.e. the legend’s values will be compared with the elements’ aliases. Evaluation has been restricted to Class elements (see option "Applies to" in the screenshot below). On the following diagram:

  • StockItem class is rendered in green as its alias is set to 1
  • LineItem class is rendered in light red as its alias is set to 2
  • Class2 class is rendered in light blue as its alias is set to Class (note that Class1 alias doesn’t match)

Note: the association stereotyped “test” is rendered in orange as per the following settings.

 This enhancement can save time, however I can see some limitations:

  • In a given legend, I can only apply a filter for a specific type of elements. In other words it is not possible to define styles for classes, interfaces, and components in a diagram. A diagram legend definition is also restricted to a given element’s property such as the alias (note the element’s name doesn’t seem to be supported). It would make more sense to make the Filter and Applies to settings specific to each diagram legend value.
  • Matching values only work with numeric values or identical string values. It would help to have a way to set a rule like ‘Class-*’.
  • It would also be useful to have an option to define a connector’s line style based on the legend (e.g. Orthogonal, Tree Style...).
  • The tested value is shown in the legend whereas in most cases it is not relevant to the target audience. It would be better to have a separate field to set the content to display in the diagram legend, e.g. to display "Customer" for elements matching the rule where their Alias starts with "Cust-", instead of showing "Cust-" in the legend.

Info View

According to Sparx Systems, Info View is a new option aimed at providing “a simplified view of an element that allows the name, description and selected other properties to be displayed […]. This view allows a diagram to be constructed for a non-technical audience or any purpose where display of descriptions is more important than the notations defined by the modeling language.”

This can be enabled via a right click on an element > Info View > Enabled. Then properties can be chosen as needed. Below is an illustration for a class and use case:

Windows Phone 8 Wireframing support

Wireframing has been introduced in version 12 to create UI diagrams for web sites, iPhone, iPad and Android phones. Windows Phone support has been added in Enterprise Architect 12.1:

Schema Composer

The Schema Composer includes the following enhancements in version 12.1:

  • CIM Schemas can be reverse-engineered to create Schema Composer profiles.
  • When loading classes into the Schema Composer from Message Assemblies or from Class Diagrams, all classes referenced through inheritance and associations are also loaded, ensuring the inclusion of all classes required for generation of valid schemas.

SysML 1.4 support, SysML 1.2 & 1.3 enhancements

SysML 1.4 is now supported and enhancements have been added for previous SysML 1.2 and 1.3 versions:

  • Multiplicity is shown for SysML 1.2 and 1.3 ports displayed in a compartment on their parent block.
  • On Parametric diagrams, SysML 1.3 Properties owned by constraint blocks or constraint properties are now drawn as a small box with an external label.
  • The ID and Text values of SysML requirements can now be displayed in the Summary window.
  • Behaviour of copies of SysML requirements updated such that Text tagged value on copies is pinned and updated as the original is updated.

BPSim 1.0 support

Sparx Systems has announced the following: “Enterprise Architect supports BPSim, a specification for parameterization and exchange of process analysis data, allowing the creation, comparison and reuse of different simulation configurations stored within the model. BPSim takes into account a wide range of runtime information such as statistical information, random variations, queuing, scheduling and resources. BPSim configurations can be exported from Enterprise Architect for consumption in a 3rd party simulation engine”.

Note that a BPSim capable simulator is planned to be released in Enterprise Architect for the end of this year.

BPSim Enterprise Architect 12.1 business process simulation

Thursday, 24 September 2015 07:35

Feedback from the EAUG Paris 2015

I organised and attended the first edition of the EAUG in Paris last week. It's been a very busy, interesting and exciting day overall.

My colleague at VISEO, Yves Connetable, wrote a very good summary on what happened during this day. I translated it as follows to share it beyond the french speakers. I'm looking forward to the next edition in 2016!

Meeting up

Users and experts of Sparx Systems modelling tool gathered at the first French edition of the EAUG (Enterprise Architect User Group) which took place on Thursday September 17th in Paris suburbs.

The day started with a breakfast for the participants who came from all over France or abroad, from a wide range of businesses and industries. Discussions started straight away.

Lean Enterprise Architecture

The first talk from Gregory Weinbach covered the Lean Enterprise Architecture. Gregory shared his vision i.e. a “model added-value” driven Enterprise Architecture. He showed a simple metamodel aimed at defining the target vision for a large company’s IT. The metamodel was defined in Sparx EA through an MDG Technology with UML profiles and toolboxes.

The following quote was particularly notable: “The best model is the one that we haven’t done”. It illustrates an Enterprise Architecture approach based on simplification and costs reduction. To achieve this, the Enterprise Architecture team had to work with deadlines in a SCRUM project mode. The first Sprint led to a model that could be validated by users. Gregory demonstrated that an Agile Enterprise Architecture is feasible, having Sparx EA as a compatible tool for this environment.

MBSE with SysML for the biomedical industry

The second talk was about SysML and MBSE applied for the design of Medical Equipment. Our speakers were Pascal Roques, famous in France for his books on UML and SysML, and Dominique Travel, Chief System Architect at bioMérieux.

After an introduction on SysML and bioMérieux context, Pascal and Dominique provided explanations on the model-based method, and showed some of the diagrams done in EA. The wide range of features, an easy to use platform, and a low licensing cost contributed towards the project. Amongst the MBSE pillars i.e. language, tool, and method, the latter involved most efforts as it had to be tailored for the context. In most cases, purchasing the modelling tool licenses alongside a couple of training sessions are the only identified requirements for MBSE. EA models were used as a mean to share information, generate technical specifications, and improve communication between system and software teams.

Case Study on TOGAF ADM and ArchiMate with BEASI add-in

The next presentation was given by Tobias Ivarsson from Biner, based in Sweden. Tobias talked about an Enterprise Architecture project run for a large company in the Automotive Industry. Biner created BEASI, an add-in aimed at simplifying the use of TOGAF and Archimate in Sparx EA. BEASI provides a predefined structure of models, a Gap Analysis tool between baseline and target models, and an advanced relationships matrix. Gaps generated by BEASI are organized by work packages and used to define Transition Architectures; both views made it possible to create the roadmap.

The project delivered the target vision of the Procurement area and the associated roadmap. The combined use of EA and BEASI greatly simplified the deployment of TOGAF and Archimate.

Lunchtime

Lunchtime was an opportunity to enjoy a French buffet, spend time with other participants, share opinions, and follow onsite demonstrations. I shared the features of the Requester add-in from VISEO, which is due to be released soon. Ian and Jackie Mitchell ran demos and answered queries on their eaDocX Word and Excel generator for Sparx EA. Lars Lungren from Biner provided information on their TOGAF/Archimate BEASI add'in.

EAUG Paris 2015 lunch with Eiffel Tower

The surrounding view in Paris let us enjoy the famous Tower which gave its name to an object-oriented programming language based on the design by contract, and the command-query separation. This lunch break over, back to the afternoon presentations.

Model-Driven Engineering: from modelling to generating code

Paris EAUG 2015 model driven engineering with EA and MDG

It started with a franco-belgian presentation on the model-driven and code generation approach led by Albert Janssens and Michel Gibelli from the French “Ministère de l’écologie, du développement durable et de l’énergie”. They started by providing some explanations on their Khephren approach and Kamon notation. Albert then talked about extending EA with the use of UML profiles and MDG Technologies.

Examples of diagrams created for the UI and business rules were illustrated. Models were exported to XMI so they could be used in the Acceleo code generation tool. Hence, most of the new applications were generated directly from the EA models.

eaDocX Collaboration Edition: Agile Documentation

eaug paris 2015 eadocx collaboration edition documentation agile

Following the code generation came the documentation generation, and more precisely a demonstration of eaDocX Collaboration Edition aimed at simplifying the model validation process from the generated documents. Guillaume Finance went through the principles of the “Agile Documentation”, followed by a demonstration. eaDocX Collaboration Edition exports to a web server an online and interactive version of the documents generated by eaDocX from the models. This web server embeds a workflow process that lets reviewers and approvers interact on the content via comments and answers which feed directly in the EA project database. Guillaume then illustrated the collaboration between users by using both his PC browser and an iPad.

eaDocX Collaboration Edition provides a unique way to achieve efficiency in the process of validating models and specification documents. A reviewer no longer has to comment or approve a model directly in EA or from a generated Word document; instead the content can be accessed and annotated from anywhere via a url generated by eaDocX. Comments and answers are stored in the EA project and shared with other peers. Once everyone has submitted their feedback, agreed with others via comments threads, consolidating this information in the models is greatly simplified as the author is given a direct access in EA to the context for each comment, e.g. a diagram, class, attribute, requirement… This approach can really ease the access to the models for everyone in the organization!

The new Schema Composer

eaug paris 2015 schema composer xsd wsdl rodrigo nascimento

After another break, the next presentation covered a new EA12 feature, the Schema Composer.

Rodrigo Nascimento demonstrated how to generate XSD and WSDL files from enterprise entities defined in a UML Class diagram. Compared with the previous XSD export, the Schema Composer greatly improved the generation e.g. making it possible to select attributes and references to include. A few remaining issues in EA have been overcome with an add-in that Rodrigo implemented and plan to publish soon on his blog connection.rnascimento.com.

A new feature to look at!

Applied Enterprise Architecture

The last presentation was based on Enterprise Architecture case studies with PMU and Orange. In both cases a metamodel has been defined in an MDG Technology . Guillaume Miard highlighted some of Sparx EA strengths i.e. its high customization level, the relationships matrix, and traceability.

His presentation led to several questions on carrying Enterprise Architecture with EA in large organizations. A passionate debate quickly following on whether one should define a tailored metamodel or use standards such as BPMN, Archimate, and TOGAF. Some pointed out the flexibility from the first option, whilst others argued in favour of the standards based on sustainability and integration with the tools available on the market.

A success for the first go

Reaching the end of day, participants provided a positive feedback from their attendance at this first edition of the EAUG in France. Everyone agreed on the quality of the talks. Some would have liked to see more practical tips with EA, some more theory. We will take everyone’s feedback into account for the next 2016 edition to make it even more useful and beneficial. Until then, keep on modelling!

We invite everyone to register on the www.eausergroup.com website. It provides notifications on future EAUG events, and lets those who attended the event download the presentations slides.

Note: an additional post on this event has been written by Ian from eaDocX, available here.

Page 1 of 4