Enterprise Architect version 15.1



My Profile

Social Media Channels

facebook  twitter  youtube   linkedin

Displaying items by tag: enterprise architect

Photo by Mr Cup / Fabien Barral on Unsplash unsplash-logoMr Cup / Fabien Barral

Have you ever wanted to generate code from your Enterprise Architect UML or SysML models? Have you tried to customize Enterprise Architect’s code template framework? Do not give up the dream of project-specific code generators and read how easily they can be implemented.

The Need for a Code Generator

A good software or system architecture is on a higher abstraction level compared to the implementation. It should be a consistent model that documents decisions and neglects unnecessary, often technical, details. Consider, for instance, the class diagram in Figure 1. It shows a domain model that defines the data structure needed for a shop to allow customers to order articles. The properties of each class are modeled in detail, but other unnecessary aspects like operations to access properties are left out.

Example UML model
Figure 1: Example UML model


If the software architecture/design is made upfront before starting with the implementation, a lot of cumbersome and error-prone work can be avoided by code generation. Commercial out-of-the-box code generators often do not change the degree of abstraction. That’s why they often do not match the needs of the project.

The code template framework of Enterprise Architect can be tailored according to the project-specific needs. But this requires some initial training. And often the expected outcome is hard to achieve as described in Eclipse-based Code Generation for Enterprise Architect Models.

A Simple Project-specific Code Generator

I prefer a general-purpose programming language such as Java or Xtend to implement code generators. In particular Xtend is well suited to implement templates because of its template expressions. They allow one to embed executable code inside the text to be generated. It feels like programming PHP, JSP, or JSX. The code in Listing 1 shows a code generation template written in Xtend. It generates Java classes for the classes declared in the class diagram of Figure 1.

package com.yakindu.ea.examples.orderingsoftware.template

import com.yakindu.bridges.ea.examples.runtime.codegen.EACodegen
import org.eclipse.uml2.uml.Class
import org.eclipse.uml2.uml.NamedElement

