Whilst Object-Oriented technology becomes more and more popular, it suffers from a crucial gap between the methodologies and languages because most OO languages do not offer native support for high level abstractions and notations. An OMT Object Model, produced with OMTool.
Most CASE tools have good graphical editors to draw such diagrams.
Current OO methodologies are fuzzy about the way such abstractions should be implemented with most choices being left to the programmer. To overcome this problem CASE tools usually provide code generators, although in most cases this facility is restricted to the production of simple classes and method templates. No generic run time support is generated. General purpose methods to display instances, to manage subsets of instances of a given class, or to print comprehensive error messages must be programmed from scratch.