Object Modeling Language is a modeling language based on a standardized set of symbols and ways of arranging them to model (part of) an object oriented software design or system 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. Because a modeling language is visual and at a higher-level of abstraction than code, using models encourages the generation of a shared vision that may prevent problems of differing interpretation later in development. Often software modeling tools are used to construct these models, which may then be capable of automatic translation to code.
Some methodologists identify three roughly chronological generations of object modeling notations: first-, second- and third generation.
In the first generation, isolated methodologists and small groups developed techniques that solved problems they saw first-hand in Object Oriented (OO) development projects.
The first generation includes techniques such as:
The first generation languages were co-developed and very closely tied with specific object-oriented methodologies usually with the same name. It was often difficult to determine whether the notation or methodology was being referred to.
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 Unified Modeling Language standardizing the method was recognized, and the languages developed into notations that r suitable for a wide range of development methods.
Full article ▸