Volume 8, Number 1

New Automation Solution Offers Significant Advantage in Development of Enterprise Applications

Model Driven Architecture increases efficiency, preserves investment, and accommodates changing technology.

By David Zygmont


Overview:
Much of the software industry’s effort at innovation is directed at simplifying application development. Completing applications quickly provides competitive advantage. Yet many simplification “breakthroughs” such as CORBA have appeared initially promising, only to be quickly replaced by the next innovation. It seems no single implementation technology can realistically ever prevail and hold constant. Market forces will always create a competitive environment of ever-changing technology on which enterprise applications will be built.

This has been especially true of attempts to automate the software development process. And most IT managers are skeptical of any new software automation technology. However, Object Management Group (OMG)’s Model Driven Architecture MDA has shown early success in safeguarding against shortcomings of previous automation technologies. Less than two years old, MDA successfully increases the efficiency of and preserves investments in enterprise application development. Using a novel approach, MDA separates the development of business logic from the underlying architecture. Companies that adopt MDA gain the ultimate in flexibility—the ability to derive code from a stable model as the underlying infrastructure shifts over time.

MDA not only liberates businesses from becoming hostages to technology, but also allows them to leverage significant technological and bottom line benefits:
  • Reduced application development costs
  • Shortened development cycles
  • Easier application migration to new technologies
  • Economical support for multiple platforms
  • Better adherence to development standards

Much of the software industry’s efforts at innovation are directed at simplifying application development. And for good reason: Completing applications quickly, and at reduced cost, is the fuel of software technology innovation. Yet many simplification “breakthroughs” have appeared initially promising, only to be quickly replaced by the next innovation. This has been especially true of attempts to automate the software development process, and most IT managers are highly skeptical of any new software automation technology.

Still, the need to simplify application development is critical, and the delivery of truly beneficial solutions is the primary purpose for the Object Management Group (OMG), the open, vendor-neutral standards body dedicated to enabling enterprise-wide interoperability. OMG’s contributions are already substantial, including Common Object Request Broker Architecture (CORBA). OMG’s latest specification is Model Driven Architecture (MDA), an automation solution that starts with a model of an application, then employs MDA tools to convert that model into an application implementation.

This approach dramatically simplifies enterprise application development while avoiding the pitfalls of previous software automation technologies. Less than two years old, MDA has shown early success and promises to be the keystone to future innovation in enterprise application development. It deserves sincere scrutiny from the most ardent skeptic, as early adopters will gain significant competitive advantage.

Starting with a historical perspective, this white paper discusses MDA’s key concepts, near- and long-term benefits, and safeguards against shortcomings of previous automation technologies. It then addresses common misconceptions concerning MDA, and identifies key steps a development organization must take to successfully adopt MDA.


Middleware: Not What We All Hoped
The late 1980s and early ’90s saw the introduction of a variety of middleware technologies, all designed to simplify the writing of distributed applications. The general purpose of middleware was to isolate applications from such details as where data was located and how it was stored, with the goal of improving application stability. In theory, middleware would isolate applications from changing technology platforms, enabling investments in applications to provide returns over a longer period of years, without significant reinvestment.

Intrigued by this promising vision, OMG, working as a vendor-neutral standards body, developed CORBA, which defined interfaces to be used industry-wide in all middleware products. CORBA enhanced the promise of middleware by adding interoperability, enabling CORBA-compliant applications to operate on any vendor's CORBA-compliant middleware.

Although CORBA was a technical success and was adopted by many middleware vendors, it could not address the demands that subsequent technologies placed on application development. In the decade since CORBA was introduced, new languages, operating systems, application architectures, and the Internet have created a situation where numerous vendors compete fiercely for shares of the application development market. Microsoft, IBM, Oracle, BEA, Sun, and an enormous array of smaller companies offer excellent middleware products, that in many cases, have had to forego CORBA adherence to meet specific application requirements.

