Reviews

Review: MetaEdit+

MetaEdit+ 4.0
starting at EUR5500
MetaCase
Jyvaskyla, Finland
+358 14 4451 400
www.metacase.com

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, 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 Method 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 that that. In fact, you can use a MetaEdit+ report as a code-generator; they've got a nifty example that builds java code to animate pictures of digital watches after you use a DSM to create their specifications.

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 (though it doesn't quite match the new user interface in a few spots). If you'd like to explore further and see how it all fits together, you can download a trial version from the MetaCase Web site.

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.