Displaying items by tag: addin

One of the latest features of Sparx Enterprise Architect 15 is the model based add-ins which can be created using JavaScript.  These model based add-ins are defined by a combination of Receptions, Attributes and Operations which can be easily added in a model by just creating with a valid stereotyped classes.

Assuming having basic knowledge with Sparx Traditional add-ins, broadcast events and JavaScript.

Why model based add-ins

    • Accessed by all the users within a model
    • Purely Model specific 
    • No installation, registry entries , distribution or license worries
    • Self-Documenting as everything is modelled and created directly in EA

Prerequisites

    • Signal Reference Library ( Broadcast Events ) -  Defines the entry points to the add-In similar to the com class in the traditional add-ins
    • Referencing relevant signals in the receptions

What is Signal Reference Library

These are Signal elements which contain definitions of all the Enterprise architect broadcast events. Signals that are added to the add-in will receive an event when triggered similar to traditional add-ins. EAExample model contains all the broadcast event signals under the package Example Model.EA 15 Examples.Dynamic Model Based Add-Ins.Broadcast Types

Mandatory Signals or Events for Add-in

    • EA_Connect
    • EA_GetMenuItems
    • EA_MenuClick

All the available events references can be found here https://www.sparxsystems.com/enterprise_architect_user_guide/15.0/automation/broadcastevents.html

