so OCL is supposed to extend UML when we as a designer/analyst cannot express something with a diagram, is has a full blown specification still, there is not (at least not that i know) any production-ready compiler supported by any major company (Oracle, MS, IBM, Apple, Google for example) that can translate OCL to any intermadiate/machine language, so why would anyone invest in learning such a thing?, why not invest that time in learning an actual programming language instead ? there are a few easy-to-learn fast-to-pick up languages out there (ruby, php, visual basic) and if its only function is to extend UML diagrams why not just write some pseudocode and get done with it?, do we really need to learn a full blown specificacion just for writing a special case of pseudocode ?


3 Answers 3


This is similar to the difference between civil engineers and architects face. Architects use CAD software for their projects. The better they know the CAD software, the better the design shall be implemented. Engineers analyse the drawings and make their own calculation - and even change some parts by discussion with the architects. Architects can learn the calculation or the view engineers have however that is not sufficient for proficiency.

Regarding the possibility of UML to application, the code generated will be basic and to most extend will be standard. My experience suggests that will not be sufficient in real world applications due to many requirements of user experience improvements.


In UML2 you can add constraint on any element directly in the model. I mean click on the element and then add constraint. This constraint information will immediately be saved in the model and in the xmi.

You can create your own parser which will detect any model change and generate code depending on the constraints. Having said that I think that OCL is not anymore so important as it used to be but who knows how it will evolve in the next few years.


Here I keep a list of OCL tools. Even if it's true that no major software company provides good OCL code generation support, you'll find some tools that can translate ocl to sql and ocl to java.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.