What is UML?
UML stands for Unified Modeling Language. This object-oriented system of notation has evolved from
the work of Grady Booch, James Rumbaugh, Ivar Jacobson, and the
Rational Software Corporation. These renowned
computer scientists fused their respective technologies into a single, standardized model. Today,
UML is accepted by the Object Management Group (OMG) as the standard
for modeling object oriented programs.
Types of UML Diagrams
UML defines nine types of diagrams: class (package), object, use case, sequence, collaboration,
statechart, activity, component, and deployment.
Class diagrams are the backbone of almost every object oriented method, including UML. They
describe the static structure of a system.
Package diagrams are a subset of class diagrams, but developers sometimes treat them as a separate
technique. Package diagrams organize elements of a system into related groups to minimize dependencies
Object diagrams describe the static structure of a system at a particular time. They can be used to test class diagrams for accuracy.
Use case diagrams model the functionality of system using actors and use cases.
Sequence diagrams describe interactions among classes in terms of an exchange of messages over time.
Collaboration diagrams represent interactions between objects as a series of sequenced messages. Collaboration diagrams describe both the static structure and the dynamic behavior of a system.
Statechart diagrams describe the dynamic behavior of a system in response to external stimuli. Statechart diagrams are especially useful in modeling reactive objects whose states are triggered by specific events.
Activity diagrams illustrate the dynamic nature of a system by modeling the flow of control from activity to activity. An activity represents an operation on some class in the system that results in a change in the state of the system. Typically, activity diagrams are used to model workflow or business processes and internal operation.
Component diagrams describe the organization of physical software components, including source code, run-time (binary) code, and executables.
Deployment diagrams depict the physical resources in a system, including nodes, components, and connections.