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.

Check Your Models

Christian W. Damus

The Eclipse UML2 project has a new feature in the Juno M6 milestone that should help a certain category of applications to keep their UML models in good health.  These are UML-based modelling tools that use the EMF Validation Framework for model validation, often because they provide diagram editors based on GMF.  The Papyrus project is a good example of such application, and it happens to integrate this new feature.

The UML2 project implements the UML metamodel version 2.4.  I have always said that a model is not complete without the constraints that determine what is a well-formed instance.  Well, now we can have our diagrams and our constraints, too!

The org.eclipse.uml2.uml plug-in now provides a DelegatingConstraintProvider class that adapts the constraints implemented by the UML metamodel's generated EValidator to the framework used by GMF editors.  An application like Papyrus registers this provider on the org.eclipse.emf.validation.constraintProviders extension point and binds it to its client context.  This works not only with the UML metamodel, itself, but any model described in UML and generated by the UML2 project's specialized EMF code generator.

The screenshot above shows the invocation of model validation on a Papyrus UML class diagram with some invalid structures:  a class specializing a component (incompatible metaclasses for generalization) and, more difficult to see, a redefinition relationship between associations ends in classes that aren't related by generalization.

And here we see the results of model validation reported in problems view and, where possible, in the diagram editor, thanks to the information provided by the validation framework about the objects that contribute to the problems.

There are a few customization options available to adopters of this constraint provider, including:

  • defining a category to group the constraints in the Model Validation preference page
  • substituting the default registered EValidator with some other implementation
  • providing a custom label provider for the presentation of model elements in problem messages

It's a small feature but a significant piece of a complete modelling story.  For more details, see bug 373643 in the Eclipse Bugzilla database.  

  

Back in the Saddle

Christian W. Damus

Well, here it's been how many years since my last post?

Yes, that's right.  Just about as many as I've been out of the spotlight that is Eclipse.

But, now I'm self-employed and I'm back to (ir)regularly contributing to open-source projects. I'm open for business!

© Chip Griffin licensed under Creative Commons CC BY 2.0

It has been a great three-year run at QNX Software Systems, where I've enjoyed building everything from developer tools for one of the world's coolest embedded software platforms to application security and display power management components of the BlackBerry PlayBook, one of the world's coolest mobile device software platforms.

Now I'm pursuing a new and exciting career path as an independent consultant, focusing on development of open-source projects, especially in the Model-Driven Architecture that is such a big piece of my Eclipse experience.  Stay tuned for updates from some Eclipse MDT projects and more.

  

Nothing to Grouse About

Christian W. Damus

You'd think that when my mountain ash, which has been suffering at the hands (beaks?) of woodpeckers and bugs for the last ten years, is attacked by a marauding grouse, I would be upset.

Right?

Well, not when he looks so innocent:

Don't let this handsome fellow fool you, though.  He's on a mission, and it's serious.

It's a raid!

The last thing this tree needs is to have those juicy, tasty leaf buds taken in the middle of Winter:

When I confronted him about it, this grouse didn't have much to say.  He's excellent under pressure, well trained by whatever spy agency sent him into our country.  He just sat there, challenging me with his cold, hard stare until I had to back down.

Makes me appreciate how trivial my daily struggle with certain complex software systems really is, in the big picture.