When it comes to dependency tracking, Enterprise Architect offers several approaches for this kind of job:
- Requirements diagrams allow us to put elements on the canvas and offer overview of dependencies between elements.
- Traceability window shows the hierarchy of elements in the Repository.
- Relationship matrix shows dependencies between two types of elements in a table like form.
As architects, we often get hands on a new model and we need to assert quickly dependencies between elements in the whole model or across several packages. Typical example is an “AS IS” state assessment when existing customer delivered model(s) must be analyzed. To analyze dependencies between classes, objects and components and trace their connection to the deployment level one could first have a look on the traceability window going manually through the elements or try to create several types of matrices to get a first impression.
We would like to show yet another and fast aproach, a generated dependency graph that shows the dependencies between elements in the whole model (or under a certain package) in a single picture. For this we’ll use the RepoDoc documentation tool and one of its document templates.
There are few things we’ll need:
- Enteprise Architect v13 or higher installed,
- RepoDoc downloaded and installed.
- Sample model, for example the
EAExample.eapmodel shipped with Enterprise Architect.
- Graphviz downloaded and installed.
Generating dependency graph
Follow these steps to generate the dependency graph based on a deployment model:
- Open the EAExample repository and select the
Deployment Modelpackage in the project browser.
- Right-click on the package and choose Extensions -> RepoDoc -> Control Panel. RepoDoc starts and presents itself with the Document generator form.
- Click the
...button in the first row and select the
UML-element-relationships-overview.gv.rdtdocument template from the dialog.
- Choose the
DOT-Graphvizdocument generator profile.
- Click the
RepoDoc produces a DOT formatted file and a SVG diagram containing the dependencies between elements. The dependencies between the elements can be quickly traced and the architect has a complex information about element dependencies in the system.
The template iterates the elements under the package selected by the user and traces dependencies to other elements, if they have one of the following types: Class, Enumeration, Object, Component, Interface, RequiredInterface, ProvidedInterface, Port or Node. Of course the EAExample is a demo purpose model demonstrating different capabilities of Enterprise Architect. This can be easily seen from the dependency graph as it contains lots of unconnected elements. For a real (deployment) model, the dependency graph can quickly reveal elements that are not used or not connected to the rest of the system and also hints at the overall quality of the model.
RepoDoc comes also with an
Archimate-element-relationships-overview.gv.rdt document template that creates a dependency graph for Archimate models.
Use this template for example with the well known Archisurance model from ArchiModels and you’ll quickly get an overview of the model, like the one pictured below.
The user is free to modify the templates and change the focus of the analysis on other types of elements or reduce the scope.