OptimalJ Taps Modeling to Speed Complex Java Projects
Recent studies by The Middleware Company and EDS found that traditional Java/J2EE development practices are too inefficient to be used for many dev projects. So, Compuware Corp.'s latest upgrade to its OptimalJ enterprise development environment adds features to reduce the code delays and expenses that Java/J2EE developers face daily during testing, integration and implementation. Compuware has a similar commitment to bring MDA to .NET is on the drawing board. See how modeling has been brought down to earth to build efficiencies.
Compuware Corp.'s latest upgrade to its OptimalJ enterprise development environment adds features that take on the integration headaches, delays and expenses that Java/J2EE developers face daily during testing and implementation.
OptimalJ's 3.0 upgrade, which also includes for the first time modeling tools and templates, is the latest sign that tool vendors are rushing to make Java projects more efficient. Recent research from Gartner Inc. suggests Java/J2EE developers continue to be inefficient building today's applications.
For example, Mark Driver, research director at Gartner, Inc., recently found, "Some 75 percent of most large-scale Java projects fail by missing both time and budget projections." Without a change in the way complex, enterprise-wide Java/J2EE apps are built, things could even get worse.
What Me, Inefficient?
Just how inefficient is the current state of Java/J2EE?
EDS conducted a reference test that examined the amount of code needed to manually write the Java Pet Store (reference application) using J2EE versus .NET. OptimalJ was also considered as the third option. The results were eye-popping, with J2EE limping painfully to the finish line as the least efficient choice.
Final tally on total lines of code:
J2EE - 14,273;
.NET - 3,484; and
OptimalJ (with modeling features) - 610.
EDS also undertook a project to find out how long it takes to migrate from an EJB 1.1-based application to EJB 2.0 (again, using the Java Pet Store). EDS noted that most developers might measure such an upgrade in months. Using an MDA approach (with OptimalJ), the upgrade took less than one hour.
OptimalJ 3.0 offers a source code editor a test deployment environment; code visualization; IDE plug-ins; and application structure analysis and refactoring. While OptimalJ 3.0 can be used as a stand-alone IDE, it also sports plug-ins for the most popular Java IDEs, including IBM WebSphere Studio Application Developer and SunONE Studio.
Most notable, however, is OptimalJ's 3.0 marriage of model-driven architecture (MDA) , [based on standards from the Object Management Group (OMG)] with well-tested Java/J2EE designs and patterns. OptimalJ 3.0 brings these abstract design tools directly to the individual J2EE developer. It's a feature that some hands-on Java/J2EE developers, including execs at The Middleware Company, say could improve Java/J2EE efficiencies by 35 percent.
"Historically, modeling has been the responsibility of the architect or the designer," Compuware's Mike Sawicki, OptimalJ 3.0 product manager, told IDN. "We strongly believe that by bringing modeling to the developer himself, we can make application development and implementation more efficient by making code easier to share and update,"
In addition to the MDA tools, OptimalJ 3.0 also includes design patterns from J2EE 1.3 (and even some from 1.4) to help guide developers to best practices for building code that separates the application logic from the business logic to make sharing, integration and updates more efficient, Sawicki said.
In addition, also through plug-ins, OptimalJ offers Java developers simpler ways to efficiently share and/or update their code to work with some key non-Java legacy platforms, including CICS and IMS/TM mainframe applications, DB2 databases and SQL database apps running on Oracle, Informix and Microsoft.
With the release of OptimalJ 3.0, Compuware offers three separate editions of the product-- developer, architect and professional -- to better ensure consistency in code and designs during team development. Licensing starts at $800 per named developer in the Developer Edition. OptimalJ pattern source-code licenses start at $5,000 per site.
Why The Middleware Co. Likes Modeling
For years, developers haven't really considered building a model to be part of their jobs. Where models were used, they were the purview of the architect and the designer -- not the hands-on developer. What's worse, even for some of those who have used models, results were often mixed. Sometimes productivity even plunged, and frustration soared.
But, a hands-on study conducted by famed J2EE consultancy The Middleware Company concludes that modeling, particularly MDA, is worth another look. In part, The Middleware Company said, Java/J2EE shops could improve their developer productivity by reviewing their object model strategy, in particular considering use of MDA-based tools.
The Middleware Company's hands-on test assigned two groups of similarly experienced developers to build the same J2EE-based application, one using OptimalJ and one using a popular IDE (though it's important to note that in the latest release, you can use JBuilder, WebSphere Studio or Sun ONE Studio in conjunction with OptimalJ, as well as the built-in NetBeans). Results of The Middleware Company's test are available.
The results: The IDE group took 507 hours to build the application. The OptimalJ group took 330 hours.
Moreover, the Middleware Company found, the quality of the code generated by OptimalJ was higher. (Of course, this doesn't count the training period for the developers using OptimalJ [who hadn't previously used it]. On the other hand, it doesn't take account of the fact that those developers would probably be more proficient.)
"As a development shop, it behooves you to create a business object model such as this that survives technology and lasts for many years. [MDA] is an important tool to have in communicating between developers who may be using different tools and technologies," noted The Middleware Company's study. "While a short introduction to the MDA approach and tools might be necessary for development teams, the productivity benefits gained from the approach -- especially for work on subsequent applications -- make the effort significantly worthwhile," the report added.
The Middleware Company's study keys in on several pluses, including:
- A Platform-Independent Model (PIM) has a "very long" lifespan, and will work well in multi-platform, multi-skilled IT shops; and
- MDA enables knowledgeable architects in an organization to ensure that the average developer "use consistent J2EE design patterns" by automatically generating pattern code that can become a "natural part of developers' coding."
The decision to bundle OMG's MDA standard modeling technologies into a developer tool, Compuware execs said, arose "because Java development just has to get more efficient," said Dan Schoenbaum, Compuware's VP of Strategy.
The addition of modeling also goes to the idea that developers will increasingly need to work with non-Java assets, Schoenbaum told IDN, as strict "siloed" projects become less important than the ability to develop, implement and support cross-platform applications. "Tools that abstract and simplify the foundations of J2EE while providing consistent quality through models and design patterns will be critical to the success of larger Java projects," he said.
OptimalJ's model-driven, pattern-based environment "separates business logic from all architectural considerations, while.automatically generating the relevant structures for the deployment of n-tier applications," said Phil Howard, of Bloor Research. Howard provides a brief overview and hands-on review of OptimalJ 3.0.
OptimalJ 3.0's approach to modeling is to use MDA's various components to better enable devs to support applications throughout the application lifecycle, from design through deployment and ongoing maintenance. To make the theoretical benefits of modeling more concrete to the front line developer, OptimalJ 3.0's approach roughly follows this approach:
- The OptimalJ Domain Model, which maps to the MDA Platform Independent Model (PIM). The Domain Model defines the business domains without any specific application detail. It models the business application's functionality and behavior, domain-specific information based on the Meta Object Facility (MOF) and Common Warehouse Model (CWM) in UML.
- The Domain Model is transformed automatically into an OptimalJ Application Model, which maps to the MDA Platform Specific Model (PSM). The Application Model defines the application, based on a chosen technology, which, in the case of OptimalJ, is J2EE. The Application Model describes what needs to be generated to implement the application by providing a logical overview of the components contained within each tier that makes up the application.
- Finally, the Application Model is transformed automatically into an OptimalJ Code Model, which maps to the MDA Implementation Model. The Code Model defines the generated application code. In the case of OptimalJ, once the web, EJB and DBMS tiers have been defined, the code implementations of defined components can be generated (i.e., the Java classes, SQL scripts and other technical items that are needed for the components in the models).
OptimalJ's modeling is based on four key OMG standards:
- UML -- The industry-standard language for specifying, visualizing, constructing and documenting the artifacts of software systems. It simplifies the complex process of software design, making a "blueprint" for construction. For database professionals, UML can be used for database design, which allows the business and application teams who are already using the UML for their designs to share a common language and to communicate with the database team.
- Meta-Object Facility (MOF) -- A CORBA Common Facility for the management of meta-information. The MOF is intended for use in a wide variety of scenarios -- from type management to software development, information management and data warehousing. The MOF can be used as a meta-information repository within CORBA distributed systems. In short, MOF defines the management of meta-information in a distributed environment. Australia's Distributed Systems Technology Centre also provides a very worthwhile MOF resource.
- Common Warehouse Metamodel (CWM) -- A spec that describes metadata interchange among data warehousing, business intelligence, knowledge management and portal technologies. CWM extends to APIs, interchange formats and services that support the entire lifecycle of metadata management including extraction, transformation, transportation, loading, integration and analysis. CWM, designed to work with object, relational, record-based, multidimensional and XML-based data stores, will support data mining, transformation, OLAP and information visualization.
- XML Metadata Interchange (XMI) -- A mapping that expresses UML models in XML and allows them to be moved around the enterprise as you progress from analysis-to-model-application. The proposed spec is designed to give developers working with object technology the ability to exchange programming data over the Internet in a standardized way, thus bringing consistency and compatibility to applications created in collaborative environments.