contact ME

Use this form to reach out to me.

Ask me about the software development consulting and vocal services that I can provide for your project.

Name *

Ottawa, ON

I am an independent software development consultant, specializing in model-driven development with Eclipse technology, which has been a passion for the last ten years.  I am widely recognized for my high-quality output, timely delivery, and friendly and engaging manner.

I also happen to be a capable singer, performing sacred and secular works for choir and tenor solo from the renaissance to today.  If you are presenting vocal music in Ottawa, eastern Ontario, or west Québec, I can be your tenor.

Mixed-Mode Compare/Merge, Part I


An ad hoc record of Christian W. Damus's professional and personal activity.

Mixed-Mode Compare/Merge, Part I

Christian W. Damus

As not all models that EMF Compare operates on will be described in terms of a façade, it is equally to be expected that some models will only partially comprise domain-specific content that can be described by a façade. So, models will often present a mix of content in various languages, some of which have façades and some which don't: imagine a UML design model that mixes "pure UML" content that describes the structure and behaviour of a system in very abstract terms, linked to refinements of various components in their own DSLs.

The video above demonstrates the first step towards support for mixed-mode comparison and merge, in which a model merge is performed in UML terms for abstract design content and a domain-specific façade for more lower-level design content pertaining to a particular technology. As before, check out the prototype on GitHub.


Updated 10.25, 27 July 2017

In the first demonstration video, a problem cropped up in which pseudo-conflicts were detected on erroneous matching of new elements added on the left and the right sides. The consequence was that a correct and complete merge would not be possible. The brief update video, above, shows how this problem can be resolved in the façade model simply by providing unique identifiers for every object to help the matching process.