Application Development Trends - February 4, 2004

Developing software is, in large part, a matter of properly handling a dizzying tower of abstractions. Ultimately, your code is just controlling whether electrons are flowing through particular transistors or not, but by the time you go from transistors to ICs to microcode to machine language to assembly language to higher-level languages to modeling, that plain fact sort of disappears. What MetaEdit+ brings to the party is yet another layer of abstraction. But it's in a good cause: their argument is that you can get code faster if you use their tool properly.

MetaEdit+ is a "metaCASE" tool. You're no-doubt familiar with traditional CASE tools such as UML tools, which apply a level of abstraction above your actual code, so that you can model the problem and have it spit out code. With MetaEdit's Workbench, you start by designing your own domain-specific modeling (DSM) language. So, if you're working on software to drive test equipment, for example, you'd first build a DSM language containing objects, roles, relations, and so on that apply to your problem domain of test equipment. Instead of the generic objects that UML supplies, you'd end up with Frequency Counters and Display Units and rules about how they can be connected.

When you've finished designing your own modeling language, your focus can shift to MetaEdit+, where you (or other designers on your team) build domain-specific models. MetaEdit+ gives you a drag-and-drop environment for hooking together objects and roles according to the relationships that you defined when building the language. The final piece of the puzzle is a very flexible reporting language. "Reporting" is somewhat of a misnomer here; although you can export a diagram to HTML or Word or XML, or create a list of all the objects in a diagram along with their properties, the reporting language is much more capable than that. In fact, you can use a MetaEdit+ report as a code-generator.

Version 4.0 polishes the user interface and adds a SOAP API to allow integrating MetaEdit+ models with other running applications. The whole system is pretty easy to use, and the tutorial is well-written.

Reviewed by Mike Gunderloy, Editor ADT Developer Central. Application Development Trends Magazine, February 4, 2004 - Vol. 3 #12.