+2  A: 

Finally got something good!

This is very informative document (PDF) from Object Management Group (OMG):

Object Constraint Language Specification

I love answering my own questions :)

Artur
+2  A: 

For beginners I would recommend this book:The Object Constraint Language: Getting Your Models Ready for MDA by Jos Warmer and Anneke Kleppe (Jos was one of the main creators of the OCL)

I also like a lot the official specification you already found (specially the chapter offering an informal description of the language).

Feel free to ask about the expressions you do not understand as well.

Jordi Cabot
I edited the question and added constraints I'm unsure of.
Artur
+1  A: 

A quick solution on the constraints:

context Department inv: self.staff -> forAll(s1,s2| s1.manager = s2.manager)

context Company inv: self.employee->forAll(e| e.manager<>e)

context Company inv: self.employee->forAll(e| e.salary<=e.manager.salary)

Btw, I don't really see the need for the Company class (how many objects of type company do you have in the system?). If constraints two and three are true for all companies then they could be expressed using Person as context in this way (e.g. with number 2): context Person inv: self.manager<>self)

We can also add checks to see if the employee has a manager before doing the comparison

Jordi Cabot
It's not actual system. It's one of the revision questions for the exam :) I was wandering myself why there is Company class...Many thanks for your help.
Artur
+1  A: 

The link to PDF file posted by @Artur has changed, Here is new link http://www.omg.org/spec/OCL/2.0/PDF/

Thank you for letting me know. I have updated the link in my post. +1 for you ;)
Artur