MDA Radar

Issue #3 [March 06-March 12, 2006]

MDA Tools Evaluation - Part II: Evaluating Compuware OptimalJ

Last week, author Soumen Chatterjee dissected ArcStlyer using MDA Radar’s Tools Evaluation template and summarized it as a promising modeling initiative with several good features. The template also threw up a lot of missing MDA issues that are yet to be addressed in ArcStyler. In the second part of the MDA tool evaluation series, MDA Radar tunes into OptimalJ, Compuware’s Model-driven Java development tool. Read onto find out how OptimalJ fares in the MDA Radar template test. To know more about OptimalJ itself, read ‘OptimalJ - Delivering on the Essence of MDA’, a JAX Magazine article by Wim Bast, Chief Architect Compuware.

Tool Background

OptimalJ is a product of Compuware Corporation, a Detroit, Michigan based software and IT services company. OptimalJ comes in three different role-based blended flavors: Developer Edition, Professional Edition and Architect Edition. OptimalJ installation procedure recommends a minimum of 512 MB RAM and 250-350 MB free disk space. Java code, generated using OptimalJ, can be automatically deployed to J2EE production servers such as IBM WebSphere, BEA WebLogic, Oracle 9iAS, JBoss and Sun Java Application Server. OptimalJ supports Sun Java JDK 1.4.1 and 1.4.2

OptimalJ Product Features

OptimalJ Professional and Architecture Editions generate working applications from a visual UML model, while OptimalJ Developer Edition provides developers with the tools to complete the code extensions (business rules) that keep changing according to business requirements. OptimalJ supports UML 1.3 based models and is compatible with XMI 1.2 specification.

Models in OptimalJ

OptimalJ supports three different types of models: Domain model, Application model and Code model:

  • The Domain model captures functionality in platform-independent models (PIM) with the help of Class model, Service model and Component model.
  • Three other models further represent the Application model: presentation, business and DBMS model.

    • The Database model is a relational model involving object-relational mapping with the help of a DAO Model.
    • The EJB model provides a framework to make the domain model's data available in a distributed environment, dealing with, for example, transactions, security, persistency, and scalability.
    • The Integration model facilitates integration of external applications like JCA Integration, CICS/COBOL integration, and Web Service Integration Model.

  • The Code model is the actual code generated from Application model through transformation.

Patterns in OptimalJ

OptimalJ benefits from a rich set of patterns, which are mostly based on the proprietary Template Pattern Language (TPL). OptimalJ patterns have different flavors:

  • Transformation patterns transform a Platform Independent Model (PIM) to a Platform Specific Model (PSM), and a PSM to code. Transformation patterns include Technology patterns that involve transformation of the OptimalJ domain model (PIM) into the application model (PSM); for example, EJB, DAO, DBMS, and Web. It also includes Implementation patterns that facilitate transformation of the application model (PSM) into code.
  • Functional patterns promote best practices, reduce errors, and accelerate application development.
  • Domain patterns are for the domain model.
  • Application patterns for the application model define the maintenance application.
OptimalJ Fact Sheet

After reviewing the evaluation version of OptimalJ 4.0.0_sp6 Professional Edition, the following fact sheet was generated:

Note: At the time of writing, the Architectural Edition was not available for evaluation from the product web site.





Suggested Improvements

OptimalJ is a good contribution towards the MDA-driven community, and it holds a lot of promise. Their success story is very impressive as well. After stepping through the MDA Radar Tools Template evaluation process, I've identified some important functionality that will make OptimalJ more comprehensive, robust tool for the MDA community. They are as follows:

  • Explicit CIM support.
  • Explicit conversion wizards.
  • Domain extensions.
  • CWM Compatibilities.
  • QVT compatibilities.
  • Pervasive services.Explicit model merging.
  • The Marks feature is unclear — OptimalJ should have the Marks feature aligning with MDA specification.
  • The Transformation feature is available in a very light form. Since transformation is the heart of MDA, OptimalJ should feature the Transformation facility aligning with MDA specification.
  • The inclusion of domain specific modeling templates will be an added bonus.

Conclusion

OptimalJ’s Professional and Architect versions are good MDA-driven modeling initiatives with many useful features. At the moment, OptimalJ is mostly PIM and PSM centric and provides fundamental support as mentioned in the OMG specification. The three patterns, Domain, Technology and Implementation, present a big advantage for architects. OptimalJ manuals are diagram-rich, and present an easy to understand learning capsule.

The Compuware team is continuously aiming to reduce the complexities in MDA-driven processes and increasingly perpetuating best modeling practices in OptimalJ. It’s evolving fast and it’s highly likely that OptimalJ will eventually address all other missing MDA issues. The software modeling industry will be greatly geared by the OptimalJ modeling roadmap.

References