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.

Fun with OCL in Papyrus Mars


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

Fun with OCL in Papyrus Mars

Christian W. Damus

Last week I presented an "Introduction to OCL" lunch-and-learn talk to a private client. We had some technical troubles with the remote screen-sharing system, so the live demo portion of the presentation didn't exactly turn out as we had hoped. Consequently, to finish the job and to ensure that my work of preparing demo materials wouldn't go to waste, I decided to record screencasts instead and share them with everybody.

These screencasts are up to my usual production standard (which is to say unevenly paced and hardly edited) because I never really have time to spend on these things. But, I hope they may serve as a useful introduction to the value of OCL in the Eclipse modeling universe, as well as OCL-related transformation languages that I included in my OCL introduction talk.

OCL Constraints in Papyrus UML Models

First up is the straight-forward application of OCL in the definition of structural and behavioral constraints in UML models.

This video presents the basics of defining OCL constraints for UML models, both with OCL documents complementing a model and also with OCL constraints placed in the model using the UML elements for constraints and opaque expressions.

OCL Constraints in Papyrus UML Profiles

Another video focusing on OCL constraints in UML, this time in the context of UML profiles (up a "meta-level", if you like). Once again including both OCL documents and embedded constraints, but adding the model validation workflow in both environments.

Transforming UML Models to Text using Acceleo

My OCL introduction talk discussed the relationship of the OCL specification to the OMG's model transformation languages. The next demonstration illustrates the usage of OCL in Eclipse's Acceleo language with a simple example of summarizing the OCL invariant constraints of a UML class model in an XML document.

Transforming UML Models to Models using QVTo

The last demonstration is an unfortunately long and rambling example of model-to-model transformation with the QVT Operational Mappings language. The contrived scenario is transformation of a UML class model to a relational database model described by a simplistic metamodel (defined in UML) with a little standard library.

So, hopefully this tour through OCL-related standards-based Eclipse modeling technologies may help anybody that is new to OCL and wondering what it is good for to get an appreciation of its value. And, as a side benefit, it shows off the current state of integration of these technologies in the Mars release of Eclipse Papyrus.