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.