class ClassTemplate {
   def String generate(Class element) '''
      package «element.package.javaQualifiedName»;
      «val superType = element.generals.findFirst[true]?.name»
      «val extends = '''«IF !superType.isNullOrEmpty» extends «superType»«ENDIF»'''»
      public«IF element.isAbstract» abstract«ENDIF» class «element.name»«extends» {
         «FOR attribute : element.ownedAttributes SEPARATOR System.lineSeparator»
            «val type = attribute.type?.javaQualifiedName»
            «IF 1 != attribute.upper»
               «val defaultValue = '''new java.util.LinkedList<«type»>()'''»
               private final java.util.List<«type»> «attribute.name» = «defaultValue»;
               private «type» «attribute.name»; 
         «FOR attribute : element.ownedAttributes SEPARATOR System.lineSeparator»
            «val type = attribute.type?.javaQualifiedName»
            «IF 1 != attribute.upper»
               public List<«type»> get«attribute.name.toFirstUpper»() {
                  return «attribute.name»;
               public «type» get«attribute.name.toFirstUpper»() {
                  return «attribute.name»;
            «IF 1 == attribute.upper»
               «val params = '''«type» «attribute.name»'''»
               public void set«attribute.name.toFirstUpper»(«params») {
                  this.«attribute.name» = «attribute.name»;
   protected def String getJavaQualifiedName(NamedElement element) {
      element.qualifiedName.replace("::", ".")
Listing 1: Example code generation template written in Xtend


The generated Java code shown in Listings 23 and 4 does not look like handwritten, because qualified names are used instead of imports. This will be improved later in Figure 4 by methods collectImports and printImports.

package com.example.orderingsoftware;

public abstract class AbstractIDObject {

   private java.util.UUID id; 

   public java.util.UUID getId() {
      return id;
   public void setId(java.util.UUID id) {
      this.id = id;
Listing 2: Java code of class AbstractIDObject generated by the code generation template in Listing 1


package com.example.orderingsoftware;

public class OrderItem extends AbstractIDObject {

   private java.math.BigInteger amount; 
   private com.example.orderingsoftware.Article article; 

   public java.math.BigInteger getAmount() {
      return amount;
   public void setAmount(java.math.BigInteger amount) {
      this.amount = amount;
   public com.example.orderingsoftware.Article getArticle() {
      return article;
   public void setArticle(com.example.orderingsoftware.Article article) {
      this.article = article;
Listing 3: Java code of class OrderItem generated by the code generation template in Listing 1


package com.example.orderingsoftware;

public class Order extends AbstractIDObject {

   private java.util.Date date; 
   private com.example.orderingsoftware.Customer customer; 
   private final java.util.List<OrderItem> items = new java.util.LinkedList<OrderItem>(); 

   public java.util.Date getDate() {
      return date;
   public void setDate(java.util.Date date) {
      this.date = date;
   public com.example.orderingsoftware.Customer getCustomer() {
      return customer;
   public void setCustomer(com.example.orderingsoftware.Customer customer) {
      this.customer = customer;
   public java.util.List<com.example.orderingsoftware.OrderItem> getItems() {
      return items;
Listing 4: Java code of class Order generated by the code generation template in Listing 1


If you look carefully at the template in Listing 1, you will realize that it does not know anything about Enterprise Architect. Instead, it handles instances of the UML metamodel which is available in Eclipse thanks to the Eclipse UML 2 project. The missing connection between Enterprise Architect and UML is the YAKINDU EA-Bridge. It is an API that offers UML-compliant read and write access to Enterprise Architect UML and SysML models. The database behind an Enterprise Architect project is automatically transformed into instances of the UML metamodel. This has three major advantages for you as a developer: 

  • Your code is compatible with other tools that are based on the UML 2 project such as Papyrus.
  • Highly performant read and write access to Enterprise Architect models without the need to reverse engineer the database schema of Enterprise Architect.
  • You do not have to learn anything about the API of the YAKINDU EA-Bridge. It is completely hidden for you as a developer, because the YAKINDU EA-Bridge integrates itself into the ecosystem of the Eclipse Modeling Framework (EMF).

The YAKINDU EA-Bridge comes with an optional Eclipse IDE integration which allows one to implement project-specific code generators. Those code generators are often prototypically developed and are executed only within a certain context. Thus, it is crucial that the development effort is less compared to  manual coding. To implement a project-specific code generator, all you have to do is to place the EAP file in an Eclipse project and to annotate methods in the code generation template with @EACodegen. Annotated methods should accept the UML element for which code should be generated as the only parameter and return the generated text. If your Enterprise Architect model is hosted by a remote database such as Microsoft SQL Server, you can use a shortcut file instead of an EAP file.

When the project is built, e.g. automatically or manually via the main menu item ‘Project, Clean…‘, the template is launched for all UML classes declared in all EAP files. Of course, only EAP files stored in the template’s project are considered. The generated code is saved in a file specified by the qualified name of the class. The file extension is specified by the argument of the @EACodegen annotation. The structure of the Eclipse project can be seen in Figure 2.

Example project structure in Eclipse
Figure 2: Example project structure in Eclipse


Please observe that the YAKINDU EA-Bridge is an API. It allows you to process the Enterprise Architect model in any way. Indeed, the original use case were comprehensive code generators such as an Autosar RTE generator based on UML architectures. 

Generating More than one Artefact per Model Element

Let’s make the example more exciting by implementing a product line with two different persistence approaches: One that uses JPA to store data in a relational database and one that uses HBase as a big data store.

I suggest implementing a persistence manager which can be used to load and save instances. Only the product based on JPA should allow one to start and complete transactions. Furthermore, I would like to place JPA specific annotations in the Java classes. Figure 3 shows the methods offered by the persistence manager.

Outline of class PersistenceManager handling the the domain classes in Figure 1
Figure 3: Outline of class PersistenceManager handling the the domain classes in Figure 1


The consequence is now, that the implementation of all six classes is slightly different in both products. The Java code in Listings 567 and 8 shows an excerpt of the code to be implemented.

package com.example.orderingsoftware;

public class Article extends AbstractIDObject {

   private String name; 

   public String getName() {
      return name;
   public void setName(String name) {
      this.name = name;
Listing 5: Java code of class Article with HBase as persistence approach


package com.example.orderingsoftware;

import javax.persistence.Entity;
import javax.persistence.Table;

@Table(name = "ArticleTable")
public class Article extends AbstractIDObject {

   private String name; 

   public String getName() {
      return name;
   public void setName(String name) {
      this.name = name;
Listing 6: Java code of class Article with JPA as persistence approach


public class PersistenceManager implements AutoCloseable {

   private final Table articleTable;

   public static final byte[] MODEL_FAMILY = "Model".getBytes();

   public static final TableName ARTICLE_TABLE_NAME = TableName.valueOf("ArticleTable");

   public Article getArticle(UUID id) {
      try {
         if (id != null) {
            Get get = new Get(id.toString().getBytes());
            if (articleTable.exists(get)) {
               Result r = articleTable.get(get);
               Article result = new Article();
               result.setName(Bytes.toString(r.getValue(MODEL_FAMILY, ARTICLE_NAME_QUALIFIER)));
               return result;
         return null;
      } catch (Exception e) {
         throw new RuntimeException(e.getMessage(), e);

   // ...
Listing 7: Excerpt of the Java code of class PersistenceManager with HBase as persistence approach


public class PersistenceManager implements AutoCloseable {

   private EntityManager entityManager; 

   public Article getArticle(UUID id) {
      if (id != null) {
         return entityManager.find(Article.class, id);
      } else {
         return null;

   // ...
Listing 8: Excerpt of the Java code of class PersistenceManager with JPA as persistence approach


Feasible solutions to realize the product line are: 

  • To use inheritance. That would require an interface definition with the public API for each class and to implement it for JPA and for HBase. The consequence would be that the rest of the application must be adjusted to operate only on the interfaces and never on the concrete classes. 
  • To copy, paste, and modify the implementation for both products would avoid the need to modify the rest of the application. Maintaining two variants might sound reasonable. But is this still the case with an increasing amount of variants? You should think carefully about the pros and cons of copy and paste.
  • To use a code generator which generates the product specific code. The classes realizing code generation templates could be based on a common implementation and each subclass could adjust the product-specific parts. 

I prefer the last solution. The outline in Figure 4 shows the refactored class template of Listing 1. Each introduced method generates a specific member of a Java class. This allows me to override these methods in the product-specific templates. In Listing 9 for instance can be seen, that JPA specific annotations are placed before the class definition.

Outline of the refactored class ClassTemplate
Figure 4: Outline of the refactored class ClassTemplate


class JPAClassTemplate extends ClassTemplate {
   def IFile path(Class element, IFile ^default) {
      val path = "com/example/orderingsoftware/" + ^default.name
      return getTargetFilePath("jpa", path)
   override generate(Class element) {
      return super.generate(element)
   override printClassDeclaration(Class element) '''
      «IF element.isAbstract»
         @Table(name = "«element.name»Table")

