Guillaume

Guillaume

Guillaume Finance

VISEO (Sparx EA Expert, OMG OCSMP Model User certified)
 
Modelling consultant and expert on Sparx Systems Enterprise Architect modelling tool and solution, I'm helping clients with the model-based approach using standards for a number of contexts including:
- Software analysis, design and architecture with UML.
- Systems Engineering and MBSE with SysML.
- Enterprise Architecture, IT landscape with UML or ArchiMate.
- Business processes with BPMN.
My other activities include:
- Defining and maintaining the model repository including requirements, analysis and design for software projects.
- Remote support and expertise on Sparx Enterprise Architect modelling.
- Running training sessions on UML or SysML with Sparx Systems Enterprise Architect.
- Installation and configuration of Prolaborate web solution for Sparx EA.
 
I publish articles and news about modelling languages and Enterprise Architect on my blog www.umlchannel.com, maintain eaUtils free addin: www.eautils.com, and I participate in the European EA User Group events www.eausergroup.com
Contact details: guillaume[at]umlchannel.com

Involved since 2016 in the run of a 3 day training course on SysML with Sparx Systems Enterprise Architect tool, I re-iterate this year with an up to date content based on even more improved and advanced implementation of the Systems Modelling Language in the latest version of EA.

This training course is carried in french combines the theory with the SysML modelling language brought by Pascal Roques (SysML expert in France) alongside Enteprise Architect as a SysML modelling tool, brought by myself. 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.

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

eautils 1.14 addin pour sparx enterprise architect

Following the release of a portable version last November, eaUtils 1.14 free utilities add-in for Sparx Enterprise Architect has just been published:

  • Limited until now to composite elements, eaUtils breadcrumb trail navigation feature has been extended to support hyperlinks, packages (opening the first diagram in the package), and navigation cells (available since EA13).
  • eaUtils elements sorting has been enhanced with new options:
    • Order elements by object id, matching the order in which they've been created or imported in EA.
    • Upon a user request, sort sub-elements e.g. to process actions within an activity.

The increasing complexity of eaUtils requires a minimum level of testing before releasing a new build in order to reduce the risk of new or regression bugs. Introduced for the first time at the EA User Group London 2017, eaTests (www.eatests.com) automated testing solution for EA add-ins is integrated with eaUtils to maintain and run automated tests. The latest 1.14 updates have been included in the automated tests as discussed later in this article.

Note: eaTests is currently maintained for the sole use of eaUtils. Designed to work with other add-ins, as illustrated at the EAUG 2017 via hoTools Open Source EA add-in, please feel free to contact me on guillaume [at] umlchannel.com for more information on integrating your add-in with eaTests.

This article illustrates eaUtils 1.14 new features and the automated testing process run for this new version, before publishing it.

eaUtils 1.14 features

Generate links back to the calling diagram(s) with the improved Breadcrumb Trail navigation

The following diagram illustrates the different types of links that one can use in Sparx Enterprise Architect to open a diagram:

eaUtils 1.14 breacrumb main diagram

Composite elements support

In the "Activity3" composite element's activity diagram, eaUtils makes it possible to generate a link to go back to the above diagram ("main").

Running eaUtils generate diagram breadcrumb trail from the composite activity diagram opens the popup below.

eaUtils 1.14 breacrumb composite elements

Upon completion, two hyperlinks have been created according to the calling diagrams in the model, as shown hereafter (Back to Main... to Activities...):

eaUtils 1.14 breacrumb composite elements result

The resulting completed navigation is illustrated below:

eaUtils 1.14 breacrumb composite elements liens de retour navigation fil d'Ariane

Package support

eaUtils breadcrumb trail feature can be run from the package's main diagram to generate a link back to the calling diagrams. In the example below, the Package option must be enabled.

eaUtils 1.14 breadcrumb packages

Result:

eaUtils 1.14 breacrumb packages sparx enterprise architect navigation link

Hyperlinks support

eaUtils breadcrumb trail "hyperlinks" option must be enabled to generate a link back from Activity2's diagram to the "main" and "activities" diagrams.

eaUtils 1.14 breadcrumb hyperlinks sparx ea

Navigation cell support

The last available option illustrates the "Activities" diagram that is opened via a Navigation Cell link from the diagram "main".

  • eaUtils 1.14 breacrumb navigation cells sparx ea

