The topic today is the Object Constraint Language, a part of UML. So far when we've looked at UML we've been looking at diagrams. But diagrams don't tell the whole story.
There are places in the specifications and the designs of your system where you need more details. And that is what OCL was designed to provide to designers. OCL is a language, it's not a programming language, it's a specification language.
It's declarative, it's strongly typed, and allows you to specify the functional details of system properties. OCL consists of a means to express constraints plus some collection classes. And an ability to navigate around the various classes of relationships in your diagrams.
OCL's a mature technology is part, an official part of UML and supported by various tools.