   // ...
Listing 9: Excerpt of the code generation template for JPA written in Xtend


The method path(Class, IFile) in the template subclasses annotated with @EACodegenFile is used to define the target location at which the generated code should be saved. It has two parameters. The first one is the UML element for which code should be generated. The second is the default location where the generated code should be stored. The return value of the annotated method is the adjusted location at which the generated code should be stored.

The screenshot in Figure 5 shows all templates. The arrows point to the files that are generated by each of them. In addition to the production code, also the test code is generated.

Code generation templates for JPA and HBase and the generated source files
Figure 5: Code generation templates for JPA and HBase and the generated source files



Modern general-purpose programming languages such as Xtend are well suited to implement complex code generators. The input could be a UML model, possibly modeled in Enterprise Architect. The YAKINDU EA-Bridge transforms the relational database behind an Enterprise Architect model on the fly, and completely hidden, into instances of the UML metamodel. There is no need to learn the proprietary code generation language provided by Enterprise Architect or to reverse engineer the database schema of Enterprise Architect. 

The Eclipse IDE integration of the YAKINDU EA-Bridge allows one to implement project-specific code generators at low costs in a short time. In this way, you can save a lot of cumbersome, error-prone, and mindless implementation work.

If you want to see and run the full example for yourself, try out the YAKINDU EA-Bridge. The presented example is one of the examples shipped with the YAKINDU EA-Bridge.

Published in Tutorials
Monday, 06 May 2019 06:48

June Training Week

Sparx Systems is pleased to announce a new Sparx Systems University Week scheduled June 3rd-7th.

During Sparx Systems University week, a range of both free and paid training sessions are hosted at training locations around the world and online.  All sessions are supported by Sparx Service providers and qualified trainers in a number of different languages.

This week-long event is a unique opportunity to gain knowledge and improve skills around Enterprise Architect. June's course line-up covers a broad range of topics, and has been developed with both introductory and advanced users in mind.


Provider Date Timezone Course Title Location Language
SparxSystems Central Europe 4th June CET Delivering an Agile Enterprise with Enterprise Architect (FREE) Online Deutsch
SparxSystems Central Europe 4th June CET IEEE 1471-2000 - IEEE Recommended Practice for Architectural Description for Software-Intensive Systems with Enterprise Architect
Online English
SparxSystems Central Europe 5th June CET Cyber Security Modeling for the Automotive Industry with Enterprise Architect Online English
SparxSystems Central Europe 5th June
CET Telcos, TM Forum Frameworx by Transware, and Cyber Security Modeling with Enterprise Architect (FREE) Online English
Sparx Services UK 3rd June
GMT Enterprise Architect Fundamentals

Livingston, Scotland English
Sparx Services UK 3rd June
GMT Enterprise Architect Profiles Workshop

Livingston, Scotland English
Sparx Services UK 4th June
GMT Enterprise Architect and BPMN

Livingston, Scotland English
Sparx Services UK 4th June
GMT Enterprise Architect Excel Scripting Workshop Livingston, Scotland English
Sparx Services UK 5th June
GMT Enterprise Architect and ArchiMate Business

Livingston, Scotland English
Sparx Services UK 5th June
GMT Enterprise Architect Documentation Workshop

Livingston, Scotland English
Sparx Services UK 6th June

Scottish Gathering of Enterprise Architect Users (EA User Group Meeting)

Attend a Sparx Systems University course and gain FREE entry

Livingston, Scotland English
Sparx Systems Japan 21st June
JST Methodology and Process with modeling tool (FREE)

Minato, Tokyo, Japan. Near Shinbashi Station Japanese
Sparx Services North America 5th June CDT Business Process Modeling with Sparx Enterprise Architect

Online English
Sparx Services North America 6th June CDT Sparx Systems Enterprise Architect Fundamentals for Solution Developers

Online English
Sparx Services North America 7th June CDT Sparx Systems Enterprise Architect Fundamentals for Business Analysts

Online English
Sparx Systems  India
 IST UML training using Sparx Systems Enterprise Architect
Online English
Sparx Systems  India    IST Business Analysis using Sparx Systems Enterprise Architect Online English
Published in Events

Creating Navigable Models for HTML Publication

By Phil Chudley, Prinicipal Consultant at Dunstan Thomas Consulting


Once a model has been developed in Enterprise Architect, it can be shared to users who do not have Enterprise Architect by publishing the model to HTML where the model can be viewed in a browser.

However, out of the box, this common method of publication to HTML suffers from the following problems:

  1. Unless the model is organised very logically, the non-Enterprise Architect user can struggle to find their way around the model.
  2. The presence of the Project Browser tree in the Web Page(s), can be confusing to the non-Enterprise Architect user where too much information is provided.

In reality, the non-Enterprise Architect user is most interested in the diagrams, and ideally would wish to navigate the model using these diagrams.

Navigation techniques are already built-in to Enterprise Architect, namely:

  • Composite Elements.
  • Hyperlinks.
  • Navigation Cells.

If a model is built so that it can be navigated purely via diagrams using the techniques above, then the presence of the project browser tree in the HTML publication is rather irrelevant. The question is how can this project browser tree be removed from the web pages? The answer can be found in this article.

Creating a Model that can be Navigable via Diagrams

This section uses built-in features of Enterprise Architect. For an example, let us consider the following model that has been built already in Enterprise Architect:

Creating Navigable Models for HTML Publication

This model is a “typical” UML model supplemented with Requirements, User Interface Screens and a Dashboard. As its stands it is quite difficult to navigate for the non-Enterprise Architect user, therefore we add to the model the following:

  • Table of Contents diagrams that contain Navigation Cells to other diagrams.

A navigation cell is created very easily by:

  1. Creating a diagram (I use the EA Extended Custom diagram type) in a Package.
  2. Navigate to a diagram.
  3. Drag and drop this diagram to the diagram created in step 1) and choose Navigation Cell from the list of options.
  4. Choose an appropriate image.

