Object-oriented programming languages came into their commercial heyday in the 1990s, and one of the fringe benefits of object-oriented programming research was the development of a standard way to diagram the internal structure of programs.
A standard managed by the Object Management Group, UML (Unified Modeling Language) is officially described as "the industry-standard language for specifying, visualizing, constructing and documenting the artifacts of software systems" (go to www.eweek.com/links to access the UML Resource Center Web site).
Grady Booch, Ivar Jacobson and Jim Rumbaugh, three leading software design experts who ended up working together at Rational Software Corp., initially designed UML.
There are seven basic UML diagram types, ranging from the high-level use case diagram, showing the people and tasks in a business process, to the low-level class diagram, showing class, method and variable names used in a particular program.
High-level diagram types such as use case, activity or sequence are effective ways for users (through an interview with someone who knows UML) to specify how applications should work.
Class diagrams, on the other hand, are programmers tools. UML-based modeling tools take completed class diagrams and use them to directly generate code. Modeling tools can also reverse-engineer existing code back to class diagrams to visually show how a programs components fit together.
One area that UML does not currently address is database modeling, now based on entity-relationship model diagrams. There is some exploratory work going on to see how UML could be used to do database modeling.
Other future directions for UML include models for designing real-time systems, more ways to describe the run-time behavior of software, and distributed computing modeling.
Using UML to describe software plans in a clear, visual way will help analysts ensure that their software plans meet business needs and help developers supply finished software that does the same.