XmlObject - Adaptive Object Model

Better Designs Faster

Object Modeling 101

So, what is an object model? It is easy to confuse object models with class diagrams. For new developers and those that are not software engineers by training, the confusion is understandable. Even for the rest of us, the line between object model and class diagram is often blurry. This line becomes especially fuzzy as we move to discuss Adaptive Object Models.

To explain Adaptive Object Models I have found it is sometimes better to first discuss static object models following with a discussion of dynamic object models.

 Static Object Models

 Dynamic Object Models

 Adaptive Object Models

Hopefully the above discussions explain the general concept of an object model and lay the ground work for additional discussion.

I want to caution that Adaptive Object Model architectural patterns are not a silver bullet. It will take time and effort to learn the concept and still more time before one can claim mastery. You will pay up front costs that more traditional models can avoid and it will be harder for your junior team members to grasp concepts. However, I have discovered that the benefits far outweigh the costs. If you struggle with requirements, or have an application that is undergoing continual revision, if you struggle to test everything with each new version, then you might consider architecting towards an Adaptive Object Model.

The following quote is from a blog written by a gentleman named Kurt Cagle. Kurt is an author and industry expert on many things XML related. I excerpted the quote from an article Kurt wrote to forecast the direction of XML.

XML Binding languages will be the next arena of development (and contention) - the ability to assign a behavior to an XML tag is profoundly useful, and provides both the bones of the declarative structures and the muscles of the imperative one, while keeping the presentation layer safely off to one side. Its not yet significantly utilized because browser support at this stage is still inconsistent - I expect that with the movement of XBL2 into the W3C this will likely change, though this change is unlikely to make its way into Internet Explorer without a fight. Time frame for this is about eighteen to twenty four months - far enough ahead that you wont yet get a job writing bindings (though this is, in fact, exactly what all those AJAX developers are currently doing, even if they dont necessarily recognize that fact) but close enough that if you are looking to make your mark in software world this is the place to be studying very, very carefully.

Kurt doesn't know it but he gets much of the credit for my work. Most of what I know about the differences between imperative and declarative programming came from his writings.

XmlObject Guy