Extending Enterprise Architect
Enterprise Architect provides numerous facilities for extending functionality that is provided with the tool out-of-the-box. Users are able to expand the range of modeling notations for specific domains, add custom modeling resources such as model patterns, or even implement entirely new tools that operate on the model using the automation interface and add-ins.
Domain-specific modeling
UML profiles
UML Profiles extend the UML language for constructing models in particular domains. Enterprise Architect has a generic UML Profile mechanism that allows users to create, share and use profiles as seamless extensions to the core modeling environment.
For example, the UML Profile for XML Schema defined by David Carlson in Modeling XML Applications with XML is available for Enterprise Architect. This profile describes a set of extensions to UML class models for accurate modeling of XSD schemas.
Patterns
Enterprise Architect's support for Patterns provides an excellent means of achieving re-use and robustness. Patterns represent a group of collaborating objects and classes that can be abstracted from a general set of modeling scenarios.
As patterns are discovered in any new project, the basic pattern template from previous engagements can be re-used with the appropriate variables renamed to suit the current project.
Patterns generally describe how to solve an abstract problem, and it is the task of the pattern user to modify elements in the pattern to meet the demands of the current engagement.
MDG Technologies
MDG Technologies encapsulate a logical collection of resources (such as patterns and profiles) that pertain to a specific technology or modeling domain. These are 'pluggable' resources for Enterprise Architect that reside either in a physical directory or URL.
Users may create their own MDG Technologies with the aid of Profile Helpers, which guide you through the process of creating a UML profile, associated toolboxes and new diagram types. Furthermore, users can take advantage of MDG Technologies that are packaged with the Enterprise Architect installer, such as ArchiMate and Mind Mapping. Free plug-in technologies that support such activities as CORBA code engineering and BPMN model validation are also available for download from: https://sparxsystems.com/resources/mdg_tech.
In addition, licensed solutions for systems modeling (SysML), Distributed Data Services (DDS) and other modeling domains are available - see https://sparxsystems.com/products/#technology
Automation interface
The Automation Interface enables you to access the internals of Enterprise Architect models. For example, using the Automation Interface you could:
- Perform repetitive tasks, such as update the version number for all elements in a model
- Generate code from a state machine diagram
- Produce custom reports
- Execute ad hoc queries against the model
All development environments capable of generating ActiveX Com clients should be able to connect to the Enterprise Architect Automation Interface.
Add-ins
Add-ins enable you to add functionality to Enterprise Architect and extend its user interface. Enterprise Architect's Add-in framework builds on the Automation Interface, providing several key advantages over stand-alone automation clients:
- Add-ins can define Enterprise Architect menus and sub-menus
- Add-ins receive notifications about various Enterprise Architect user-interface events including menu clicks and file changes
- Add-ins can (and should) be written as in-process (DLL) components; this provides lower call overhead and better integration into the Enterprise Architect environment
- Because a current version of Enterprise Architect is already running there is no need to start a second copy of Enterprise Architect via the automation interface
- Because the add-in receives object handles associated with the currently running copy of Enterprise Architect, more information is available about the current user's activity, such as which diagram objects are selected
- You are not required to do anything other than install the add-in to make it usable; that is, you do not have to configure add-ins to run on your systems