The UML enables the capturing, communicating, and leveraging of strategic, tactical, and operational knowledge to facilitate increasing value by increasing quality, reducing costs, and reducing time to market while managing risks and being proactive in regard to ever-increasing change and complexity.

Because the UML evolved primarily from various second-generation object-oriented methods (at the notation level), most practitioners of the UML believe that it is only concerned with object-oriented software-systems; when actually, the UML is not simply a third-generation object-oriented modeling language but a ”®unified modeling language”± concerned with systems in general (Rumbaugh, Booch, and Jacoboson, 1999).

Object-Oriented Programming and Development

Object-Oriented Development (OOD) has become very popular in recent years.  This has allowed designers and programmers alike to produce software that is very maintainable, flexible and manageable.  In object-oriented programming, a program is structured as a collection of classes, where each class describes a type of an object.  The object represents the entity (thing, place) naturally occurring in the program.  With the use of objects, it is now possible for programmers to reuse and debug their code.  Because of these pros, OOD and OOP will continue to grow throughout the software industry.  As mentioned earlier object-oriented development came about in the 70s.  this is not only allowed for the programming of systems but it incorporated the design, analysis, testing and debugging of systems.  Object oriented technology grew tremendously during the 1980s, with the emergence of more several sophisticated programming languages, including C++, Objecive-C, and Eiffel.  Despite its long history of development, only recently has the object-oriented development approach matured and has become widely accepted by the mainstream software industry (Jia, 2000).