The situation has changed so dramatically that Dr. Richard Soley, OMG Chairman and CEO, said recently, “The middleware environments that are most visible today are CORBA, Enterprise JavaBeans, message-oriented middleware, XML/SOAP, COM+, and .Net. However, over the past decade or so, the middleware landscape has continually shifted. For years we’ve assumed that a clear winner will emerge and stabilize this state of flux, but it’s time to admit what we’ve all suspected: The sequence has no end!”

OMG recognized that market forces will always create a competitive environment of ever-changing technology on which enterprise applications will be built. Despite the success that CORBA did in fact realize, no single implementation technology can realistically ever prevail and hold constant.


Enter MDA
Model Driven Architecture (MDA) is OMG’s response to this market realization. MDA specifies vendor-neutral technology to preserve investments in distributed, enterprise application development in the reality of ever changing software infrastructure. According to OMG’s Soley: “Companies that adopt MDA gain the ultimate in flexibility: the ability to derive code from a stable model as the underlying infrastructure shifts over time.”


What is MDA?
Conceptually, MDA is simple. Application development starts by using the Unified Modeling Language (UML) to construct a Platform Independent Model (PIM) of the application. As shown in Figure 1, the PIM is transformed into an implementation of the application by an MDA tool.


Figure 1
Translating an application’s PIM into an implementation.

Advanced MDA tools expose the PIM-to-implementation technology, often called metaprogramming, so tool users can control the translation process.

The components of an MDA tool are described in Table 1.


Table 1
MDA tool components.


Benefits of MDA
MDA separates software development into two distinct areas: modeling or constructing a PIM and metaprogramming or codifying architecture. An application’s PIM expresses the business logic without regard to technology. This preserves the investment made in the analysis and design of the application, which can be enhanced for continual improvement.

Metaprogramming captures the details of how any application should be implemented on a particular architecture1. Today, metaprograms that generate more than 90 percent of an application are readily available; the remaining 10 percent or less is completed with traditional development techniques.

The separation of business logic (PIM) and architecture (metaprograms) means that software “future proofing” is no longer thwarted by subsequent technologies. Rather than throwing money at embedding business logic in the latest technology (COBOL, C/Unix, C++, VB, client-server, Web, DNA, .Net, Java, J2EE, Web services, etc.), businesses adhering to MDA invest in the PIM.

The PIM captures the essence of the business without reference to implementation technology. It then serves as a communications mechanism across the business and retains the intellectual property investment of the business, regardless of any change in implementation technology. In this way, MDA liberates the business from being hostage to technology while simultaneously leveraging technological benefits.

In addition to improving communications and accommodating technological change, MDA’s separation of business logic from architecture and its generation of most of an application from its PIM help developers to accomplish five important goals:
  • Reduce application development costs
  • Shorten development cycles
  • Easily migrate applications to new technologies
  • Economically support multiple platforms
  • More closely adhere to development standards

Reduced Application Development Costs
In traditional application development, most of the code exists solely to make the business logic run on a specific architecture. The larger the application, the more architecture code there is and all of it is written by hand.

MDA reduces application development costs by isolating the architecture in metaprograms and having the metaprograms translate the PIM into an implementation. This fixes the cost of architecture independently of the size or number of applications being developed. The bigger the application or the more applications there are, the greater the savings.


Shorter Development Cycles
By translating the PIM into 90 percent or more of the implemented application, MDA tools shorten development cycles. Business analysts and developers can focus on constructing the PIM with the confidence that what is designed (modeled) will be built as designed (generated by metaprograms).

This shortens not only the actual coding time, but the overall development cycle as well. The increased quality that results from MDA’s automation shortens the quality assurance phase of the development cycle. And by generating user and system documentation from the PIM, metaprograms shorten the documentation phase.


Easy Application Migration to New Technologies
The incessant advance of technology means that, at any point in time, architectures that are just a few years old become unviable. Vendors frequently discontinue support of older technology, and personnel with the skills to maintain and enhance older technology are difficult to find. This has become increasingly problematic due to the ongoing trend of decreasing product life cycles.

Figure 2 shows how MDA keeps an application running on the latest technology.


Figure 2
Using MDA to keep pace with technology.