Model elements sorting in EA

Sort elements by their creation order (Object ID option)

Ordering model elements in your EA repository can be very useful to help with the management of a great amount of requirements, use cases, classes, blocks, interfaces, components, etc. To cater for this need, eaUtils provides an array of settings to order by name, alias, stereotype or tagged values.

I recently worked on a model which content had been generated via a reverse engineering on the source code files. With EA applying the alphabetical order by default, there was a need to list the classes by their created order. To avoid having to write a dedicated script to achieve such result, I carried a small improvement in eaUtils by implementing "object id" as a new sorting option (note: Object ID matches the order elements are created in EA).

In the following example, classes have been created in the order matching their suffix value (e.g. -1, -2, -3, etc.). eaUtils has been opened with the Object ID option.

eaUtils 1.14 sort tri element object id sparx ea

Result:

eaUtils 1.14 sort tri element object id sparx ea result

eaUtils can also run the sorting on a tree branch of packages and sub packages via the "process tree package" option. In the example below, Test1, Test2, Test3 and Test4 packages contain the same classes.

eaUtils 1.14 sort tri element object id sparx ea tree package

Result:

eaUtils 1.14 sort tri element object id sparx ea result tree package

Sub-elements ordering support

The following ArchiMate diagram illustrates a specific case provided by an eaUtils user:

  • The business processes' alias field value match their executing order (e.g. BP-1, BP-2…).
  • BP-2 process includes subprocesses, located under that element.
  • All the process elements within this model need to be ordered by alias.

eaUtils 1.14 sort tri element alias sparx ea sous elements archimate

eaUtils provides a new sort sub elements option to extend the sorting to the sub-processes (BP2-1, BP2-2…).

Result (alias values added):

eaUtils 1.14 sort tri element alias sparx ea sous elements archimate result

eaUtils 1.14 Enterprise Architect add-in automated tests with eaTests

eaUtils is integrated with eaTests. This solution enables me to define, maintain and run test cases on eaUtils within dedicated EA projects running the following structure.

  • Data Set: model samples on which eaUtils features will be run through the automated tests.
  • Test Steps.
  • Test Runs: history log of tests runs, including results (successful or failed).

eaUtils 1.14 automated tests addin enterprise architect sparx model

The following steps and data sets have been added to cater for eaUtils 1.14 enhancements:

eaUtils 1.14 automated tests addin enterprise architect sparx model

To generate the definition of a new step, eaUtils must be configured and executed first. The following illustrates a test on the sub elements sorting (step 12):

  • Pre-condition: eaTests must be enabled (eaUtils developper mode).

eaUtils 1.14 automated tests addin enterprise architect

  • A "trace" stereotyped dependency between the testcase element and the data set package is defined.

eaUtils 1.14 automated tests addin enterprise architect step

  • The sub elements option is enabled in eaUtils settings.

eaUtils 1.14 automated tests addin enterprise architect settings

  • eaUtils sort elements is run against the data set package.

eaUtils 1.14 automated tests addin enterprise architect generate

  • The resulting order is checked against the expected post conditions:

eaUtils 1.14 automated tests addin enterprise architect sort postconditions

  • The testing step's XML definition is generated in EA System Output view:

eaUtils 1.14 automated tests addin enterprise architect output

These details are copied into the XML file used by eaTests automated tests for eaUtils add-in. It contains for each step the settings, the method to call including its parameters, the target package, the postconditions to check, etc.

eaUtils 1.14 automated tests addin enterprise architect xml content

To run automated tests :

  • Open the extend ribbon, eaUtils menu, eaUtils Run Tests.

eaUtils 1.14 automated tests addin run eatests

  • eaTests starts a new test run.
    • The XML file content (tests definition) is read and loaded in memory.
    • For each step:
      • eaUtils settings are updated.
      • The add-in method is run on the associated data set package.
      • Results in the model are compared with the post conditions.
      • Details are generated within a sequence diagram.
  • The project browser contains a new test run package with a sequence diagram for each step, and a summary is displayed via an eaTests popup window.

eaUtils 1.14 automated tests addin eatests successful

  • The following sequence diagram illustrates step 12 test run:

eaUtils 1.14 automated tests addin eatests results sequence diagram

eaUtils 1.14 is available to download from www.eautils.com/download.

 

EA User Group London 2017

This article provides some feedback on the EAUG London 2017 event, covering a full day of presentations, case studies, and user stories which took place on Friday, May 19th.

It illustrates the quality of information that has been delivered if you couldn't make it this year.

As shown on the agenda below, the day started with a keynote followed by 5 sessions, each time with a choice between 3 topics.

EA User Group London 2017 presentations agenda

Below is a feedback on some of the presentations I followed on that day.

Keynote: Innovation Needs Models

The keynote this year was run by Peter Lieber, from Sparx Systems Central Europe (Austria).
Peter shared his experience and recommendations when introducing a modelling approach within a project or company:

  • To start with, a modelling language (e.g. UML, SysML...) and a tool (EA) must be chosen. A method is paramount to structure the modelling approach and processes. The final item to consider is the existing and progressing experience.
    • It is important to highlight that a tool and language like EA + SysML are not sufficient as the methodology is mandatory to enable a modelling approach. Having no standards for the methodology, it needs to be defined according to the context.
    • The need for a modelling tool such as EA is required to achieve productivity.
  • Some useful feedback on failed and successful modelling scenarios were illustrated:
    • A successful modelling experience requires an iterative approach where reachable targets can be completed as the teams make progress.
    • An example of a failed case was given where a complex target was defined and once completed, a lack of acceptance and internal support led to a progressing drop in the related actions.
    • Another example involves the wrong idea that using everything e.g. all diagrams types from UML is the target. Resources and the team's involvement are often completely gone before getting any visible output.

Peter then focused on safety relevant systems e.g. trains, cars, aircrafts, medical MRI, etc. involving both complexity and safety. Safety is often subject to standards such as ISO 26262 for Road Vehicles Functional Safety. Looking at the challenges that need to be solved based on the ISO26262 standard, the modelling approach is considered to be the only sustainable option. This is supported by the fact that modelling makes it possible to maintain elements (e.g. requirements, components) and models (diagrams) that are all connected via traceability, coined as the model intelligence.

Where traceability is achieved with the tool, additional issues need to be addressed with the modelling methodology, e.g. a process to define in what order should one go about working on the model, what diagrams need to be used and for which purpose, where do elements and diagrams need to be stored, etc.

To enable adoption by Systems Engineers, the chosen language (SysML, UML) can be extended e.g. via a UML profile and its stereotypes. For instance the ISO 26262 ASIL levels (Automotive Safety Integrity Level) can be implemented in the system's model blocks through a range of colours.

Where diagrams are not always appropriate, details can be extracted and published through the means of Excel documents, e.g. via a Decision Matrix.

The final idea covered by Peter is to use Enterprise Architect as a platform that provides:

  • links with other tools such as DOORS to exchange requirements,
  • UML profiles and custom toolbars,
  • automated scripts,
  • running simulation and validation,
  • publish models via the Reusable Assets Service,
  • document generation.

Automated tests solution for add-ins and scripts in Enterprise Architect

My presentation was aimed at introducing an automated tests solution for EA automation scripts and add-ins, based on a personal project that I worked over the past months.

Since 2015, I maintain and share a free utilities add-in: eaUtils (www.eautils.com). It is aimed at saving time in specific scenarios involving sorting a wide array of elements within the model, or generating the alias value for elements according to their layout in a diagram.

The enhancements that I identified throughout the time, in addition to the feedback and requests received from users led to an increasing complexity level. Even if eaUtils is published as a free tool, a good level of testing and quality is required for the target users. Time consuming tests prompted the need for an automated tests solution with the following objectives:

  • Save time.
  • Define and run tests on my add-in in EA, moving away from manual tests.
  • Spend time improving tests rather than running them.

I came up with the following business class diagram to define the test structure:

eautils addin sparx enterprise architect automated tests structure

Moving to the design, I created an XML Schema model and generated the XSD file with EA to structure the XML test definition files. Having implemented a first working version of my automated tests in eaUtils, I could use it as illustrated below:

  • Run an addin feature with associated settings to generate the test data for a new step. This function prevented me from manually build the XML file which would have been time consuming.
  • Enable the automated tests module as the eaUtils developer, and run in on a test EA project.
  • Review the results via the generated sequence diagrams.
  • Fix any bug in case there's a failed test and repeat this process.