For the model illustrated above, we begin by:

  1. Adding a View named TOC (or Table of Contents) to the model root.
  2. Move this to be the first view in the model.
  3. Add to this View a diagram (for example an EA Extended Custom diagram type).

This is illustrated below:

Creating Navigable Models for HTML Publication

The next step is to add navigation cells to this newly created diagram and there are two basic approaches:

  1. Add a navigation cell for each diagram within the model to the diagram named TOC.
  2. Create “TOC” diagrams for each view / package and created navigation cells for these lower level TOC diagrams.

Which option you use depends upon the complexity of the model, in this example I used option 2) which resulted in the TOC diagram being populated with navigation cells as shown below:

Creating Navigable Models for HTML Publication

As an example of a lower level TOC diagram, consider the package named User Interface which is shown expanded below:

Creating Navigable Models for HTML Publication

Each of the packages inside User Interface has a User Interface diagram. Generally I place one diagram in one package.

Creating navigation cells for these diagrams yields the TOC diagram for the User Interface package as shown below:

Creating Navigable Models for HTML Publication

This process is repeated for other Views and Packages.

We now have a model that is navigable entirely via diagrams commencing with the top level TOC diagram.

In this example I created a “back link” to the level above, using a hyperlink and setting the Behavior property Printable to be false.

The final step is to ensure that when the model opens, the TOC diagram is displayed by default. This is achieved by:

  1. Opening the TOC diagram.
  2. Select the Layout Ribbon.
  3. Select ManageSet as Model Default.

Publishing to HTML

The result of selecting the Model Root node and using the Publish to HTML function, out of the box is as shown below:

Creating Navigable Models for HTML Publication

The modifications we are going to make are as follows:

  1. Change the header image.
  2. Remove the Project and Advanced information from the bottom of the diagram.
  3. Remove the Project Browser Navigation tree.

Making the Modifications

Changing the Header Image

This is very easy to do, as there is an option on the HTML generation dialog to navigate to and select an alternate image. However, there is a “gottcha”. So that the chosen image will fit in the frame at the top of the HTML page, it must be less than or equal to 60px in height.

In this section, I will show you how to customize the HTML output so that the frame resizes to fit the height of your image.

The following steps are used:

  1. Discover the height of your image (this can be achieved with Windows File Explorer by positioning the mouse on the image file and examining the tool tip that displays). The image that I am going to use has a height of 56px.
  2. Using the Resources View, open the section named Web Style Templates, right-click and select Create New HTML Template.
  3. Enter a suitable name and click OK.
  4. In the dialog that displays the list of Templates, select the template named CSS – Main.
  5. Scroll down to line 248 as shown below:
    Creating Navigable Models for HTML Publication
  6. Change line 252 to be the height of your image + 1, in my example this is 57.
  7. Similarly, change line 259 to be the height of your image, in my example this is 56:
    Creating Navigable Models for HTML Publication
  8. Click Save.
Remove the Project and Advanced information from the bottom of the diagram

The following steps are used, assuming that the dialog showing the HTML Templates is still visible, if not, right click your Web Style Template in the resources and select Modify HTML Template:

  1. Select the Template named Body – Diagram:
    Creating Navigable Models for HTML Publication
  2. Delete lines 13 through 32 inclusive:
    Creating Navigable Models for HTML Publication
  3. Click Save.
Remove the Project Browser Navigation tree

Saving the best for last, our final modification is to remove the Project Browser Tree. To achieve this the Javascript Template needs modification as follows:

  1. Select the Template named Javascript:
    Creating Navigable Models for HTML Publication
  2. Scroll down to line 520 which should be the function named resizePage().
  3. Scroll down to line 549 and replace this line with the following lines of Javascript:
    Creating Navigable Models for HTML Publication
  4. Scroll back to line 85 which should be the function named initLoad(src, toc, home).
  5. Insert the following line of Javascript between lines 128 and 129:
    Creating Navigable Models for HTML Publication
  6. As a check the modification above should be as shown below:
    Creating Navigable Models for HTML Publication
  7. Click Save and then Click Close.

The Result

