The number of modeling tools supporting OCL is growing but still small. Of course, in all CASE tools UML models can be annotated with textual OCL expressions but this does not mean that the tool actually understands the expression. Usually, the expression is treated as any other kind of annotation written by the designer. At the very least, a tool should be able to parse the OCL expression and be capable of evaluate it over a sample object diagram.
In the 2008 edition of the OCL workshop, we organized a tool showcase where a number of (prototype) OCL tools were presented. For a more deep survey of OCL tools (really old, as such, not useful for the list of tools per se but I still think it’s an interesting read to learn more about what I think OCL tools should provide) you can check: Jordi Cabot, Ernest Teniente: Constraint Support in MDA Tools: A Survey. ECMDA-FA 2006: 256-267 ( free pdf). In this blog, we have also presented Oclarity, a productive authoring environment for the writing of OCL expressions, SimpleOCL an OCL component designed to be embedded in other MDE tools in this same blog and iOCL an interactive OCL environment. There were also a couple of tools specialized in OCL to SQL generation.
Nevertheless, the two best free OCL options nowadays are clearly the OCL Eclipse plug-in (OCLInEcore) and the USE tool. The former is great to integrate OCL support in your MDE tool chain. The latter to “play” with OCL, exploring the result of OCL expressions in sample object diagrams. Moreover, USE comes with a language (ASSL) to automatically create model instances that you could use for validation purposes. A screenshot of the OCLInEcore tool is shown next and one with a UML/OCL model in USE immediately after.
On the commercial side, MagicDraw also understands OCL and allows you to write (only boolean) OCL queries to test them.
While looking for an OCL tool, you may want to improve your Object Constraint Language knowledge by checking out our OCL tutorial. And when more vendors decide to join this club, we even have already thought on a benchmark for evaluating OCL tools.