sparx enterprise architect addin automated tests process

The following illustrates the EA test project structure with packages that contain data sets, test step elements, and the automated tests execution process (load the tests description from the XML file, and for each step, load the settings, call the add-in method with the provided parameters, check the post conditions, and generate the results).

sparx enterprise architect addin automated tests run eautils

Generated sequence diagrams are aimed at reviewing results and keeping a history of run tests. Here is an example:

eautils addin sparx enterprise architect automated tests results

I ran eaUtils addin automated tests in Enterprise Architect via the first part of my demonstration, having only as a demo effect a spilled glass of water which did not reach my laptop. Thankfully no IT related demo issue.

The second part of my presentation covered the next step forward by making this solution available for other add-ins and even scripts. There are numerous EA automation scripts and add-ins out there. Most of them are specific to a project and therefore not shared with the community, whilst the remaining ones are released as open source, free, or commercial tools. Note that EA add-ins are listed by Sparx Systems on their third party extensions page.

In order to integrate this automated tests solution with other addins and scripts, I selected the following candidates:

  • hoTools add-in, an Open Source project maintained by Helmut Ortmann. An Open Source project was paramount so I could access and amend the C# code as part of this study (with the help and support of Helmut).
  • EA scripting library shared by Geert Bellekens.
  • A selection of scripts defined for a client: Lock Package and a Teiid virtual DB schema DDL import.

The tasks that followed were:

  • Extract a generic library from eaUtils automated tests into a new C# project: eaTests.
  • Update eaUtils add-in to use eaTests generic library.
  • Update hoTools add-in to use eaTests.
  • Define a new add-in to tests scripts.

eatests

As a result I successfully ran tests on one hoTools feature, a script from Geert, and 2 of my scripts. These were illustrated in the second part of the demonstration.

This study has led to a new solution called eaTests that has a dedicated site (www.eatests.com). The foreseen enhancements for eaTests library are mainly linked to the type of tests to carry on post conditions.

Replacing existing solutions with Enterprise Architect and extending function with custom MDGs

interserve eaug London presentation

Graham Williamson from Interserve, a major construction company with 85,000 staff worldwide, shared his experience on using Sparx EA to define Enterprise Architecture models, custom ArchiMate 3 stereotyped elements, and EA model validation.

The aim of an Enterprise Architecture was to move away from paper-based processes and achieve a digital construction. The audit of existing services, locations, customers, processes, applications, data, and technologies quickly led to the need of a modelling tool. Sparx Enterprise Architect successfully fulfilled this need, delivering the following:

  • Custom meta model
  • Flexible modelling
  • Archimate 3 support
  • UML profile and stereotypes support
  • Model search based on SQL queries
  • Document generation
  • Automation tools
  • Low license cost

Graham shared the meta model via the selected Archimate 3.0 relationships and elements, followed by examples of Archimate 3 stereotypes to handle additional properties. All Interserve stereotypes were made available via a custom toolbox.

EA 13 Model Validation feature was used to make sure that relationships between elements were valid according to a set of rules.

  • Validation rules i.e. a list of permitted relationships first need to be set up in EA. To save time in defining them in the required XML format, a custom add-in has been created to provide a handy user interface (e.g. Archimate associations allowed between an Application Collaboration and a Meaning element).
  • The model validation is then run in EA for a selected package, displaying any error found.

Graham then talked about customizing EA diagrams to provide a suitable view for stakeholders:

sparx enterprise architect archimate example eaug london

It was interesting to see a practical use of Archimate plateau elements as illustrated below (definition from the Open Group: "A plateau represents a relatively stable state of the architecture that exists during a limited period of time").

sparx enterprise architect archimate plateau example eaug london

As relationships couldn't be connected to an Archimate plateau element whereas this level of traceability was expected, the solution involved custom searches based on SQL queries with results grouped by Plateau. Search results enabled Interserve users to review each Plateau or architecture state content.

Other used EA features included:

  • The relationship matrix to maintain links between plateau elements and other model elements.
  • Roadmap diagram for the transformation planning.
  • Heatmap and charts.
  • Traceability and insert related elements in a diagram to build the business capability model.