To view the effect of the changes, re-publish the model to HTML this time selecting your Web Style Template and navigating to your Image:

Creating Navigable Models for HTML Publication

The result as shown in the Browser is as shown below:

Creating Navigable Models for HTML Publication


The next step would be to modify the HTML templates such that when the user clicks an element which does not link to a diagram, nothing happens rather than the default behavior of displaying an element properties screen. Alternatively, the element properties screen could be modified to display just name and notes for example. Once I have worked out how to do this, I will share this in another tutorial.

Phil Chudley
Principal Consultant
Dunstan Thomas Consulting
Follow me on Twitter @SparxEAGuru

Published in Tutorials
Tuesday, 26 March 2019 21:38

Delivering an Agile Enterprise

Digital transformation, new business models and the rapid pace of change have had a profound impact on the modern enterprise. Agile approaches can lead to faster feedback cycles, improved stakeholder engagement, reduced waste, improved transparency, predictable delivery and better business outcomes.

The Sparx Systems tool suite supports enterprise agility through better collaboration, strategic management, capability modeling, Kanban diagrams, user stories, integrated communication tools, project management features, traceability and much more.

Presented by Chris Armstrong and Scott Hebbard.

Register Today at:


PresenterFirstName PresenterSurnameScott Hebbard

Published in News
Monday, 11 February 2019 17:29

Meet Sparx Services Central Europe Q1/2019

There are a great number of opportunities to meet Sparx Services in Europe:

 Event Location Date Content/Link Special
EAM Day Vienna Feb, 27th 2019

http://www.conect.at/index.php?id=1119&Event[item]=1617 (German)

You can meet the guys from Belgian Railways there: https://community.sparxsystems.com/case-studies/1189-snfc4ea

Registered Enterprise Architect Users get one ticket for free (first come first serve) please send a mail to: This email address is being protected from spambots. You need JavaScript enabled to view it. 
Cyber Security Cluster Austria Days Vienna Mar, 13th + 14th 2019

https://www.ait.ac.at/news-events/single-view/detail/5765/?no_cache=1 (German)

There you can see the pretty new implementation of Cyber Security Modeling for Enterprise Architect the first time.

Entry is for free.
CIO Summit Vienna Apr, 3rd+4th 2019


The event in Austria, Germany and Switzerland for CIOs

Free for CIOs, CDOs and IT Managers - for all others 3.200EUR - there you can meet with 400+ CIOs
Published in Events

As of today, Sparx Systems will be offering Prolaborate as a core component of The Pro Cloud Server. Prolaborate leverages the model data in Enterprise Architect to allow the wider user community to analyze, interact and make key decisions.



For more information, please read the official press release on the Joint Venture between Sparx Systems and Sixth Force.



Published in News

 Using Enterprise Architect and the Pro Cloud Server in Education

System Thinking in IT Solutions and Digital Fabrication - Course



What is the Cost of Poor Quality IT Solutions

Who knows the true cost of poor qualitry IT systems? Who cares about it? How can you measure the quality of IT solutions?  We can estimate, but it must be a relatively large proportion of the final cost for the completed solution. And it is not just a matter of money.

I am convinced that a systematic approach throughout the whole lifecycle of IT solutions must be more advantageous than using a quick and dirty approach.  ‘One of the aspects of system approach is the rigorous documenting (modeling) of the solution, from idea itself, analysis, design, implementation, go live, up to the end of operation and deployment'.

Based on experiences from praxis I am trying to share my knowledge with young people, who haven't developed bad habits yet. For that reason, I am organizing the courses for students of universities and middle schools, to encourage young people to think about their solutions before they start to work. The way, how to manage it, is to use modern technology and methodology.

It is not wasting time. Our path to solutions is our everyday journey. Every day we are discovering new knowledge and reaching new experiences, at least.

I would like to share my experiences from university in Slovakia, where we are realizing the small IT solutions. The main goal is not only developing a solution, but also developing an appreciation of how we are managing the solution. It could be called ‘Model driven solution’.

The name of the course is ‘System Thinking in IT Solutions and Digital Fabrication’

