To complement the UML models and be able to precisely specify complex business rules, we need to add some type of logic-based language. In the software modeling world, this language is typically the Object Constraint Language (OCL). OCL is a general-purpose (textual) formal language adopted as a standard by the OMG and used to define several kinds of expressions that complement the information of (UML) models. More details on OCL can be found here.

And while there are over a hundred institutions we know that teach UML and software modeling concepts, our “feeling” is that few of them cover OCL, despite its importance (again, “in our humble opinion”). Another “feeling” is that one of the reasons is the lack of OCL tools that are easy to use in class to let students “play” with OCL while providing useful feedback. Both at the parsing level, to help students write syntactically correct OCL expressions, and at the execution level, to help students understand the semantics. Unfortunately, the list of OCL tools is decreasing, something we are trying to counter with our Python-based OCL parser and interpreter.

Therefore, we would like to understand whether this is actually the case (i.e., there are indeed few courses where OCL is covered and that lack of proper tooling is part of the problem). In particular, we would like to know:

  • For those that do teach OCL, what parts of OCL are covered and what OCL tools do you use in the course.
  • For those that do NOT teach OCL, why is that. Do you teach some other logic-based language to express the business rules? Just natural language? And what are the reasons behind your decision? Is the lack of teaching material? The lack of tool support?

Share your insights

If you teach UML (Unified Modeling Language), software modeling or model-driven engineering, software design or any other related topic, we would like to invite you to answer this very short survey around the questions above: https://forms.gle/6f4oEn892fsbVSRu7

We are looking forward to your useful insights! And of course, we’ll share the results in this same blog.

Want to build better software faster?

Want to build better software faster?

Get the latest news in software modeling, model-based and low-code development

Thanks for your interest. Check your inbox and confirm your subscription!

Pin It on Pinterest

Share This