Metaprograms isolate applications from the technology on which they run and generate all of the architecture code, which is the vast majority of any application’s code. Since metaprograms are proportional to the architecture and are independent of any application, MDA makes the cost of application migration independent of the size or number of applications being migrated. A small metaprogramming team of developers and architects can keep pace with technology change.


Economic Support of Multiple Platforms
The ability to economically support an application on multiple platforms is highly interesting to application software vendors who sell to large IT shops focused on keeping applications running on the “correct” architecture.

That’s because each customer, not the application vendor, decides what the correct architecture is. If the application runs on .Net and the customer wants J2EE, it is impossible to close the business without providing a native J2EE implementation of the application. With traditional development techniques this requires an effort at least equal to, if not greater than, the original development effort.

As shown in Figure 3, MDA allows the economic support of an application on multiple platforms. The application is expressed in a single PIM, which is translated by different metaprograms, one set of metaprograms for each platform to be supported. The customer’s need for operation on any given architecture is no longer an issue.


Figure 3
MDA and Multiplatform Support.


Increased Adherence to Development Standards
MDA automatically generates the majority of an application’s code, and advanced MDA tools enable customized output in accordance with local standards.
Metaprograms interpret the PIM and generate the code, thereby enforcing development standards in the
following areas:
  • Modeling
  • Architecture
  • Coding
  • User interface
  • Database structure
  • Enterprise application integration
  • Documentation
  • Production control

MDA is not CASE
MDA may sound similar to Computer Assisted Software Engineering (CASE) of the late 1980s and early 1990s. Do not be confused. The goal of CASE was fundamentally different from the goal of MDA; CASE was focused on improving programmer productivity, with little regard to preserving application investment. Advanced MDA tools address the three major weaknesses of CASE.

CASE Weakness 1: Proprietary Design Technology
CASE tools required application design with a proprietary design language. With MDA, an application is expressed in a PIM (Platform Independent Model). The PIM is constructed using UML (Unified Modeling Language), which is a worldwide standard.

CASE Weakness 2: Vendor Reliance
CASE tools did not allow the user to control how code was generated. Consequently, users with unique application architectures could be accommodated only if the tool vendor modified the generation technology to accommodate them. With metaprogramming, advanced MDA tools allow the user to control code generation and provide an environment to customize the tool to exact user needs. An organization develops PIM techniques for its application domain and metaprograms for its application architectures and IT infrastructure.

CASE Weakness 3: Lack of Life Cycle
CASE tools excelled at designing and generating applications. But when an application had to change in ways not supported by the CASE tool, developers had to modify the generated code by hand. CASE tools were not designed to allow post-generation modification, and every time the application was generated, all hand-coded modifications had to be reapplied.

Recognizing that the typical application will require hand-coded modifications, MDA tools preserve those modifications and carry them forward across generation cycles.


When Will MDA Take Off?
MDA will gain wide acceptance and broad usage when the development community comes to understand and accept its very real advantages. A recent article in Software Development Times regarding UML and MDA points to the barrier to this acceptance2.

This article reported the findings of a survey about using UML and MDA, in which a large number of respondents:
  • Do not see any benefit to using UML
  • Believe UML is too complex to learn and use
  • Do not believe generated code is production ready
This is all a matter of understanding and of getting past the skepticism that naturally accompanies the introduction of any breakthrough technology.


The Benefits of UML
Traditional usage of UML has been limited. For example, many development efforts use UML in an undisciplined fashion, creating fragments for early discussion in a development effort. Once the “real” development starts, modeling ceases.

Many organizations also use reverse-engineering tools to construct UML models that document the implementation of applications. This clutters the implementation model with the details of the architecture; business logic gets lost in a maze of technical detail that is of very limited value.

MDA differs from these scenarios in its use of UML models in that UML is used to construct the application’s PIM. Unlike UML fragments or post-implementation models, PIMs express the majority of an application’s business logic. Compared to implementing an application, creating the PIM is fast and inexpensive. With MDA, the PIM is converted into 90 percent of the application’s implementation with the push of a button.

Recall the benefits of using UML with MDA:
  • Reduce application development costs
  • Shorten development cycles
  • Migrate application easily to new technologies
  • Economically support multiple platforms
  • Adhere more closely to development standards

