An Object Modeling Language is a standardized set of symbols and ways of arranging them to model (part of) an object oriented software design.

Some organizations use them extensively in combination with a software development methodology to progress from initial specification to an implementation plan and to communicate that plan to an entire team of developers and stakeholders. Using a modeling language is easier than actual programming, because there are fewer means of actually verifying the proper behaviour of the model. This also means real-life interactions between program parts can deliver nasty surprises later in the development when the model is actually translated into software.

Some Object-Oriented methodologists identify three roughly chronological "generations" of object modeling techniques:

  • In the first generation, isolated methodologists and small groups developed techniques that solved problems they saw first-hand in OO development projects. In the generation are included people and techniques such as Rumbaugh, Jacobson, Booch, CRC, Formal methods, Shaler-Mellor, and Yourdon-Coad.
  • The second generation recognized that many best practices were scattered among the fragmented OO methodology landscape. Several attempts were made to gather these practices into coherent frameworks such as FUSION. However, the OO community was beginning to recognize the benefits that industry standardization would bring: not just a good way of doing things, but the good way, which would lead to common parlance and practice among developers.
  • The third generation consists of credible attempts at this single industry-standard language, with UML the primary example.


Thanks to http://groups.google.com/groups?selm=6isqsl%248hc%241%40nnrp1.dejanews.com&output=gplain