Making the Case:
OMG's Model Driven Architecture
By Jon Siegel
October 15, 2002 —
(Page 4 of 6)
Here's how it works: Think of MDA as a spectrum with business at the top and technology at the bottom. Your business domain experts work at the top, of course, in modeling space. Here, UML-based tools provide support and the UML language's structure and narrower profiles (i.e., tailored subsets) provide guidance. The product of the first development step, termed the Platform-Independent Model, or PIM, represents the business functionality and behavior that this MDA application will execute, as undistorted by technological factors as possible.
As you move down toward the bottom, the business domain recedes and technology takes over. In a perfectly efficient world, the MDA might jump directly from the business model at the top to the implementation at the bottom, but today the discontinuities are too great, so the MDA inserts an intermediate step. (The artifact produced in this step is termed the Platform-Specific Model, or PSM.) Produced primarily by MDA-enabled tools following OMG-standardized mappings, the PSM provides a way station where your skilled architects can mark up the model with their preferences or hints about how they want particular steps to be designed, or execute.
The completed PSM contains the same information set as a coded application, but in the form of a UML model instead of program language and makefiles. Taking advantage of the tight mapping, today's MDA-enabled development tools automate the conversion from PSM to code very well. In fact, this step is more mature than the PIM-PSM conversion in the previous step.
This overall structure makes a lot of sense, especially compared with today's alternative development practice: Using the MDA, your input and investment concentrate in the business zone at the top, where decisions can make or break your company. Once you've specified the business functionality, you turn development over to automated tools (assisted by your skilled architects). Drawing from libraries of code assembled by the most skilled programmers available, these tools build scalable, secure, enterprise-quality applications. Cross-platform invocations, hard to program but hardly creative, are coded and maintained by machines, not people.