This course was created on the basis of cooperation among FABLAB CVTI,  ‘CVTI Bratislava, ‘Comenius University Science Parkand ‘Faculty of Informatics and Information Technologies, Slovak University of Technology in Bratislava’ ‘FIIT STU’, AGNICOLI-Through Knowledge to Freedom -nonprofit organization, FabLabNet, Interreg Central Europe Programme, CE 283. The main objective of the course was to bring students closer to digital manufacturing and to reach new professional habits – generating and sharing knowledge among participants.

This course was focused on integration of 2 approaches. Rapid prototyping in the field of 3D printing, IoT, Laser cutter, CNC cutter and system approach. Students received the basic information about technology presented in FABLAB CVTI and general overview about holistic approaches in IT (TOGAF, ITIL). During the whole course we have used the client UML modeling tool ‘Enterprise Architect’ by Sparx Systems and server background Sparx Cloud Services, Pro Cloud Server with WebEA access. Licenses for ‘Enterprise Architect’ clients were provided by FIIT, licenses for Pro Cloud Server (WebEA) were provided by Sparx Systems company with close cooperation from Sparx Systems Central Europe.

The topic is quite extensive, and its comprehensive description goes beyond the purpose of this article. If interested in more details, please, This email address is being protected from spambots. You need JavaScript enabled to view it..

Roman Kazička

Published in Case Studies

A lot of customers at our seminars and workshops on BPMN, enterprise architecture, business analysis and requirements gathering, have 1 thing in common: their company uses the Enterprise Architect® version 12 , 13 or 14 tool from SparxSystems®. They use it mainly for implementing and testing software, and only occasionally for analysing and modelling business processes and requirements.

Enterprise Architect from SparxSystems offers you a complete environment that supports you in every phase of a project, from requirements gathering to the implementation and testing of software. Hence, Enterprise Architect offers something for every role in a project and the interaction between them, but also allows the streamlining, consistency and communication of deliverables, which can be improved in many companies.

During this workshop, we want to focus on the lesser known applications of Enterprise Architect, such as enterprise architecture modelling (with ArchiMate), requirements analysis and documentation, as well as business analysis, process modelling, simulation of business processes, software project management, data modelling, etc. The use of this tool for software implementation is very well known, so this will get less attention.

Your course leader and moderator is Christian Gijsels of GIJSELSDOTCOM. He has a lot of experience in business analysis, requirements management and modelling business processes with Enterprise Architect, and he uses this and other tools almost every day. Hence, you get a very practical and pragmatic view during this intensive, interactive and inspiring workshop, which is also available in-company.

Education in Belgium : 25 / 10 / 2018 - More info: https://www.itworks.be/

Education in The Netherlands: 28 / 11 / 2018 - More info: https://adeptevents.nl/event/cursus-enterprise-architect




Published in Events

SparxSystems CE: Belgian Railway relies on Enterprise Architect

In order to prepare itself for the liberalisation of national railway markets in 2023, the Belgian National Railway Company SNCB has developed an architecture continuum using Enterprise Architect over the last three years. With more than 1000 applications in use and a huge volume of data, this was not an easy task. Today, IT decisions can be made more easily based on reliable information, and the company is now able to move toward a modern IT landscape.


 Luc Alix (left), Head of Enterprise Architecture and Alain Garsoux (right) in charge of Architecture Governance at Ypto, a subsidiary of the Belgian National Railway Company

Vienna/Brussels – In 2005, the Belgian National Railway Company was divided into three public companies, in accordance with European and Belgian regulations. This naturally had considerable consequences for the common IT: Thousands of components (applications, servers, networks, etc.) had to be recorded, analysed and reassigned. To ease this IT transformation, SNCB decided to create a new IT company called “YPTO”, a 100% subsidiary. Ypto started to invest in its enterprise architecture with Enterprise Architect from Sparx Systems. Luc Alix, Head of Enterprise Architecture, hired Alain Garsoux to promote and improve Ypto’s architectural knowledge database (continuum). Alix: "We very soon decided to define our own architecture framework by adopting and integrating major architecture standards like Archimate™, TOGAF™, BPMN, SAFe, etc.. The adopted prescriptive language helps the decision-making process by forcing us to address the important concerns and not getting lost in details.”

Enterprise Architect: Cost-effective and adaptable