Learning UML
UML is a fairly compact graphical notation for expressing object-oriented systems. Most developers work every day with the same concepts UML expresses, and can quickly pick up UML.

The UML learning curve consists of understanding the correct elements to use when designing an application. Fundamentally, it is a cost-benefit decision. It is important to use the parts of UML that can pay off in the development process, versus spending time using parts of UML that have little impact on the development process other than wasting valuable resources.

With MDA, UML usage is dictated by the PIM techniques of an MDA tool. The elements used to construct the PIM are well-defined, and it is understood which UML not to use. There are MDA tools whose PIM techniques use only two of the 12 UML diagrams to produce more than 90 percent of an application.


Production Quality Code
Perhaps the best evidence of the production-readiness of MDA-generated code is in actual deployment. Applications developed with MDA are in production today at major financial institutions and embedded in military aircraft. Major banks and the U.S. Department of Defense, possibly the two toughest technology customers on earth, have successfully deployed applications developed with MDA technology.


Getting Started
MDA introduces new concepts and technology to a development organization. Although conceptually straightforward, constructing a PIM using UML and generating an application from the PIM has tremendous impact on the development process.

As with most new technologies, there is risk in spending inordinate amounts of time evaluating products, prototyping techniques, and defining processes. The familiar “analysis paralysis” can deplete a significant budget without showing meaningful results.

Successful MDA adoption starts with identifying:
  • A pilot project
  • Two to four internal resources
  • An MDA tool
  • MDA development expertise
The organization must:
    1. Develop PIM standards so that all applications are modeled consistently
    2. Select an MDA tool that permits flexibility in PIM techniques
    3. Standardize application architectures
    4. Select an MDA tool that can be customized to generate code to the architecture standards established by the organization
    5. Define new roles and responsibilities in the development process
    6. Modify the development process to accommodate these roles and responsibilities and to account for PIM translation to the implementation
    7. Train the development organization on PIM techniques, architectures, and processes
    8. Deploy to the development organization

Early Adopters Gain Significant Advantage
MDA successfully increases the efficiency of and preserves investments in enterprise application development by accommodating constantly changing technology. MDA overcomes deficiencies found in earlier technologies and delivers on their original promises. It also introduces new technology requiring new skills that impact the development process, which breeds confusion and skepticism among potential adopters. But the growing number of forward-thinking organizations who get past these barriers are realizing the many advantages of MDA today.


1 Architecture means the hardware, operating systems, programming languages, data storage technology, network protocols, and other technical infrastructure used to implement an application. Additionally, it means the separation of functions within an application across programming interfaces and computer system boundaries.

2 Zeichick, Alan, “Modeling Usage Low: Developers Confused About UML 2.0, MDA,” Software Development Times, July 15, 2002, Issue No. 058


About the Author
As Chief Executive Officer and co-founder of Metanology Corporation, David Zygmont directs the strategic plans for the company’s products and services. He has more than 20 years experience in the software products industry. Previously, David was Vice President of Product Development for S1 Corporation where he built that company’s first product offering and launched Security First Network Bank, the world’s first Internet bank. He led the growth of S1 from its origin to a staff of more than 150 software professionals in three years. David holds a BS in Mathematics from Villanova University and an MSE in Computer and Information Sciences from the University of Pennsylvania. David can be reached at 770.475.1301 or via e-mail at dzygmont@metanology.com.
Do you have concerns about workplace or technology issues? The MATRIX Essentials White Paper series includes more than 20 relevant topics to help you better manage your business—from comprehensive staffing strategies, to the latest market trends in VMS and Managed Services, and key factors affecting IT project success. View our entire list of White Papers for the topics that interest you.

ATLANTA
770-677-2400

CHARLOTTE
704-426-1100

HOUSTON
713-622-8383

PHOENIX
602-522-3300

BIRMINGHAM
205-314-5200
DALLAS
972-778-1800
NEW JERSEY
908-719-8960
RESEARCH TRIANGLE PARK
919-653-1500