To Create an JavaScript Add-In

  1. Create a Signal Reference Library referring EAExample model. (Simple way would be just do an XMI export of the Broadcast Types package from EA model and import into your working model).
  2. Create a package in the root node for modelling the add-in
    1

    1. Create a class object with stereotype JavascriptAddin ( this stereotyped element can be found in Model Add-Ins tool box as shown below
      2
    1. The name of the above defined will be used in the JavaScript code. In our case it will be “Javascript Addin”
    2. Add the signal reference in the created class using the reception.
      • To Access Reception Right-click on the Class element and select the 'Features | Receptions' option. The Features window displays, at the 'Receptions' page.
        2.1
      • Add the required events by clicking the button to the right of the New Receptiontext in the 'Name' column , the dialog will show the available Signals ( it will automatically fetch the parameters details from the object )
        3
    • Once selected all the added signals will be displayed in the class object.
      4
    1. After adding these events, its time to play with some JavaScript codes.
    2. Please open the behavior window (Develop > Source Code > Behavior) make sure the created class object “Javascript Addin” has been selected. It will show all the added events to which we need to add the code
      5
    1. Codes for these events are similar to the traditional add-ins ( please refer the attached model for more details )
    1. Finally make sure the add-in is enabled. To enable the add-in Specialize -> Manage-Addin and please click Load on startup
      6
    1. Once the add-in is loaded you can find it in the ribbon
      7

    Note:

    For more details or customization please contact This email address is being protected from spambots. You need JavaScript enabled to view it.

Published in White Papers
If you want to analyze your EA model with SQL, you should consider using LINQ to SQL. Write the query once for all your EA database types. Use the combination of SQL like syntax, modern .net languages like C#, VB, F# and the compiler to find your typos.
 
The main benefits are:
 
  • Combine SQL like query language with the power of C#, VB, or F#
  • Database independent
  • IntelliSense, AutoComplete
  • Let the compiler find your typos
Approaches
 
AddInSimple shows you:
  • How to leverage LINQ to SQL in your Add-In (Example SimpleAddIn of open source hoTools)
  • LINQPad, the off-the-shelf interactive Scratchpad
In both cases: Before you reap the power of LINQ to SQL, you have to invest some time learning.
 
 
 
Example with LINQPad:
 
The following example shows the result of a little query against the EAExample model to see the types of Requirements.

You find standard SQL somehow old, limited, difficult to learn and has a lot of dialects? You think a Compiler can find a lot of your typos, Then give LINQ to SQL a try. You have two possibilities:

  • LINQPad  as an interactive query and debugging tool, database independent, C#, F#, VB
  • Develop your Add-In with LINQ to SQL

The main advantages of LINQ for SQL are:

  • Database independent
  • Combines the benefits of SQL like and Code (C#, F#, VB)
  • IntelliSense, Autocomplete, let the Compiler find your typos
  • Powerful Debug as you know from C# & Co.
  • LINQ provides a rich Eco-System (SQL, XML to name a few)

The LINQPad:

Ready to use Scratchpad to run, debug and visualize your Find and Debug for all your EA Databases. Show the code for the above grid:



IntelliSense, Autocomplete:

Let the Compiler find your typos.



Export to Excel:

 

Steps with LINQPad:

  • Create a new connection to your EA Database
  • Assign the connection to the query at hand

 

Look inside:

  • Combine queries and Code
  • EA Databases supported
  • Arbitrary complex queries without the limitations of SQL
  • Edit, Debug, Visualize
  • C#, F#, VB, LINQ (XML, SQL,..)

Add-In with LINQ to SQL:

You find two examples to tinker with in AddInSimple (part of hoTools). In essence:

  • Determine Database and connection string
  • Run LINQ query to DataTable
  • Output DataTable to EA Model Search
  • Enjoy

The results:

Start with AddinSimple and EAExample.eap.

 

 

Control Code:

The Query:

Summary:

LINQ to SQL is the solution for complex queries:

  • Interactive query tool LINPad
  • In your Add-In to easily handle complex queries database independent
  • Database independent
  • IntelliSense and AutoComplete
  • Compiler verifies against EA Database (no typos, type safe)
  • Comprehensive debug features

From viewpoint EA user:

  • Find in EA - everything without SQL limitations
  • Verify your EA models
  • Make metrics of your EA models

Write it once and use it for all your EA databases - regardless of location or type. Just connect your query with the new Database.

References:

 

This and more you can see at https://github.com/Helmut-Ortmann/EnterpriseArchitect_hoTools/wiki/LinqToSql.

 

I appreciate your experiences and feedback!

 

Kind regards,

 

Helmut

 

 

Published in Community Resources
Tagged under

 

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

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

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

 

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

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

Published in News
The Bellekens EA toolpack, the free set of add-ins for Enterprise Architect has expanded with a new add-in: the EA TFS Connector.EATFSConnectorLogo

This new add-in for Sparx Systems Enterprise Architect synchronizes workitems 2-ways between EA and TFS (Microsoft Team Foundation Server), so both from TFS to EA as from EA to TFS.

The EA TFS Connector uses the REST API web-service of TFS to synchronize items, so no local TFS (Visual Studio) installation is required, and it also works with TFS version 2015, which isn’t the case with the standard Visual Studio MDG integration.

      Special thanks goes to 
RealDolmen 
      for sponsoring the development of this add-in.

Have you tried the add-in and feel like it’s missing something? Don’t hesitate to contact me. There are always possibilities to enhance the add-in and make it better for the whole community.

For more information see EA TFS Connector.

Published in News
Tagged under
Monday, 29 August 2016 12:57

Generic element Auto counter

Motivation

An Enterprise Architect project contains hundreds or thousands of elements. Name of these elements alone are often not enough to uniquely identify them. It is important to mark every element with its own unique code.

Enterprise Architect provides the Auto Naming and Auto Counters feature which efficiently generates code elements. The element number is determined by its type, each element type has its own sequence of numbers.

 

Unfortunately, the numbering according to the types of elements is not always sufficient. We often need sequences derived from first level components. For example, we have other sequence for 'Accounting' component use cases (UC-ACC001, UC-ACC002, ...) and other sequence for the "Billing" component use cases (UC-INV001, ...).

Idea

We implemented an extension for generating element codes based on existing element names.

The basic idea is to use the first specified code as a mask for the others. User has to name first element, for example:

UC-ACC001: Create an account

If user creates another use case, he does not need to know the final number. He uses a placeholder

UC-ACC*: Modify an Account

 

Finally, user runs extension "CCA Numbering", which replaces the placeholder with a new number.

Such a solution is much more general. You can have multiple sequences within a single element type. You can have a number sequences across different types of elements. This can be applied for example in Activity diagrams, if you want a uniform numbering for Activities and Actions together.

Solution

 

Solution code is attached. The program looks for the next element number directly in the project repository. The query syntax corresponds repository stored in the EAP file.

Any comments are welcome.

 

Petr Přibyl

CCA Group a.s.

This email address is being protected from spambots. You need JavaScript enabled to view it.

 

Published in Community Resources
Friday, 26 August 2016 09:47

EA Mapping tool => Who wants it?

I’m thinking about developing a mapping tool add-in for EA.
The idea is that you can manage a mapping between two types of (data) models. For example between your logical data model and your message model, or between your logical data model and your database model etc…

I already have a number of add-ins and scripts that somehow create traceability between models on element, attribute and association level, but I don’t have a tool yet to visualize and manage those traces.

To give you an idea the GUI of the thing could look similar to this:

mapping tool
Functions could include
– ability to add notes to each mapping
– ability to export the mapping to excel
– drag-n-drop to create mappings
– …
Now it seems to me like there could be many parties interested in such a tool.
I would like to develop this as a free and open source add-in (as I do for all my add-ins) but I’m still looking for sponsors.
My initial rough estimate for the development of such a tool is 15 man days.

I already have two parties that might be interested, but the more sponsors I can find the lower the price would get for each individual party.

So if you are interested in such a tool please let me know: This email address is being protected from spambots. You need JavaScript enabled to view it. and we might be able to work something out.

Published in News
Thursday, 24 March 2016 11:07

New: Dunstan Thomas Consulting MDG Workshop

MDG Workshop

Dunstan Thomas Consulting is proud to announce the new one day MDG Workshop!

Overview


Sparx Systems Enterprise Architect provides modelling extensions to supplement UML through a technology known as Model Driven Generator or MDG. Tools are provided in Enterprise Architect for experienced users to develop their own MDGs either from scratch or based upon an existing MDG such as ArchiMate, or BPMN. This one day workshop will provide attendees with a practical experience of the tasks required to build a typical MDG.

User Story Screenshot


Agenda

The following topics will be covered:

  • What is an MDG, what it can contain and the benefits an MDG can provided to an organization.
  • Using the Model Wizard to create an MDG model repository.
  • The steps in planning an MDG.
  • Tagged values, their typed, use and creation.
  • Using the MDG Helpers to create a Profile.
  • Using the MDG Helpers to create a customized Toolbox.
  • Using the MDG Helpers to create a customized Diagram.
  • Generating the MDG.
  • Testing the MDG.
  • Deploying the MDG.
  • Making changes to the MDG and applying those changes to an existing model repository.
  • Shapescripts, their use, structure and applicability to an MDG.
  • The concept of Quicklink and its application to a customized Diagram.

Full details are available on our website.

Published in News

eautils addin for sparx systems enterprise architect

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

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

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

Elements sorting

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

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

Sort elements by alias in a package tree

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

sparx systems enterprise architect addin eaUtils package tree sorting window

Below is a summary of the available actions or information:

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

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

eautils addin sparxsystems enterprise architect sort by package tree progress busy

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

eautils package tree sorting addin enterprise architect completed

Generate aliases

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

Consider the following use case diagram:

exemple sparx ea eautils addin to generate elements alias values

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

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

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

 

eautils sparx ea addin generate alias settings prefix suffix

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

sparx eautils addin model diagram generate alias results

Breadcrumb trail for diagram navigation

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

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

eautils sparx enterprise architect addin breadcrumb

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

eautils sparx systems enterprise architect addin breadcrumb trail result

eaUtils addin for Sparx Systems Enterprise Architect

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

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

 

Published in Community Resources
Tagged under
Friday, 19 February 2016 13:38

BPMN Generator from Dunstan Thomas Consulting

BPMN GeneratorBPMN Generator

An add-in for Enterprise Architect from Dunstan Thomas Consulting

We have had our very own Phil Chudley busy beavering away at a new project which is now commercially available & already in use with DT's customer base.

Overview

Sparx Systems Enterprise Architect has the functionality to create diagrams directly from Use Case textual scenarios, the most common of which is termed an Activity Graph. This Activity Graph is a simplified form of UML Activity Diagram. This works well, but many organisations have, or are in the process of, standardising the modelling of process flows using BPMN 2.0, and this form of diagram is not supported by Enterprise Architect. The BPMN Generator extension for Enterprise Architect has been developed by Dunstan Thomas Consulting Ltd to provide the functionality to generate a BPMN 2.0 process flow diagram from Use Case textual scenarios. A typical example is shown below:

Textual Scenario for the Basic Path

BPMN Generator - basic path  

Textual Scenario for the Alternate Path

BPMN Generator - alternate path  

Generated BPMN 2.0 Diagram

BPMN Generator - generated diagram


The BPMN Generator also provides the modeller with options to set:

  • The top margin of the generated diagram.
  • The left margin of the generated diagram.
  • The default height of each task.
  • The adjustment height of each task (used to ensure that text fits in a task).
  • Whether or not a new diagram and elements will be generated rather than overwrite any existing diagram and elements.

Watch the video below to see the BPMN Generator in action:

https://youtu.be/WhL9vEdvHF0 


The BPMN Generator is available from Dunstan Thomas Consulting at £85.00 +Vat per licence. If you would like additional information or to purchase licences for the BPMN Generator then please contact us.

Published in News
Wednesday, 25 November 2015 14:04

Requirements Management in Sparx Enterprise Architect

How to combine Sparx Enterprise Architect and BABOK to manage Requirements in a modern way?

Days when Business Analyst was using only Word and Excel applications together with e-mail program are slowly fading into the past. This is a good thing. There are many tools that allow us to work faster and smarter. One of them is my favorite Sparx Enterprise Architect. The tool so powerful and versatile that it's hard to find single person who used all of its features :-)

Personally, I used Enterprise Architect in my work for past several years to design IT systems and prepare documentation of them. I used a lot of built-in features of Enterprise Architect to streamline my work and improve quality of my deliverables. Among them Relationship Matrix, powerful template functionality for document generation, extensive support for Use Case modeling. 

Requirement attributes

Among many other things, BABOK Guide defines list of commonly used requirement attributes:

  • Absolute reference: provides a unique identifier. The reference is not altered or reused if the requirement is moved, changed, or deleted.
  • Author: provides the name of the person who needs to be consulted should the requirement later be found to be ambiguous, unclear, or in conflict.
  • Complexity: indicates how difficult the requirement will be to implement.
  • Ownership: indicates the individual or group that needs the requirement or will be the business owner after the solution is implemented.
  • Priority: indicates relative importance of requirements. Priority can refer to the relative value of a requirement or to the sequence in which it will be implemented.
  • Risks: identifies uncertain events that may impact requirements.
  • Source: identifies the origin of the requirement. The source is often consulted if the requirement changes or if more information regarding the requirement or the need that drove the requirement has to be obtained.
  • Stability: indicates the maturity of the requirement.
  • Status: indicates the state of the requirement, whether it is proposed, accepted, verified, postponed, cancelled, or implemented.
  • Urgency: indicates how soon the requirement is needed. It is usually only necessary to specify this separately from the priority when a deadline exists for implementation.

Source: BABOK Guide V3, page 45.

As it is stated, those are most commonly used, which means that this list is not written in stone and each Analyst must decides which to use. Actually, for this exercise we have a special task  in BABOK Guide named Plan Business Analysis Information Management.

The purpose of Plan Business Analysis Information Management is to develop an approach for how business analysis information will be stored and accessed.

Source: BABOK Guide V3, page 42.

Since I read the Mastering the Requirements Process: Getting Requirements Right (which was quite sometime ago) I extended my requirement attributes list with those two:

  • Justification
  • Fit Criteria

Justification is a rationale for requirement. It explains why requirement is needed by stakeholder(s). It is very important attribute as it allows to distinguish between real requirements and solutions requested by stakeholders that pretend to be requirements.

Fit Criteria's aim is to make sure that requirement is verifiable.  It means that there is defined way of proofing that the requirement is met. This attribute directly addresses one of the characteristics of a good requirement which is Testable. (Have you ever seen requirements like: "System must be easy to learn" or "System must be user friendly" and wondered What the hell this means? I bet you did! :-) )

Enhanced Requirement Attributes Addin for Sparx Enterprise Architect

Sparx Enterprise Architect does not support all of the mentioned above attributes out of the box. Some are there, but not all of them. You may add missing ones as TaggedValues in requirement element, but working this way on a daily basis is hard and miserable.

To address this problem I created Enhanced Requirement Attributes Addin for Enterprise Architect. In short ERA addin (addin means plugin). It adds new properties window which is dedicated only for Requirement type. When you double click on any Requirement element this new window will be opened by default. Properties for other element types will be opened in EA's default properties window.

ERA Addin – Requirement properties window

Sometimes you may still want to open Requirement element in default properties window, just click 'Default properties' button, or press Alt+Enter keys on the selected element.

Requirement properties window aggregates in one place all most important attributes that were described above. This makes reading and editing a requirement very easy. Requirement properties windows supports:

  • Some of BABOK / Volere additional attributes
  • Rich edit functionality for Description attribute
  • Key shortcuts (Ctrl+S - save & close  and Ctrl+W - close without saving)

Compatibility

All of the additional attributes are stored as TaggedValues of Requirement element. This a built-in functionality of Enterprise Architect. There is no custom solution for storing information. As you can see in the picture below, you can access and edit those attributes in normal properties window.

EA’s normal properties window

This means you may use ERA Addin without worrying about compatibility. You can be the only person on the project or in your organization using ERA Addin and other Analysts & Architects will still be able to view and edit Requirement without problems. Of course it will not be as easy and convenient as in ERA Addin, but important thing is that you will not break anything!

ERA Addin does not use any custom UML Profile, it works with default, built-in Requirement type. So you can start using it on your already created requirement models without any conversions or problems with migration. There is also no risk, if you will not like ERA Addin you will simply uninstall it, there will be no impact on your model.

Generation of documentation

ERA Addin was created with easy reporting in mind. It comes with a Requirements Details template that is used to generate documentation about all additional requirement attributes. Here you can download sample document with generated documentation about requirements in Stakeholder package.

Practical

ERA Addin is free to use for everybody including commercial purposes. It is redistributed under Creative Commons Attribution-NoDerivatives 4.0 International Public License.

Downloads

  • Installer of ERA Addin together with Requirements Details template can be downloaded from here.
  • Sample Enterprise Architect project can be downloaded from here.
Published in Community Resources
Page 1 of 2