Using Enterprise Architect and SysML for the development of an In-Wheel Motor System

protean in wheel motor systems sysml sparx enterprise architect

I was looking forward to this presentation as I'm currently involved in an MBSE (Model Based Systems Engineering) project in the automotive industry for ISO 26262 safety compliance.

John Gladstone works for Protean Electric Ltd, a UK based company that develops in-wheel electric motor systems for hybrid, plug-in hybrid and battery electric light-duty vehicles. John's presentation provided an interesting feedback on the challenges that have been addressed with SysML and Enterprise Architect models.

Project context

John opened a SysML BDD diagram to illustrate the project context.

  • The development of In-Wheel Motor systems falls under the scope of the ISO-26262 (Road vehicles – Functional safety), which requires the identification of Safety Goals
  • The In-Wheel Motor system must include safety mechanisms which integrity is fulfilled by Design and Safety Architecture models. Such mechanisms are intended to prevent hazardous events such as an unintended acceleration of the vehicle.

System behaviour

The system behaviour was modelled with use cases and sequence diagrams for the scenario details. In order to model the system behaviour when things go wrong, Protean team has invented an actor called the Gremlin.

As a result SysML sequence diagrams had the driver and gremlin lifelines as the actors, and the electric vehicle lifeline in the middle with all interactions.

Modelling needs

Another BDD diagram was used to illustrate a complete view of the modelling needs for a motor system:

  • An architecture framework to comply with architectural integrity via consistency, completeness, and correctness as per the ISO-26262 standard needs.
  • The system is described by the architecture and modelled by SysML practitioners who use SysML modelling language, a semi-formal notation highly recommended by the ISO-26262. 

Understand SysML

John shared his recommendations on the literature to read about SysML, including:

  • SysML Distilled: A Brief Guide to the Systems Modeling Language from L.Delligatti
  • SysML for Systems Engineering from Jon Holt and Simon Perry (Simon attended this EAUG)
  • A practical guide to SysML from S.Friedenthal and A.Moore

Architecture Framework model

The structure of the framework model was described as follows:

  • It defines a number of viewpoints (perspectives).
  • It is implemented using an MDG Technology that contains SysML stereotypes, toolboxes, and custom model searches.
  • It is defined in the model repository alongside a Design Model.

Process and methodology model

Guidelines and diagrams describing the process to follow according to the methodology have been defined for each viewpoint.

Example model

To help understanding and improving this modelling environment with frameworks, processes and a methodology, an example model has been defined. This worthwhile exercise is based on an example system:

  • Sufficiently defined to understand a practical results from the existing frameworks and processes.
  • Not in scope of a motor system so nobody can argue about the details.
  • Introducing fun: Protean chose the Starship Enterprise from Star Trek series as the system. This led to system elements such as an antimatter reactant injector and storage pod, a warp nacelle, etc.  

Final topics

Remaining covered topics included:

  • The need of a glossary of terms to enforce using the right vocabulary the system or ISO standard.
  • Generate documents from the models to minimize overheads.
  • Structure the models with a library of elements (e.g. blocks, use cases, requirements...) and views/perspectives.

Sparx EA community of users

Throughout this 2 day event, I had the opportunity to meet great people. It was very interesting to share ongoing work and questions around EA, whether the context applied to software projects involving analysis and design, systems engineering with SysML and MBSE, or enterprise architecture with UML or ArchiMate. It was very nice catching up or meeting users that I know via Sparx forum or other online means throughout the year, giving an opportunity for a face to face discussion.

EAUG events are aimed at making the large community of EA users meeting up, gain valuable knowledge, and create new opportunities.

I'm looking forward to next year's EA User Group.

 

Preparing my presentation at the upcoming EA User Group in London (19/05/2017), I uploaded a video about this subject on Youtube.

It provides a first glimpse on the automated test module for Sparx Enterprise Architect addins that I will discuss in detail at the EA User Group London 2017.

Click on the following url to open the Youtube video: Automated tests with eaUtils addin for Sparx Enterprise Architect video.

 

There is still time to register at the EA User Group London 2017 from www.eausergroup.com.

Please feel free to contact me on guillaume[at]umlchannel.com if you have any question or comment.

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:

 

Page 2 of 5