Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

A Special Guide-MDA and UML Tools: CASE 2.0—or the Developer's Dream


April, 2006: A special guide to MDA and UML Tools: CASE 2.0—or the Developer's Dream?

Software Development

April 2006

Two years ago, the software trade press was awash in three simple letters—MDA. Short for "Model-Driven Architecture," MDA held the promise of developing sophisticated business processes exclusively through conceptual diagrams using UML, short for the Unified Modeling Language. Thrown into the mix were a few more three-letter ingredients, including CWM (Common Warehouse Metamodel), MOF (Meta Object Facility), OCL (Object Constraint Language) and XMI (XML Data Interchange)—all designed to transform UML into cross-platform, nonproprietary diagrams to code translations. This special guide to MDA tools compiles a spectrum of state-of-the-art MDA tools to assess the gulf between hype and reality.

Current State of MDA

For the uninitiated, MDA can be a challenge: The movement from models to code transformations demands implicit trust. MDA requires a complete paradigm shift, analogous to ASCII-based coders shifting from machine language to assembly or from procedural processing to object-oriented ways of thinking. For most developers, the journey starts with UML.

Because UML is at the heart of nearly every MDA product, a good UML editor is central for model-to-code and model-to-model transformations. If it weren't for the dominance that UML has gained over the industry, MDA and related modeling standards couldn't even exist. Some products, such as IBM's Rational, offer MDA capabilities as an add-on to well-established UML tools. Others, such as Innoq's iQgen, allow the import of UML models from popular UML editors, such as Rational Rose, into the respective product's MDA editing environments. And still others, realizing the complexity of standards that encircle the MDA mantra, have constructed standalone applications integrating all these evolving layers into a cohesive working container.

Two of the most comprehensive applications in the J2EE model-to-code and model-to-model MDA development arena today are Borland's Together 2006 and Compuware's OptimalJ. These tools target sophisticated software architects—with the learning curves to prove it.

Those seeking an end-to-end MDA solution may need to pay more upfront so they won't need to wait for the eventual interoperability promised by the authors of MDA standards. However, for developers curious about the benefits of MDA, low-cost, high-quality alternatives are available.

But be careful. Not all model-driven code generators are MDA-compliant. Some tool vendors reject MDA's overhead for a more streamlined (albeit proprietary) solution to the problem. In the case of Code Futures' Firestore/DAO Enterprise Edition, CEO P.J. Murray explains, "We wanted to avoid the initial learning curve because MDA assumes knowledge of UML, MOF, OCL and other things. We wanted a product that could be used immediately by Java developers with their existing skillsets. This requirement to fit in with existing development practices and skills is based on past experience of the difficulties in trying to change the way programmers develop applications."

However, MDA and Object Management Group (OMG) purists would argue that this proprietary modeling approach runs counter to the primary intentions of what MDA standardization efforts are supposed to solve. The architects, designers and developers will ultimately decide whether optimized proprietary, generic standards, or both attitudes can coexist in the marketplace.

The Future of MDA

Almost all of the vendors included in this guide admitted that MDA's goal of seamless interoperability of model transformations hasn't been fully realized. This is partly due to standards that leave specific implementation details up to commercial vendors who must release their products into the market to fund future product development as the standards evolve. As the standards are put into real-world practice, additional needs and limitations are identified. and extensions or whole new categories are added to the standards family to address those concerns. Compuware's Director of Development Solutions' Edwin Schumacher states, "UML, MO and XMI are three of the five standards that are needed. There are two in proposal phase: QVT (Query View Transformation) and M2T (Model to Text). So those are the five standards that, in our opinion, would make up MDA."

Regarding the need for improved interoperability between MDA tools, Schumacher adds that there are still variations on how MDA may be interpreted: "Some tools use UML profiles and stereotypes to implement code generation capabilities, whereas OptimalJ has implemented the QVT and M2T standards." So, as seems to be the case with most well-intentioned standards efforts, variations will continue to limit effortless interaction of the many moving parts of MDA between different vendor products.

Even as these standards continue to evolve, the consolidation and disappearance of some offerings have prompted cynical software industry pundits to conclude that MDA is CASE 2.0, and would meet the same fate as that early '90s attempt to escape the ASCII character coding trap. But without CASE to fuel the fire, UML, component-based design and even the round-tripping of code and UI might not have evolved to the degree they have. The continued drive and determination of MDA and UML software vendors shows that there must be a more productive and reliable way to build better system and platform-independent software. The dream is still alive and well, and customers of current MDA products are pioneering the crystallized realization that will continue to move the development, productivity and quality bars higher.

