TEN#39: Enterprise Architect – An Outstanding
Performer
In many Enterprise
Architecture projects over the years I have used a
variety of modeling tools. I started using a more
recent tool: Enterprise Architect (EA) which is produced
by Sparx Systems Pty Ltd, an Australian Software Company
located in a regional city, Creswick, in the State of
Victoria. The founder and CEO is Geoff Sparks.
First released in 2000, EA
has evolved over the years and has acquired a
well-earned reputation as a UML-based CASE tool with
over 100,000 users world-wide. However its name has
always worried me: I felt that it should have been
called “UML Architect”, not “Enterprise Architect”. With
its latest release – V7.0 – it has now truly earned the
right to use the name: Enterprise Architect. This issue
of TEN reviews the capabilities of this amazing product.
Complete details are available from the Sparx web site
at
www.sparxsystems.com where an evaluation version can
also be downloaded.
My first introduction to
Sparx Systems was through their Chief Operating Officer,
Ben Constable, who attended my public workshop: “Rapid
Delivery of Enterprise Architecture” that I presented in
Sydney in late 2006. This course provides
skills-transfer in methods and technologies for rapid
delivery of Enterprise Architecture in 3-month
increments. These methods and technologies are detailed
in my 2006 book:
“Enterprise Architecture for Integration: Rapid Delivery
Methods and Technologies”, by Clive Finkelstein,
Artech House, Norwood MA (March 2006).
Ben Constable approached me
during the course to discuss whether and how these rapid
delivery methods could be incorporated into EA. I told
him that Chapter 7 of the book was written specifically
so that users could learn how to apply the rapid
delivery methods manually and so that developers could
automate these methods and incorporate them into
modelling tools. From that discussion Sparx engaged me
as a Consultant to advise their developers over a 1-week
assignment in Jan 2007. I found their developers were
very bright and eager to learn these rapid delivery
methods.
They added extensions – as
an Add-In to V7.0 – to provide a clickable front-end
interface using the Zachman Framework for Enterprise
Architecture. They also added support to derive project
plans automatically from data models and also derive
project maps, based on Chapter 7 of my book. These
capabilities are essential if a modeling tool is to be
able to identify reusable processes as subprojects for
early delivery into production in 3-month increments. As
this development moved to a Beta release I was then able
to test what they had implemented: called the “MDG ZF
Add-In” (formally named the “MDG Technology for Zachman
Framework”).
My first experience with EA,
I must admit, was one of confusion. This is such a
comprehensive product that it was hard to know where and
how to start. However after some prompting from Sparx
Systems I located an introductory video on their web
site, which got me started. Make no mistake, its low
price: $US200 - $US300 per user depending on license
usage led me at first to suspect that it was not a
full-featured Enterprise Architecture product. How wrong
was I in this assumption: it is one of the most
complete, fully-featured yet easy-to-use products that I
have ever encountered!
EA supports all 13 UML 2.1
diagrams, including UML Class Diagrams and support for
IE and IDEF1x data modeling notations plus DDL
generation for DB2, InterBase, Informix, Ingres, MS
Access, MySQL, Oracle 9i and 10g, PostgreSQL, MS SQL
Server 2000 and 2005, SQL Server7, Sybase Adaptive
Server Anywhere and Sybase Adaptive Server Enterprise .
It reverse engineers from any ODBC data base.
EA can connect to database
repositories on SQL Server 2000 and 2005, MySQL,
Oracle9i and 10g, MS Access, PostgreSQL, Adaptive Server
Anywhere, MSDE Server or Progress OpenEdge. It includes
built-in support for Requirements Management and for
Project Management with support for resources, metrics
and testing. It automatically generates HTML and
Rich-Text (RTF) comprehensive documentation. It
generates and reverse engineers code in a number of
languages including C, C++, C#, Delphi, Java, PHP,
Python, Visual Basic and VB.NET.
Model-Driven Architecture
(MDA) transforms are provided, according to Sparx as
follows:
“(EA)
provides a fully configurable method of converting model
elements and model fragments from one domain to another.
This typically involves converting Platform-Independent
Model (PIM) elements to Platform-Specific Model (PSM)
elements. A single element from the PIM could be
responsible for creating multiple PSM elements across
multiple domains.
Transformations are a huge productivity boost, and
reduce the need to manually implement stock classes and
elements for a particular implementation domain; for
example, database tables can be automatically derived
from persistent PIM classes. Enterprise Architect
includes some basic built-in transformations, such as
PIM to Data Model, PIM to C#, PIM to Java and PIM to XSD.”
Model-Driven Generation
(MDG) technology enables Sparx Systems to extend EA’s
core functionality. This has been used in V7.0 to add:
built-in support for Business Process Modeling Notation;
and support for a clickable front-end interface using
the Zachman Framework for Enterprise Architecture (as
the MDG ZF Add-In) which includes automatic derivation of
project plans and reusable processes from data models
for early delivery of priority processes into production
in 3-month increments. MDG add-ins are also supplied for
Visual Studio and Eclipse. These enable Enterprise
Architect to interoperate with the Microsoft® Visual
Studio® 2005 and Eclipse IDEs respectively.
“MDG
Integration for Visual Studio 2005 tightly integrates
Enterprise Architect into the Microsoft® Visual Studio®
2005 development environment. This product enables users
to explore and edit the UML model inside Visual Studio
and also provides many of the key features of Enterprise
Architect directly within the IDE, including rich text
and web-based document generation, MDA transformations,
Baseline management and Engineering of key XML-based
technologies.”
EA has the ability to easily
add new diagramming approaches and icons. For examples,
support is included for documenting Mind Maps and also
Strategy Maps (used with Balanced Scorecard). The
latter is not normally supported by modeling tools, yet
is essential to provide effective support for
requirements based on Strategic Business Plans.
Support is included for
Model Validation, which checks UML models against known
UML rules, as well as any constraints defined within the
model, using the Object Constraint Language (OCL). Code
engineering support is included for: “automated code
generation, reverse engineering of source code and
synchronization between the source code and model. It is
available only in the Professional and Corporate
editions of Enterprise Architect.” According
to Sparx Systems:
“Enterprise Architect enables you to generate source
code from UML models in more than ten commonly used
development languages out of the box, including:
ActionScript (Macromedia Flash development language), C,
C# (for both .NET 1.1 and .NET 2.0), C++ (standard plus
.NET managed C++ extensions, Delphi, Java (including
Java 1.5, Aspects and Generics), PHP, Python, Visual
Basic, Visual Basic .NET. The source code generated
includes class definitions, variables and function stubs
for each attribute and operation in the UML class. In
addition, Enterprise Architect enables you to edit and
generate XSD and WSDL XML source.”
EA provides a “Code Template
Framework” capability to transform from UML elements to
the various parts of a given programming language. This
enables you to: generate source code from UML models,
customize the way in which Enterprise Architect
generates source code and forward engineers languages
not specifically supported by Enterprise Architect. The
Code Template Framework consists of: default code
templates that are built into Enterprise Architect for
forward engineering supported languages and a code
template editor for creating and maintaining
User-defined Code Templates. It provides a Live Code
Generation feature that automatically updates your
source code instantly as you make changes to your model.
For example, when you create new operations and
attributes for a class in the model, these are instantly
written out to the source file.
“The
Professional and Corporate versions of Enterprise
Architect enable you to build, test, debug, run and
execute deployment scripts, all from within the
Enterprise Architect development environment. This
capability provides developers with tools to integrate
UML development and modeling with source development and
compilation. With the ability to generate nUnit and
jUnit test classes from source classes using MDA
Transformations and integrate the test process directly
into the Enterprise Architect IDE, you can now integrate
UML and modeling into the build/test/execute/deploy
process.”
Enterprise Architect
supports version control of packages and their component
sub-packages to a central repository. This repository is
maintained by third-party version control applications
that control access and record revisions.
Enterprise Architect ships
with several predefined Model Patterns to assist in the
creation of new projects and models. Each pattern
contains notes, references and starter elements that
together provide a framework on which you can build your
own model.
The User Interface for EA
includes: “The Project Browser, which displays the
complete contents of a model or project in a
hierarchical format. This enables you to add, select,
reorganize or delete packages, diagrams and elements
anywhere in the project; The Toolbar, which is
context-sensitive to the diagram being created, provides
a quick and efficient means of selecting and creating
the appropriate model elements or connectors, whether
they be UML, from extended diagrams or from imported
technologies; the Diagram View, which enables you to
display and develop diagrams selected from the Project
Browser; diagram backgrounds, connectors and elements
can be colored with or without a color gradient for
color-coding or for better display and presentation;
context menus, which provide options specific to the
type of object and its immediate environment.”
Enterprise Architect enables
fast editing of element properties directly from the
diagram. Using in-place edit commands, you can rapidly
add and update element features such as attributes,
operations and parameters, all without leaving the
Diagram View.
A Quick Linking capability
provides a fast and ‘in-place’ mechanism for creating
new elements and connectors on a diagram. Its
context-sensitive selection menus help guide creation of
'correct' models, saving users’ time and improving
overall productivity. In addition: “you can export
diagrams to a range of image formats (.bmp, .jpg, .png,
.gif, .emf and .wmf); swim-lanes enable logical
partitioning of diagrams; the Pan & Zoom window enables
easy navigation and preview of complex diagrams; you can
lock down diagrams to prevent accidental modification;
Enterprise Architect Shape Scripts enable you to specify
custom shapes via a scripting language, each shape being
keyed to a stereotype; these custom shapes are drawn
instead of the standard UML notation for every element
of the same stereotype; you can also superimpose
alternative images – as metafiles - on diagrams and
elements, to replace the standard image.” This latter
capability enables the “stick-figures” and other icons
of UML diagrams to be replaced by more business-oriented
images.
Enterprise Architect’s
Auditing feature enables you to track and record changes
made to the model over time. By enabling this option,
model administrators can view a range of information
regarding changes, such as: “who changed an element; how
many elements they changed; when they changed the data;
what the previous values were, and what type of elements
they changed.”
The Relationship Matrix
enables you to study the relationships between model
elements in a tabular view. It also enables you to
create, modify and delete relationships between elements
with a single mouse click.
The production of
documentation is essential to realizing the full benefit
of any modeling tool. Enterprise Architect outputs high
quality documentation in either RTF or HTML format. “You
can modify the RTF formatting directly with RTF Style
templates to alter the look and feel of generated
output. Using MS Word you can further enhance the output
by connecting and interweaving model output in linked
documents. There are many ways to specify the Enterprise
Architect content being documented. You can: document a
package and/or its child packages by manually
highlighting the package and selecting a documentation
control; specify embedded packages for exclusion if
child packages are recursively documented; link a
package to an RTF document template to simplify
generating consistent types of documentation (such as
Use Case reports) using the Documents feature.”
You can select, group and
order packages together in a manner different from the
project view by creating ‘virtual’ documents.
The Rich Text Format (RTF)
Report Writer Style Template editor enables you to
create and edit custom RTF templates to define any
output RTF documentation. “The Style Template Editor
enables you to select particular model elements and then
to specify, from the element type, the fields for
inclusion in the generated document. Formatting styles
can be defined in the Style Editor, and items such as
tables of contents and headers can be added to the
document.”
“Enterprise Architect enables you to export an entire
model or a single branch of the model to HTML web pages
using the HTML Report Writer. The HTML report provides
an easy-to-use and highly detailed model tree. In
addition, hyperlinked elements make browsing to related
information very easy. The HTML documentation is based
on user-customizable HTML templates, so you can tailor
the generated web-pages to suit your company standard.”
Enterprise Architect enables
you to link rich-text documents to any element in the
model. Linked documents are created from customizable
templates and are included in generated web and
Word-based reports.
Enterprise Architect offers
a diverse set of functionality designed specifically for
sharing projects in team-based and distributed
development environments. Projects can be shared through
network deployment of model repositories, replication,
XMI Import/Export, Version Control, Package Control and
User Security.
Network deployment can be
achieved with an EAP (file based) repository or by using
a dedicated DBMS (server based) repository. The
Corporate Edition of Enterprise Architect supports large
projects and many concurrent users. It “enables the use
of database repositories rather than use the standard
.EAP files to store model data. Enterprise Architect
supports the following DBMS repositories: “MS SQL
Server ; MySQL; Oracle; PostgreSQL; Progress OpenEdge;
MSDE Server; Adaptive Server Anywhere.”.
You can use the XMI
Import/Export facility to model discrete packages that
can be exported and shared between developers. XMI
enables you to export packages into XML files that can
then be imported into any model.
Package control can be used
to set up packages for version control and enables batch
export of packages using XMI. Version Control enables
you to maintain a repository by a third-party source
code control application, which is used to control
access and record revisions.
“Enterprise Architect supports version control of
project root nodes, packages and their component
sub-packages to a central repository. This repository is
maintained by third-party version control applications
that control access and record revisions. Version
control products supported for Enterprise Architect
include CVS, Subversion, Microsoft Team Foundation
Server (TFS) and SCC-compliant tools (including Visual
Source Safe and Clear Case).”
Enterprise Architect’s
built-in Data Modeling profile extends to the UML to
provide an intuitive mapping from the database concepts
of tables and relationships onto the UML concepts of
classes and associations. These extensions also enable
you to model database keys, triggers, constraints, RI
and other relational database features. When modeling
or designing databases you might typically: “create a
Data Model diagram; create a table; set properties of a
table; create columns; create primary keys; create
foreign keys; create stored procedures; create indexes,
sequences, functions and triggers; generate DDL for a
table; generate DDL for a package; convert datatypes for
a table; convert datatypes for a package; customize
datatypes for a DBMS; import a database schema from an
ODBC data source; create views.”
Enterprise Architect
supports data modeling of database schema from the
following databases: “DB2; InterBase; Informix; Ingres;
MS Access; MySQL; Oracle 9i and 10g; PostgreSQL; MS SQL
Server 2000 and 2005; SQL Server7; Sybase Adaptive
Server Anywhere; Sybase Adaptive.” Server Enterprise.”
Analysis of legacy database
systems is possible using Enterprise Architect’s reverse
engineering capabilities. By connecting to a live
database via ODBC, you can import the database schema
into a standard UML model. Subsequent imports allow you
maintain synchronization between the data model and the
live database.
Exchanging data between
different models, and between different tools, is an
integral part of any development project. Enterprise
Architect supports both of the two most common data
exchange formats (XMI and CSV), making it easy for
information and models to be ported into different tools
and repositories as needed. Coupled with the Enterprise
Architect API, this makes it possible to automate model
import/export, and facilitates the easy dissemination of
models and automated software construction.
“The
Model Driven Generator (MDG) Technologies enable you to
download a logical collection of resources pertaining to
a specific technology from a directory folder or web
site into one centralized location in Enterprise
Architect. With MDG Technologies you also have the
option of granular importation of UML Profiles, UML
Patterns, Code templates and Language types as an XML
file into a single, easy to access area contained in the
Enterprise Architect Resources window. To get you
started with MDG Technologies, Sparx Systems provide
technologies such as ICONIX and Mind Mapping with the
Enterprise Architect Installer, and offer further
technologies for download from the Sparx systems website
(http://www.sparxsystems.com/resources/mdg_tech).”
“Enterprise Architect is available in four editions:
Corporate (Floating), Corporate (Standalone),
Professional and Desktop. Each edition offers a range of
features to support the requirements of different groups
of users, from single-person projects to large
enterprise teams. The Corporate Floating license
arrangement is particularly useful for companies that
need to manage a central store of license keys. Floating
license keys may be used by different employees over
time, on a temporary or permanent basis. More
information about Enterprise Architect editions is
available from:
http://sparxsystems.com/products/ea_editions.html.”
In conclusion I must say
that with the MDG ZF Add-In to V7.0, EA has now truly earned
the right to call itself “Enterprise Architect”. In
fact, with this new support it is now the most capable
modeling tool on the market today for Enterprise
Architecture.
Complete details are available from the
Sparx web site at
www.sparxsystems.com where an evaluation version can
also be downloaded. I encourage you to visit their web
site, view the introductory videos, then download and
evaluate the Sparx Systems Enterprise Architect modeling
tool. You will be pleasantly surprised.
Back to Contents