In one of the Sparx sites I am supporting an urgent need existed for deduplicating elements in a large EA repository. In the previous period a large number of Architects worked in the repository and there was no procedure for preventing duplicates. To improve the content of the repository the fist step is to deduplicate content based on scripts.
Installation is relatively easy with the following steps:
The IDEA AddOn is used for generating layers in an integrated data architecture and for creating mappers and mergers for XSD schema's etc. Please notice that also scripts are available for this project in a sample repository. See the screenshots below:
Mapper screen
Usage of this extension for mappers and generating data layers has the following logical steps:
Deduplicating elements is merging two or more elements to one where the child entities of this element are also merged. A duplicatie validation is based on the following:
When these all match an element is considered a duplicate. The elements need to be exactly the same. Especially for the name this can be a problem. For example eBS and E-BS are not the same and are not consided duplicates
When a deduplication is done the following child elements are merged:
It is easily possible to extend this list since the code to do the child element transfer from duplicate to original, see therefore the code within the AddOn
Screen 1 Validate
Before we do the duplication we have the possibily to generate a report of the duplicate elements or we can get a summary overview within this extension (see screen 3).
Screen 2 Deduplicate
This is the tabpage with selecting the merge aspects for the duplicated elements. On the left hand side you see which child entities will be merged. On the righthand side you can select a number of functionalities
Screen 3 Validation result
This screen shows the result f the validation list option.It gives a list of the duplicate including the name, the package and the author of the duplicate. This gives you an option to modify the elements before you merge them with the deduplicate routine.
In a situation where multiple (scrum) teams are developing on the same model in EA, releases can be quite challenging. Especially when each team has a specific release rhytm.
When a diagram driven modelling approach is followed it can be of interest to create a release manager that automates a number of steps for the model manager. Because transferring parts of the model in a secure way automated support of this release process can be very helpful and prevent the release process from introducing mistakes.
The steps to be taken will be:
These steps are all included in the release manager. In the picture below you get an idea of the user interface for this functionality
For modelling Enterprise Architectures organisations can choose for multiple tools. In the Netherlands numerous organisations use BizzDesign as modelling tool. However license costs are relatively high and therefore some of the EAxpertise customers are considering to migrate to Sparx.
The functionality offered by both tools overlap to a great extend and especially in data modelling Sparx has more functionality than BizzDesign. For one of our customers we did a research on the migration options, there are three models in the enterprise architecture:
For the last part of the enterprise model we had to develop an extension. The rest of this article described this extension.
We first tried to develop a solution based on a script but we needed a simple user interface to control the steps so we decided to extend the IDEA DLL with this functionality. In the image you get an idea of the functionality
In the screenshot you see the following functionalities:
An extra remark is needed for the counter under the load data button. This is used for loading the worksheet with that ordinal position in the workbook file.
One of the challenges of a teambased architecture repository based on the ArchiMate language is to reduce the number of duplicate entities. With duplicates I mean an Archimate concept with the same name and stereotype that has two or more instances in the repository.
Especially in large repositories with a complex project browser configuration and a large number of modellers the changes of duplicates are substantial. Therefore mostly a procedure is introduced based on the steps that a modeller has to do a repository search before he or she can actually add an element from the toolbox and modify it
For searching for elements in the repository there is a search dialog availabe that opens by default in a simple common search that searches for a text in all the items. This works fine but has a number of limitations for an ArchiMate modeller:
Luckily we can define our own searches in EA and an example of a ArchiMate specific search is shown bin the image below:
In this image you see that we can search for application components only and the list is by default sorted by objectname. This will help us in a later stage in user friendliness. The SQL statement is given below.
SELECT t_object.ea_guid AS CLASSGUID, t_object.name as ObjectName, t_object.Stereotype, ParentPkg.Name as ParentName, t_object.ModifiedDate, t_object.Author, t_object.[Version], t_object.[Alias], t_object.Object_Type as CLASSTYPE,t_object.Note as Notes
FROM t_object, t_package as ParentPkg
WHERE (t_object.name LIKE '#WC##WC#' OR '=')
AND t_object.stereotype IN('ArchiMate_ApplicationComponent')
AND t_object.Package_ID = ParentPkg.Package_ID
ORDER BY t_object.Name
The trick is in two parts of the select statement:
This helps us a lot in finding the relevant elements relatively fast however the search screen has a number of limitations in which selecting all the time the right query is relatively user unfriendly. However luckily Enterprise Architect has another screen for implementing this user friendly approach in a convenient way: the model view.
In the modelview you can define your own search view and link these views to a search in the search component of EA. See the picture below
In this screen you see a sample of a number of ArchiMate specific searches based on their stereotype. When you expand one of these searches you get the list of elements based on this stereotype. Since we have a combination of a keyword search and a full search (on the stereotype) the modeller can select the approach that best fits his needs. In the view you can select an element by typing in the first characters another option is to open the conext menu and go to the search function in EA and now we open the richt search immediately.
These searches can be extended and modified quite ease. However there are a number of files in the download zipfile included which you give you a jumpstart:
When you want to have more information on this search function or when you want to have assistance from us with the introduction of a specific search for your organisation, please feel free to contact eaxpertise.nl
Usage of this extension for deduplication has the following logical steps:Select in the project browser the package (and eventually subpackages) you want to deduplicate
Usage of the HTML publication has the following logical steps
This AddOn is developed by Eaxpertise for the IDEA community in the Netherlands. The source code can be downloaded here. The AddOn is available under the EUPL license
For support and adapations of the AddOn you can contact the participants in EAxpertise. However when you want to extend the product by yourselve please feel free to do so. You can find the Visual Studio project here. Sharing your adaptations in this AddOn is stimulated and will be published in the eaxpertise website.