Enterprise Architect version 15.1

download
purchase

enzh-CNcsnlfrdehiiditkoplptruskessv

My Profile

Social Media Channels

facebook  twitter  youtube   linkedin

Displaying items by tag: sysml

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 {
   @EACodegen("Java")
   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»;
            «ELSE»
               private «type» «attribute.name»; 
            «ENDIF»
         «ENDFOR»
         
         «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»;
               }
            «ELSE»
               public «type» get«attribute.name.toFirstUpper»() {
                  return «attribute.name»;
               }
            «ENDIF»
            «IF 1 == attribute.upper»
               
               «val params = '''«type» «attribute.name»'''»
               public void set«attribute.name.toFirstUpper»(«params») {
                  this.«attribute.name» = «attribute.name»;
               }
            «ENDIF»
         «ENDFOR»
      }
   '''
   
   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;

@Entity
@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.setId(id);
               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 {
   @EACodegenFile
   def IFile path(Class element, IFile ^default) {
      val path = "com/example/orderingsoftware/" + ^default.name
      return getTargetFilePath("jpa", path)
   }
   
   @EACodegen("java")
   override generate(Class element) {
      return super.generate(element)
   }
   
   override printClassDeclaration(Class element) '''
      «IF element.isAbstract»
         @MappedSuperclass
      «ELSE»
         @Entity
         @Table(name = "«element.name»Table")
      «ENDIF»
      «super.printClassDeclaration(element)»'''

   // ...
}
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

 

Conclusion

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
Friday, 18 January 2019 13:55

Prolaborate 3.0 available

Prolaborate SparxSystems 3 Enterprise Architect Web

Sparx Systems has released Prolaborate 3, the latest version of its web solution for Enterprise Architect modelling tool.

Main improvements:

  • Increased performances.
  • New widget to include Impact Analysis views in the dashboards.
  • New CxO multi-level charts to represent complex data in an impressive and easily understandable way.

The EAExample sample project pre-installed with Enterprise Architect has been used in this article to illustrate some of Prolaborate 3 features.

Model visibility and access

Prolaborate makes it possible to pick and select the models that are relevant for a user profile, e.g. a business stakeholder could request visibility and access only on the BPMN diagrams matching the enterprise business processes.

In the screenshot below, a user has a read/write access to the SysML model from the EAExample project. The full project content is illustrated on the left (Enterprise Architect Project Browser).

prolaborate 3 contenu personnalisation project browser web

The above customization has been entered via Prolaborate administration screen:

prolaborate repository browser sysml access permissions administration

Model navigation and access

Prolaborate supports multiple Enterprise Architect projects (restrictions may apply based on the owned license) as set up in Sparx Systems Pro Cloud Server. The user below can either access both Sparx EAExample and an Archimate project.

prolaborate change repository web sparxsystems enterprise architect

The above main screen is a Dashboard with convenient links to the main SysML diagrams for the Portable Audio Player system. Clicking on the Design BDD opens the diagram below. Once displayed, the user can select an element (e.g. the main block) to open its properties (real-time details from the EA database). Text based information such as the element's notes can be updated directly with Prolaborate (note: Enterprise Architect tool is required for advanced modelling uses including updating diagrams).

prolaborate proprietes element web sparxsystems enterprise architect

Once the notes description has been saved, the update is straight away visible within Enterprise Architect:

prolaborate modification notes sysml element web sparxsystems enterprise architect

Amongst the other properties tabs, EA matching traceability functions are available: find the element's usage within diagrams and the linked elements.

prolaborate diagram usage traceability web sparxsystems enterprise architect

Collaboration modelling platform: discussions, model review

Prolaborate provides most features that users can expect from a collaboration tool. As regards it supports discussions on selected elements and diagrams, model review processes, etc.

As illustrated hereafter, a user submits a query to the system engineer in charge of the system design:

prolaborate discussion web sparxsystems enterprise architect

The target user is notified and submits a reply online, having dealt with the request within the given context.

prolaborate reponse discussion web sparxsystems enterprise architect

A link to any model element or diagram can easily be created and copied into an e-mail or document.

prolaborate diagram share link web sparxsystems enterprise architect

Charts and reports

A model based approach involves gathering all the project related information and knowledge within a single location, the model repository. An Enterprise Architect modelling project is a true database with a structured content that can be analyzed and used in EA:

  • Advanced model search.
  • Custom add-in to run model validation as defined by the team (contact me for any query).
  • Charts.

Prolaborate expands the access to this content beyond the EA users group via custom charts and reports.

Charts and sub reports

Prolaborate supports most chart types: pie, donut, bar, stacked bar, bubble, heat map, and nested pie.

prolaborate graphiques types web sparxsystems enterprise architect

A report can be enabled as an option for the chart selected values.

A Nested Pie chart has been defined for the SysML model:

  • To review the number of SysML blocks, parts and ports, organized by stereotype.
  • To display a list of results for the selected value e.g. all Flow Property stereotyped parts.

prolaborate graphiques secteurs imbriques sous rapports web sparxsystems enterprise architect

Click here or on the image below to open a video demonstration.

Prolaborate Youtube video sparx systems enterprise architect web

For Enterprise Architect projects, the Heat Map is useful to review the identified applications.

Heat Map Archimate UML sparxsystems enterprise architect web prolaborate

Reports

As an alternative to charts, a table can be produced according to the definition of a custom query. Sub reports are also available as an option to access details for a selected line within the main table.

Publishing model information via tables can be useful for common data models or glossaries maintained via UML models.

In the following example, the Portable Audio Player SysML parts are listed (name + type). Selecting a part opens its properties (name, notes, diagram usage, traceability...).

prolaborate rapport extraction analyse  sparxsystems enterprise architect

The "View" link in the last column can be clicked to open the part's details i.e. its ports and parts.

prolaborate rapport niveau 2 analyse sparxsystems enterprise architect

 

Published in News
Tuesday, 09 January 2018 05:22

Sparx Systems University Week - March 2-9, 2018

The first Sparx University Week for 2018 will be run during March, with most training sessions being held during the week of March 2-9.

University Weeks are hosted by Sparx Systems Japan, Sparx Systems Central Europe, Sparx Services North America, Sparx Systems India and Sparx Services UK (Hippo Software).

 

 

The delivery format for each course varies depending on the subject, audience and location, with a mix of both online and face-to-face seminars and courses.

It is anticipated that Sparx University Week will be run on a global basis every few months, in conjunction with Sparx Systems Sister and Services Partner network.

Bookings are essential, please review the course schedule below and visit the course provider's website for more details and to register your place.

 

Sparx University Week Schedule:

 Facilitator: Date/Time: Course Title: Location: Language: Link:
Sparx System Japan 2nd March 1:45pm - 5:25pm Tokyo Enterprise Architect Case Studies Seminar 2018 - Free Session! sign-up will be open on the 15th January
Tokyo International Forum (1 minute walk from JR Yurakucho Station) Japanese Details & Registration
Sparx Systems India 5th - 7th March 9:30am - 4:30pm IST Enterprise Architect Training & Workshop for SDLC using UML Online Delivery English Details & Registration
Sparx Systems India 8th - 9th March 9:30am - 4:30pm IST Enterprise Architect Training & Workshop for BA Online Delivery English Details & Registration
Sparx Services UK (Hippo Software) 5th-6th March 2018 (2 days) 10am - 4pm GMT EA and ArchiMate for Business Architecture Online Delivery English Details & Registration
Sparx Services UK (Hippo Software) 7th-8th March 2018 (2 days) 10am - 4pm GMT EA and ArchiMate for Enterprise Architecture Online Delivery English Details & Registration
Sparx Services North America 6th & 7th March 9 am - 5:30 pm CST Business Process Modelling with BPMN - 2day course Online Delivery English Details & Registration
Sparx Services North America 8th March 9 am - 5:30 pm CST Enterprise Architect Business Process Modelling Online Delivery English Details & Registration
Sparx Systems Central Europe 8. März 2018: 09:00-12:00 (MEZ) Webinar Sparx Pro Cloud | Installieren, Konfigurieren, Modellieren auf der Zeitachse und wiederverwendbare Bausteine und Standards Online Delivery Deutsch Details & Registration
Sparx Systems Central Europe 8th March 2018: 1p.m.-4p.m. (MEZ) Webinar Sparx Pro Cloud | Installation, Configuration, Time-Aware-Modelling and Reusable Asset Services Online Delivery English Details & Registration
Sparx Systems Central Europe 15.-16.02.2018 UML Grundlagen, 2 Tageskurs bei München München Deutsch Details & Registration
Sparx Systems Central Europe 08.-09.03.2018 Modellbasierte Entwicklung, 2 Tageskurs bei München München Deutsch Details & Registration
Sparx Systems Central Europe 13.-14.02.2018 SysML mit EA, 2 Tageskurs in München München Deutsch Details & Registration
Sparx Systems Central Europe 07.-08.03.2018 SysML mit EA, 2 Tageskurs in Wien in Wien Deutsch Details & Registration
Sparx Systems Central Europe 805.03.2018 9-12h00 MEZ Pro Cloud Installation u.v.m. 3 hours Online Delivery Deutsch Details & Registration
Sparx Systems Central Europe 10.04.-11.04.2018 Best Practice Days in Nürnberg Nürnberg Deutsch Details & Registration
Sparx Systems Central Europe 5-06.03.2018 UML Fundamentals Vienna, 2 days course Vienna English Details & Registration
Sparx Systems Central Europe 05.03.2018 13-16h00 CEST Pro Cloud Installation and more Online Delivery English Details & Registration
Published in Events
Monday, 18 September 2017 06:00

Sparx Systems University Week - 23-27 Oct, 2017

The second Sparx University Week will be run during October, with most training sessions being held during the week of October 23-27.

University Weeks are hosted by Sparx Systems Japan, Sparx Systems Central Europe, Sparx Services North America, Sparx Systems India and Sparx Services UK (Hippo Software).

uni week 2 hi rct

The delivery format for each course varies depending on the subject, audience and location, with a mix of both online and face-to-face seminars and courses.

It is anticipated that Sparx University Week will be run on a global basis every few months, in conjunction with Sparx Systems Sister and Services Partner network.

Bookings are essential, please review the course schedule below and visit the course provider's website for more details and to register your place.

 

Sparx University Week Schedule:

 Facilitator: Date/Time: Course Title: Location: Language: Link:
Sparx Systems Central Europe Mon 16 Oct: 9:00am - 12:00pm CEST UML Fundamentals with Enterprise Architect - Free Session!  Online Delivery  English Details & Registration
Sparx Systems Central Europe Thur 19 - Fri 20 October Model-based Development with Enterprise Architect Nuremberg, Germany German Details & Registration
Sparx Systems Japan Fri 20 Oct: 1:30pm - 5:45pm JST

Enterprise Architect Introductory Seminar - Free Session!

Yokohama, Japan Japanese Details & Registration
Sparx Services UK (Hippo Software) Mon 23 - Tue 24 October Enterprise Architect, BPMN and Use Cases Online Delivery English Details & Registration
Sparx Systems Central Europe Mon 23 - Tue 24 October Enterprise Architect Foundations Munich, Germany German Details & Registration
Sparx Systems Central Europe Tue 24 - Wed 25 October SysML with Enterprise Architect Munich, Germany German Details & Registration
Sparx Systems Central Europe Tue 24 - Wed 25 October Enterprise Architect Foundations Zurich, Switzerland German Details & Registration
Sparx Systems Central Europe Tue 24 - Wed 25 October Enterprise Architect for Developers Amsterdam, Netherlands English Details & Registration
Sparx Systems Central Europe Tue 24 - Wed 25 October Enterprise Architect for Developers Vienna, Austria English Details & Registration
Sparx Systems North America Tue 24 - Thur 26 October BIZBOK® 4 Foundation with Enterprise Architect Online Delivery English Details & Registration
Sparx Systems India Tue 24 - Thur 26 October Enterprise Architect for Business Analysis Online Delivery English Details & Registration
Sparx Services UK (Hippo Software) Wed 25 - Thur 26 October Enterprise Architect and ArchMate  Online Delivery English Details & Registration
Sparx Systems Japan Fri 27 Oct: 1:30pm - 5:40pm JST Enterprise Architect Utilization Seminar - Free Session! Yokohama, Japan Japanese Details & Registration

 

Published in Events

    

Hello fellow Enterprise Architect user!

 

we are very happy that the new release of EA's diff & merge extension LemonTree (c) by LieberLieber is available.

You can request the new version 1.3: http://lemontree.lieberlieber.com

Benefit of all features of your version control system by checking in EAP files! But do you already know that LemonTree can also diff DBMS such as SQL Server, Oracle, MySQl, etc.?


 

 

************* Release notes *************

We regularly provide updates like this to improve LemonTree.

Especially this release 1.3 brings improvements in speed and stability.

In addition, we have implemented the following improvements:

-          Dependencies of changes: When the user is manually changing the merge result, heavy dependencies of changes are now considered.

-          The order of swim lanes are now correct after merge.

-          SVN integration is now more robust: The SVN hooks are not used anymore

-          Git Integration: Bug fixed when writing model

-          Problems with ports and their types (classifier + redefined port) are solved.

-          Better logging

-          Additional UI fixes

 

 

Published in News
Thursday, 16 March 2017 14:06

Enterprise Architect User Group: London 2017

Enterprise Architect User Group

London 2017; 18th - 19th May

EA User Group - London 2017The London

2017 meeting of the Enterprise Architect User Group sees a shakeup to the agenda in the form of an additional day being added to the roster. In additional to the traditional presentation day of User Stories, How to's etc the extra day added to the event is taking the form of a training day.

The training day adds to the event a selection of six, three hour training sessions on a variety of subjects from BPMN to TOGAF and Model Curation.


Location

Code Node, 10 South Place, London, EC2M 7BT

Get Directions

EA User Group - London 2017

 

 

 

 

 

 

 

 

 


Agenda; Thursday 18th May

EA User Group - London 2017

You can find information on these training sessions over at the EA User Group website.


Agenda; Friday 19th May

EA User Group - London 2017

You can find a synopsis for each of these presentations over on the EA User Group website.


How to buy your tickets...

Tickets for the event are available directly from the EA User Group website and are priced as follows:

  • Full two day event ticket; £550.00 +Vat
  • Friday only ticket; £75.00 +Vat

EA User Group - London 2017

Published in News
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:

Published in Community Resources

YouTube Live Stream Webinar: Enterprise Architect 13 Highlights, Part 2ea13 webinar2 sqr

In our second installment of the Enterprise Architect 13 release series, we delve into some of the new productivity tools introduced in this major milestone release.

In this LIVE webinar session, you will learn how to:

  • Generate Dynamic Documents based on a selected Element
  • Undertake Parametric Simulation using SysML and OpenModelica
  • Publish models directly to Joomla!

We are trialling a new webinar technology based on YouTube Live streaming.

To access the webinar, simply visit and bookmark the webinar link below and return at your scheduled time.

Watch Now: Enterprise Architect 13 Highlights Webinar - Part 2

Published in Events
Thursday, 03 November 2016 14:18

New SysML Book for Enterprise Architect Users

We are very proud to announce that Dr. Oliver Alt from LieberLieber has finished a much enhanced version of his previously german SysML book in english.

“Practical Model-based Systems Engineering with SysML – Handbook”

image

 Highlights:

- Model-based Systems Engineering with SysML and the Control Chain approach
- All in-practice-relevant topics for Model-based Systems Engineering are covered in this book
- Learn about SysML and the related state-of-the-art technologies and how to use them with Enterprise Architect

This book is your key to learning all of the relevant things you need to know about the practical use of Systems Modeling Language (SysML) and Systems Engineering for mechatronic systems.
It introduces you to the Control Chain approach for describing hardware/software systems on a logical level.
With this methodology you can describe hardware and software components as a comprehensive functional assembly.
This book is also your introduction to Systems Engineering and SysML as a pragmatic approach.
Only relevant modeling language elements used in everyday practice are covered to keep it as simple as possible, and to reduce learning effort.
In spite of this, you are provided with enough background information for your daily work in Systems Engineering for designing simple or even very complex systems.

New state-of-the-art topics have been added, such as data integration with ReqIF, system data linking using OSLC-technology, Industry 4.0 and Big Data in Systems Engineering.

You can buy get your copy on Amazon (click this)!

Or buy it here via share-it (click this)!

 

Published in News

 

Introduction (See attachment for full article)

 

For the past several years I’ve enjoyed a mostly informal association with the University of Southern California Center for Systems and Software Engineering (USC CSSE).  I was on-staff at USC a few years ago teaching SysML and Model Based Systems Engineering, but for the last few years I’ve been mentoring Computer Science grad students in two Masters courses: CS577 Software Engineering and CS590 Directed Research.   The Directed Research (DR) course is basically a mechanism for students who are about to graduate from the Masters program but are one or two units short of the required number to pick them up by participating in a project with a mentor from industry (that would be me).   Students are expected to work 5 hours per week per unit.  

Teaching at USC is fun (I graduated from SC back in ancient times), gives me an opportunity to work with a lot of bright young software engineers, to stay current on new technology (in particular cloud-connected mobile app development) and also gives me an excuse to work with Prof. Boehm (author of Balancing Agility and Discipline among numerous other titles), who has happily taken an interest in some of my ideas related to improving productivity by innovating better software processes and allowing me to test my ideas out with USC grad students.  

This process work has included the development of the Resilient Agile process, an attempt to develop a better agile methodology which started out as an experiment called Massively Parallel Use Case Modeling that we did with the CS577 class a few years ago where we developed a complete location-based advertising system by handing one use case to each of 47 grad students and having each student develop their use case independently.  

This semester I’m working with a group of 15 Masters students, mostly taking a single unit of  DR.  One student is taking two units, so my team has an effective time budget of 80 student hours per week.  Although the semester at USC is 16 weeks long, by the time the student teams get formed, and with midterms and finals, we’ve got about 12 usable weeks of student time.  So it works out to a time budget of roughly 1000 student hours (that’s about half-a-person-year at 40 hours a week) over a 3 month schedule. 

Because I like challenges, we’re attempting a “crowdsouced bad driver reporting system” this semester, and because we need to be really productive, we’re using Enterprise Architect to coordinate all of the student homework.  This is the first article in a series that will describe our progress.

Are we crazy to think that we can get this system built in 3 months with a total of half-a-person-year of developer time?  Stay tuned for our next article to see how we’re doing.

Read Part 2 of this Case Study

 

Published in Case Studies
Page 1 of 3