Since a suitable tool is naturally required for the construction of such a complex IT landscape, the decision was made to purchase based on specificity. Enterprise Architect proved to be the cheapest and most adaptable solution. A. Garsoux explains: "Being active in the public sector forces us to regularly reconfirm the purchase, the good price of the platform has so far always made it possible to extend the licenses and to avoid migration tasks. This allows us to continuously work with the tool, which has now been ideally adapted and makes our architecture work much easier and more productive.” Hans Bartmann, Managing Director of SparxSystems Central Europe: "We are pleased that Enterprise Architect has so far overcome the hurdle of tenders so well due to its excellent price-performance ratio, adaptability and openness to many languages and standards. At the same time we congratulate SNCB on their state-of-the-art IT architectural solution, which can also serve as a very good example for other companies!”


The EA Shared Model Repository provides an overview The EA Shared Model Repository provides an overview of the mapped areas and guidelines for modeling

Open tool to reduce complexity

During the embedding phase for the modeling platform, Ypto specified precise guidelines for solution architects. Standard architectural views were defined to support the work of 12 Enterprise Architects and 50 Solution Architects. "Thanks to pre-fab architecture diagrams, we are able to easily capture our current complex IT landscape into the architecture knowledge database (Continuum). The captured raw data is then transformed into actionable information to support decision making”, says A. Garsoux. With this capture, a continuous documentation is automatically updated, which is of decisive importance for traceability and further developments.

The analysis of the existing applications showed for example that currently up to 20 applications are necessary for the handling of a single business activity. Since each of these applications (currently over 1.000) has to be maintained, the declared goal is to significantly reduce this number. "For any new request for change, we always start by specifying the impacted business activities and the impacted applications. From this we can very quickly see - thanks to our architectural knowledge database - what things we want to keep and what needs to be renewed,” says the IT architect.


The Architecture Framework provides an overall view of the IT architecture

New applications are subject to precise specifications

"Precise architectural principles have been defined for all applications, which must be adhered to. Only in this way can we ensure that we achieve a uniform architecture. The framework also helps us to make very efficient decisions on certain developments," explains A. Garsoux. The IT architect now describes the structure as mature and ready for roll-out in the company, which is already ongoing. But he also knows that this will require a lot of internal persuasion: "The commitment to this forward-looking IT architecture must now spread throughout the company, because this of course entails changes. Our delivered information convinced our management and we prove every day that we are taking a decisive step towards a prosperous future for SNCB!"



SNCB is Belgium’s national railway company. It is a public company which provides the operation and marketing of railway services for national and international passenger and freight transport. It is also responsible for the maintenance of the rolling stock. SNCB employs around 21,000 people and has a turnover of 2.2 billion euros. It also owns shares in Eurostar and Thalys, as well as in the IFB and TRW branches. SNCB plays a crucial role in the development of sustainable mobility by providing a quality, reliable service that is in line with the market.


About Sparx Systems

Enterprise Architect is the world’s premiere UML/SysML modeling platform. Produced in Australia by Sparx Systems since 1996, it has been implemented by over 730,000 users worldwide, due not only to its high performance at an unbeatable price. Enterprise Architect is a powerful yet intuitive modeling tool that facilitates any desired level of explicitness and precision in the development, analysis and documentation of even the most complex systems and architectures. Individuals and teams can use EA to design and produce software systems, perform business process modeling, handle requirements or model any process or system using standardized or custom modeling languages and frameworks with maximum reuse and traceability throughout. Pro Cloud Server and WebEA allow geographically-distributed model-based development and engineering teams to actively collaborate on any number of ongoing projects in real time. SparxSystems Software Central Europe was founded in 2004 in Vienna, Austria to provide individuals and organizations in Europe's core German-speaking and other economically-aligned markets with Enterprise Architect software licenses, training and support in their own language and time zone.

Published in Case Studies

Join us for a meet and greet informal meeting where we get together around a table with our laptop (or not) and discuss all-things-EA with other enthusiasts.

We're also planning to retire to a locally accessible bar/pub for drinks and/or dinner after the meeting, depending on interest, etc.

Date: Wednesday, May 2nd, 2018
Time: 5:30 - 7:00 PM
Location: Brisbane Square Library - Tiered Theaterette (Ground Level) - 266 George St, Brisbane

Please register

Published in Events
Page 1 of 17