This article is the second part of my 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. Click here to see the first part on this article with the training day. 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.
Below is a feedback on some of the presentations I followed on that day. I also cover my presentation about eaTests, an automated tests solution for Sparx EA add-ins and scripts.
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). eaUtils 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:
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.
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).
Generated sequence diagrams are aimed at reviewing results and keeping a history of run tests. Here is an example:
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.
As a result I successfully ran tests on one hoTools feature, (see a related article here), 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.
My presentation is available to download here.
Replacing existing solutions with Enterprise Architect and extending function with custom MDGs
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:
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").
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.
A number of topics remain to be addressed in this approach including a web based interface, Sparx Cloud Server, etc.
Using Enterprise Architect and SysML for the development of an In-Wheel Motor System
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.
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.
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.
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.
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.
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.
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.