One more comment about OCL: it has been used with mixed results as a query
language for class declaration repositories, e.g. to select existing
declaration and implementations that "match" a given template.
As a language for describing algorithms from scratch well... it has its
drawbacks.
rgds
ernesto
( BTW, should anyone be interested we have a paper commenting on OCL usage:
C. Bellettini, E.Damiani, M.G. Fugini, Querying UML/XMI design information,
Proc. of FQAS 2000, Warsaw (Poland), Advances in Soft Computing)