Evaluation Criteria

This guide isn't an exhaustive list of every tool available in the category, but rather a representative sampling of products that best illustrate the featured technology. Vendors range from small consulting firms to large corporations. Even with this broad variance, many of the featured tools offer progressive developers the ability to realize the gains promised by MDA practices. Each product listed highlights:

Features and Claims. This category summarizes the capabilities advertised by the product's vendor. While many of these companies are at parity in baseline features, the more expensive solutions offer distinct advantages for those teams sophisticated enough to adopt advanced capabilities into their software development processes. Podcasts with some of these companies can be found on the Software Development magazine RSS feed (www.sdmagazine.com/podcasts/).

Market Buzz. This subjective category underscores some of the more interesting features and, in some cases, potential distractions and/or shortcomings that are manifested in the product.

Cost. Due to the focused market segment that MDA vendors pursue, along with their aggressive efforts to try to become the de facto standard tool for model-driven development, many of the products in this guide are fiscally attainable by developers seeking a tool to orient themselves toward MDA opportunities. Only those packages established as heavy-lifting software architect applications match the prices typically associated with high-end enterprise application design packages.

Selected Model-Driven Architecture and UML Authoring Tools

The Product Features and Claims The Buzz The Cost
Altova UModel 2005 Features two-way model-to-Java code or code-to-UML 2.0 modeling, support for all major UML diagrams (use, class, object, component and so on), team-enabled for model sharing and editing, model syntax checker, Cascading Style Sheet and PNG image export, customizable code-generation templates, integration with Altova's XMLSpy 2006 and MapForce 2006 XML tools via UModel's code import, code generation and reverse engineering of Java code. Altova has made a name for itself in the code visualization and schema generation market with its XML Spy suite. UModel carries that company theme into the MDA and UML space with one of the more affordable commercial UML modeling tools. Altova's 2006 edition adds several enhancements, including the ability to store models in XMI 2.x format, full support for Sequence diagram/code generation and the added ability to round-trip engineer in C# as well as Java syntax. $129
Aonix Ameos This MDA/UML 2.0 tool supports High Integrity Profiles (HIP) derived from the OMG's UML profile for Schedulability, Performance, and Time Specification (SIP). Other features include real-time team collaboration, Ada95, C, C++, CORBA IDL and Java code generation, XMI support for model import/export and semantic-level color assignments to diagrams. This Java-based application, currently supported on Linux, Solaris and Windows, provides architects with relatively easy UML model construction. The intuitive UI minimizes the learning curve, but the lack of integration with other enterprise tools in the corporate application lifecycle space may limit its adoption to standalone modeling exercises. Nevertheless, its XMI support should allow for model traversal into major enterprise packages when the need arises. $4,395 node locked, $6,495 floating license.
Borland Together Architect 2006 This team-centric design tool can be used to generate UML 2.0 diagrams, Business Process Models (BPMN) and Business Process Execution Language with Web Services Definition (BPEL4WS). MDA output supports the OMG's XMI 2.0 and Query View Transformations (QVT) for model-to-model translations, as well as Object Constraint Language (OCL) 2.0 for audit/metric creation and code sense, syntax highlighting and validation and HTML documentation output with Javadoc-style model/code reporting. The 2005 edition, discussed in the "Special Guide to Eclipse Tools" (SD, June 2005), was a Jolt award-winning modeling tool, and 2006 continues its tradition of excellence. However, this excel- lence comes at a price: Together is one of the most expensive tools I examined for this article. Nevertheless, for software architects willing to pay for quality, Together delivers an impressive array of modeling features and has been optimized to work seamlessly within the latest Eclipse environment. $5,000
Codagen Architect Provides model-to-code and model-to-model transformation, specific add-in support for Microsoft Visio, Rational Rose and Together ControlCenter UML designers, as well as generic UML adapter support for XMI 1.1- compliant tools. It supports a library of framework transformation templates, C#, C++ and Java source code, and ASP, HTML, JSP and XML text file generation, nondisruptive regeneration of output on top of existing code and code pocket demarcation to flag manually editable areas of generated code. This cross-language MDA tool won the 13th annual Software Development magazine Jolt Productivity Award for good reason, most notably its seamless output of both J2EE and .NET code from a single source model, living up to the expectations of the vision of MDA. Also noteworthy is the program's adapters for popular UML modeling tools, providing greater flexibility for enterprises already committed to a UML diagramming solution. A Flash-based demo is available here. Call (514)-845-3800 ext. 45 for pricing info.
Code Futures Firestore/DAO Enterprise Edition Java code generator with round-trip engineering from JDBC, JDO or EJB data schemas with support for BEA WebLogic, IBM Websphere, JBoss and Tomcat J2EE application servers. Firestore/DAO can also automatic- ally generate Data Access Object (DAO) interfaces, classes, Apache Struts and stan- dard JSP pages, JDO metadata and property files, CMP and J2EE deployment descriptors and even ANT build scripts. Supports most major RDBMSs including Oracle, SQL Server, DB2, MySQL, PostgreSQL, Cloudscape and any JDBC-compliant database. While not an MDA tool in the truest sense of the specification, Firestore/DAO is nevertheless a model-driven code generator for core J2EE design patterns using a database schema versus UML. Code Futures' belief that Java developers are primarily coders who prefer not to be encumbered by UML diagrams may be an overgeneralization, particularly as model-before-coding practices are more potently enforced in development projects, but its auto-generated model and code from existing database schemas is sure to accelerate Java-based application development. $595
Compuware OptimalJ Architecture Edition Automatically incorporates existing architectural frameworks and active model-code synchronization for rapid MDA utilization. Supports Domain, Application and Code Metamodels, model-to-model transformation technology patterns for Apache Struts Web presentation layers, DAO and EJB persistence models, RDBMSs, Web services and implementation patterns via OptimalJ's Template Pattern Language (TPL). There's also support for all UML diagrams with HTML and PDF documentation output. OptimalJ is one of the best MDA tools for J2EE development on the market. This is a serious design and Java code-generation tool with a steep learning curve, but the promise of MDA efficiencies can be realized by those software architects willing to invest the time mastering Compuware's masterpiece. OptimalJ's three editions ensure model visibility among architects, developers and project managers, and its integration with application lifecycle tools, such as Compuware partner Steeltrace, help accelerate MDA practices within a corporate development environment. $18,000 per named user with maintenance
i3 Design Constructor/MDRAD Professional Supports UML modeler with object-relational mapping and data access for many-to-many data inheritance needs, and provides a Database Comparison Utility, Model Browser and Editor, an ORM/Data Access Layer, and a UI Event Redirector. Models can be shared via Web server and can be saved as templates for future design needs. Constructor also features a comprehensive database comparison utility, an ObjectFactory component that lets an MDRAD-generated class be dragged onto a .NET Windows or Web form as a data source within a data-bound control. One of the few modeling tools specifically designed for the Visual Studio .NET IDE, i3 Design has included its powerful Object Relational Mapping API for greater extensibility within the Visual Studio environment. Additionally, MDRAD's ability to reverse-engineer database schemas offers developers the ability to quickly ascertain the key aspects of data design in such design detail as to review everything from column type and procedure parameter length to relationship parent/child column name, columns, views, tables and stored procedures. $595
Innoq iQgen A 100 percent Java-based model generator capable of outputting to C#, C++, Java, XML, and more; XMI 1.0 and 1.1 support for model importation from Rational Rose, Together and ArgoUML. It also supports multiple program interfaces, including Ant, command line, and Eclipse plug-in. iQgen supports model/UML profiles and the ability for customers to design their own Platform Independent Models (PIMs) via standard CASE tools, allowing iQgen to convert these into Platform Specific Models (PSMs). One of iQgen's most interesting features is the company's decision to use Java Server Pages as its template language, minimizing the amount of time required to learn a proprietary approach to customized model-to-code output mechanisms. It's also one of the few modeling tools that is supported on the Macintosh OS X platform (in addition to Linux and Windows NT/2000/XP), due to the product's pure Java heritage. A solid product to acclimate developers to the principle advantages of MDA practices. $1,800
Interactive Objects' Arcstyler Architect Arcstyler can generate J2EE and .NET platform-specific code, as well as auto-generate Web front-ends and Web services. MDA- Cartridges can be used to extend specific architectural output requirements. Acrstyler Harvester can import existing project code and create MDA-compliant models, particularly for reverse-engineering of J2SE applications with optional abstraction heuristics. Team support via CVS and tight integration with the MagicDraw teamwork server ensure shared model integrity across developer desktops. This entirely Java-based utility advertises up to 35 percent overall savings in software development costs, a figure that some may dispute. However, given the pluggable architecture, the Harvester code-to-model converter, the program's solid standards-based foundation and full support for both J2EE and .NET applications via the product's unique MDA-Engine and MDA-Cartridges, there is no question that cost savings can be realized once the initial, comparatively shallow learning curve has been overcome. Arcstyler is a strong contender in the MDA tool category. Starts at $12,000 per seat, depending on cartridge configuration
Mia Software's Generation Architect Edition Multi-target MDA tool featuring full UML and UML profile support, model import from major XMI-compliant applications such as Borland Together or Rational Rose, output targets for Java/J2EE including EJB, JSP, Struts and XML, and Microsoft .NET technolo- gies including ASP.NET, C# and VB 5/6 within Mia's custom IDE or integrated into IDEs such as Eclipse. End-to-end customized business logic accessible from any model via Mia's support of profiles and tagged values. Working with Mia's technology-independent model provides its customers with application regeneration into numerous code syntaxes and technology frameworks. The templates for this output can target a wide range of platforms, from Java to Microsoft technologies, even Ada-95, Borland Delphi and Smalltalk output is possible. Even nonOO language syntax can be generated, inclu- ding COBOL and VB targets. However, Mia's Generation Architect's current version only supports UML 1.4, though future releases are expected to be fully 2.0 compliant. $11,500
M1 Global MDE Studio Built to run on the Eclipse platform and specifically designed to target the J2EE and Struts environments, MDE Studio promotes Platform Independent Modeling and team-based development via its file-based repository with integrated version control support. Model-to-code output is defined by Meta-Programs, a "program that writes a program" similar to ASP or JSP scripts. MDE also includes an HTML editor, Java IDE and a UML model capable of importing models created with Rational Rose. Unlike other commercial MDA tool vendors, M1 Global has decided on a different approach, allowing MDE Studio to be used for free in noncommercial settings. The tool is an entry point into M1's Eclipse-based commercial business processes modeling tool, Convergence Studio for Business Process Modeling, which extends MDA developed models into visual definitions of cross-channel business processes. For those developers seeking a tool that can help orient themselves to the world of MDA, MDE Studio can offer a good introduction to the power of model-driven processes. Free for noncommercial use
IBM/Rational Rose XDE Developer with MDA Toolkit for Rational XDE Java Combines the Eclipse-based IBM WebSphere Studio Application Developer and Integration Edition IDEs into a UML 1.4-compliant MDA toolsuite capable of Java code round-trip engineering, business modeling, data mod- eling, J2EE deployment, runtime analysis with visual execution trace, Web publishing and reporting with SoDA integration. Also includes the IBM Rational Rose Professional J to integrate with other Java IDEs. A popular design tool in its own right, the addition of the MDA Toolkit to the XDE platform provides developers with a popular, comprehensive modeling environment, since XDE is bundled with Rational Rose--one of the best-known modeling tools in the software development industry. A separate version of XDE for .NET is available, but doesn't include support for the Java-based MDA Toolkit. $4,370 for Rational Rose XDE Developer authorized user and annual maintenance.
Objecteering Software Objecteering/MDA Modeler Designed to work in conjunction with Objecteering/UML, MDA Modeler can also be used to create design patterns via UML 2.0 technology. Documentation can be exported to HTML or Microsoft Word format. An online demo is available here. Objecteering is a subsidiary of SOFTEAM, a European organization that is an active contributing member of the OMG's UML Revision Task Force. As such, the company has extensive interaction with the standards it helps drive, with MDA being no exception. Unfortunately, its use of a proprie- tary UML metamodel manipulation Java-like language called "J Language" can increase the learning curve for some developers. $2,280
Xactium XMF-Mosiac This Eclipse-based tool features customized diagram editors, browsers and forms that are based on MDA standards, including MOF, OCL, QVT and the UML, a powerful class diagram tool that can create fully executable class models and visualized via object diagrams; supports XOCL, Xactium's extension to OCL that provides model-level programming capabilities, as well as a profiling mechanism for polymorphic extensions of existing model elements. Initially developed for the defense industry and later expanded to include the financial sector, this Version 1.0 tool was developed over a two-year period. XMF-Mosiac can be used to model the features and processes required to build a tool that will ultimately build the end product. While not currently enabled for team-based development, plans include provisions for team support and greater integration with Eclipse and domain-specific languages. Starts at $5,000



Mike Riley is a Naperville, Illinois-based advanced computing professional specializing in emerging technologies and new development trends. Contact him at [email protected].


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.