As enterprise architects we need to choose our tools based on three factors:
- frameworks we already have chosen
- the processes we use to support those frameworks
- how the IT domain is organized to deliver solutions resulting from those processes
In the long run, this is for the best because when an enterprise relies on a single tool it can lead to solutions that are driven more by the limitations of the tool than the needs of the business.
If we narrow the scope of our search for tools an IT-centric enterprise architectural approach (where most of the effort is focused on IT transformations in support of business goals, as opposed to the anti-pattern of enterprise architecture being about IT supporting more IT), we can identify a few tools that have moved to the head of the pack. One such tool is Enterprise Architect by Sparx Systems, which I will review in this article.
For the sake of pointing out as many features as various enterprise architect groups may find useful, I used the Ultimate Edition as the reference point for this article. Enterprise Architect also comes in five progressively narrower versions, from a Business and Software Engineering Edition to a Desktop Edition. For your own evaluation you can review what each edition offers in detail by selecting the Help at the initial set up screen the first time you run the application.
Modeling Language Standards Support
There are plenty of UML tools that can be adapted to enterprise architecture, and most enterprise architecture tools provide UML functionality. So it is no surprise that Enterprise Architect supports it. What is a nice change of pace is that it supports many other context-specific modeling languages, too. Round-trip mapping with Business Process Modeling Notation (see BPMI.org if this is new to you) is handy for enterprises that have been using BPMN already and decide to adopt Enterprise Architect (or vice-versa). The BPMN models can then be output as BPEL scripts, something one would generally expect only from a development tool (which Enterprise Architect can double as in a pinch).
Enterprise Architect also supports the Object Constraint Language for UML validation, a handy feature for those of us lacking an eidetic memory or who work too late doing our modeling because the day is filled with the meetings to gather details for the model. Also supported are the OMG’s Service-Oriented Architecture Modeling Language (SoaML) and the Service-Oriented Modeling Framework (SOMF) to model your company’s SOA strategy, as well as round-trip engineering of XSD and WSDL. Reverse engineering allows greater accuracy in creating a baseline architecture, and forward engineering helps keep the implementation on track with the design.
Full UML support enables you to diagram solutions at any level. Enterprise Architect goes one step further and provides templates for context-specific languages such as ArchiMate. It also includes tools for GoF Patterns, MindMapping, a Whiteboard and several other tools that constitute quite an impressive list.
Down in the Weeds with .NET and J2EE
While a business architecture should never include implementation-specific details, there are scenarios where an Enterprise Architecture should include at least some technology-specific principles. Whichever side of that debate you find yourself on most often, the majority of enterprises are going to use J2EE or .NET or a combination of both (without ruling out other options) at some level. It is a handy feature of Enterprise Architect that the reverse engineering tools can be used to create a bottom-up baseline model starting from the source code of .NET and J2EE current capability solutions.
Once a target model has been created, the gap analysis performed (Enterprise Architect has a tool for that, too!) and a transition architecture described, the design can be elaborated on through the IT capability layers until source code is generated from the lowest-level model.
For the smaller enterprise where the architects wear many hats to the global corporations where the architect and developer may literally speak different languages, it is advantageous for an architecture tool to integrate with an IDE. Sparx sells integration tools for Eclipse and Visual Studio at a reasonable price and provides trial editions to give you a chance to evaluate the effectiveness for your particular IT practices. This ability to integrate with other tools as well as exchange information with other applications using XMI allows enterprises multiple strategies for implementing and adopting Enterprise Architect within their EA practices.
The All-In-Wonder Trade-Offs
Enterprise Architect is the Swiss Army Knife of architecture tools. It does many things well though none of them as well as single focus tools. For example, I first came across Enterprise Architect looking for a tool that would do reverse engineering. On the plus side, Enterprise Architect does an excellent job of creating detailed class diagrams with relationships and dependencies with only a few clicks of the mouse. The downside is that the generated diagrams are limited to a single package. To build an application-level class diagram requires importing the packages one at a time, which can be a tedious task.
While the entire source can be imported as a whole, this does not result in a diagram containing all of the classes, as one might hope. Enterprise Architect does, however, support XMI for exchanging models between standards-compliant UML applications, and it would be quite common for enterprises with complex application structures to have such tools around.
For an enterprise architect who also works on a project level, having a lot of functionality in a single application can be advantageous from a dollar cost point of view. Even if cost is not a major factor (such as when licenses for individual tools already exist), the performance of Enterprise Architect is a nice improvement over the resource drag that can occur when running even a few of the functionally-focused applications it conceivably replaces. Productivity can rapidly fall if there are long pauses every time you need to switch between applications. Worse yet, running multiple high-powered applications can lead to lock ups that require a reboot. At best this can be a loss of 20 – 30 minutes in rebooting and then bringing back up the various views you are working on. If you have not developed the habit of preceding every ALT+TAB with a CTRL+S, you could lose hours of work.
The best of all possible situations is to have specific tools for each level of productivity and detail as necessary and then to utilize Enterprise Architect when working with multiple artifacts at the same time where a little heavy-lifting is required. Because of the standards support in Enterprise Architect, as long as the other tools support the same standards (and they would not be high-quality tools if they didn’t), the limitations of Enterprise Architect are overshadowed by its value as a bridge tool.
A Plethora of Tutorials
While the Enterprise Architect interface is fairly intuitive, it offers so much functionality that there is still a bit of a learning curve to get the most of the tool, even if you are interested in only a narrow range of features. At the Sparx Systems resource page you will find product-specific online help tutorials covering features such as creating strategic models, diagram filters, BPEL, traceability and five other product features. On the same page you will also find some good tutorials on UML basics as well as an impressively large library of other Enterprise Architect resources.
If I Could Have Just One Enterprise Architecture Tool…
While Sparx Enterprise Architect suits some of my needs well, what I found most attractive was that it has a 30-day free trial edition that allowed me to use the tool extensively enough to make a true value judgment. There are many tools that may be superior, but I am not one of those who can recommend spending dollars based solely on a sales rep’s assurance and a brochure. If you had to choose a single tool (which I do not recommend), Enterprise Architect can provide the functionality to support that choice, though some tasks may seem tedious if you are already familiar with using more specific applications. If you have tools already and are evaluating more tools to adopt, you can download your own trial edition.
No Leader in the Enterprise Architecture Tools Market
Allow me one final rant before I finish. With enterprise architecture adoption growing, the search for tools is becoming more difficult. In a less savvy forum the response to this phenomenon may be “Huh?” Normally when businesses start doing more of something it leads to an increase in the number and quality of supporting tools. It has become an almost formulaic evolution that begins with an explosion of options, which narrows down to a few dozen leaders as the early adopters kindly weed through the vaporware for us more patient types.
The product leaders will be a mixture of superior tools and tools with effective marketing; the extremely rare and desirable tool will be a stand out in both arenas. As the more conservative department heads begin approving purchase requests, three to five leaders emerge and begin acquiring the competition that didn’t go belly up during the battle for dominance. This is generally a two to three year cycle, and enterprise architecture has been around a lot longer than that. So why aren’t we all unanimous on which enterprise architecture tools should be on our short lists?
I believe it is because of the large number of frameworks labeled as “Enterprise Architecture” tools and the complexity of each of those frameworks (see Pitfalls on the Road to Enterprise Architecture Maturity for more thinking on this). This makes the scope too broad for a sufficient number of vendors to agree on what to compete over, and in application development hitting a moving target is hard. Consider how much harder it is if you don’t know the shape of the target and all the while it is moving among other targets that are similar but different.