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.

Westboro
Ottawa, ON
Canada

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.

IMG_1359.JPG

Blog

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

Connect and Share Your UMLs

Christian W. Damus

The Eclipse CDO and UML2 projects have both published their M5 milestones on the road to the Kepler release. In this milestone, UML models can now be shared in CDO repositories!

A lot of fixes and enhancements have gone into this milestone of both the CDO and UML2 projects to make UML models fully functional in CDO repositories. In several ways, some small and some big, UML is a peculiar EMF model. It implements some specialized structural semantics (e.g. subsetting) and awkward overrides (e.g. redefining a mutable reference as derived). It is an unique EMF model. So, quite natural that it should have required work in both CDO (to make allowances for UML) and UML2 (to conform to EMF/CDO norms) to get the two playing together nicely.

More details after the break.

All of the following peculiarities of UML modeling should work as expected in the CDO context:

  • subset/superset properties
  • static profiles
  • dynamic profiles, both
    • registered on the UML profiles extension point (and in EMF's dynamic package registry, of course)
    • stored in the CDO repository
    • activities and enumeration literals (both cases of feature redefinition or other semantics not supported by Ecore)

Although dynamic profiles work, there are consequences to be considered. Most importantly, because the CDO server maintains a package registry in a separate area of the data store, and every package in that registry is immutable and cannot be deleted, it is more difficult to clean up profile definition versions in CDO than in file storage. Effectively, any profile definition that is actually used (to create stereotype instances) is stored twice, and one copy is etched in stone.

The support for UML persistence leverages CDO's "legacy mode", which bolts on the CDO magic that otherwise is baked into a model by generating it specifically for CDO.  This avoids having to juggle two different UML implementations, sacrificing only some advanced data scalability features.  Thanks to Martin Flügge for his pioneering work on the legacy mode and Dawn, which provides an integration of CDO in GMF-generated diagram editors.

This milestone serves as a foundation for integration of CDO into Papyrus, for sharing of Papyrus models in CDO repositories, in the Kepler release. To follow the progress of that work, add yourself to the CC list of this bug and/or its dependencies.

In theory, all of this should work as well for persisting instances of UML-based models as well as for the UML metamodel, itself (although this has not yet been verified).  UML2 extends EMF's code generator to support such constructs as feature subsetting and redefinition and, if you happen to be using UML to build you own modeling language, even profiles.  If you use UML instead of Ecore to define your models, now they sold be compatible with CDO using the "legacy mode" (the UML2 run-time's support for subsetting doesn't work with "CDO native" models).

So, grab the Kepler M5 Modeling Package and start sharing your UML models! Please report problems in the usual way, in Eclipse Bugzilla and the forum. I suggest posting questions first in the forum so that we may determine whether the issue needs to be addressed to the CDO or the UML2 project.

  

Connected Again

Christian W. Damus

After a few years away, I am (finally) re-connecting with a community that I had been following still but not really participating in.  As of today, I am once again an Eclipse committer.

I have been honoured with election to the EMF CDO (Connected Data Objects) project committer team and Eclipse Foundation's provisioning of my account is complete.  Thanks to Eike and the whole team for inviting me into the fold!

CDO is a very exciting technology for real-time sharing of EMF-based models on a large scale.  The team has done an amazing amount of high-quality work over the last several years, and the community of users is large and very active.  Development continues apace adding great new features every year.

I have contributed some enhancements to CDO to make UML models shareable using CDO's "legacy mode" in next year's 4.2 release (in the Kepler line-up).  In part, these require some tweaks in the Eclipse UML2 implementation that are currently in the pipeline, but the end result should be that by the end of this calendar year, UML in all its glory, including dynamic profile definitions and stereotype applications, can be shared in CDO repositories.  I hope to follow this up with continual enhancements and bug fixes in the legacy mode, as well as working on the Dawn component to support GMF-based UML diagram editors.

I look forward to working with the CDO team and its great user community!

  

The Doctor Is In

Christian W. Damus

Say "Hello" to MDHT 1.1

The Model-Driven Health Tools project at openhealthtools.org has announced its much-anticipated 1.1 release.  I'm very glad to have been able to contribute in various small ways to this release.  I'm thrilled with all the very good work that the whole team has put into this; it's a significant step up in usability and function.

This release provides an implementation of the Consolidated CDA model (C-CDA) which, together with richer modeling constructs, makes it easier to define constraints on CDA-based XML documents using:

  • improved coordination of property validation and terminology constraints with automatic conformance rule text
  • nested inner classes for constraints on nested elements.  Inner classes are not templates but specialize template definitions to add constraints in the containing context. Less OCL to write!
  • improved drag-and-drop and copy/paste workflows in the editor
  • bug fixes and and more!

I've even heard a rumour that MDHT has been coerced to generating Implementation Guides in ePub format for reading in iBooks on your iPad!

If you are an IT practitioner or software developer in the health industry, or even if you're just interested in constraint-based modeling and tool development using UML and other Eclipse Modeling technologies such as EMF and OCL, I definitely recommend checking out the New and Noteworthy page and other documentation for this release.  And, of course, download the all-in-one workbench release and take it for a spin!

Congratulations to the whole MDHT team for a high-quality release!