Unified Modeling Language (UML)
Definition - What does Unified Modeling Language (UML) mean?
Unified Modeling language (UML) is a standardized modeling language enabling developers to specify, visualize, construct and document artifacts of a software system. Thus, UML makes these artifacts scalable, secure and robust in execution. UML is an important aspect involved in object-oriented software development. It uses graphic notation to create visual models of software systems.
Techopedia explains Unified Modeling Language (UML)
The UML architecture is based on the meta object facility, which defines the foundation for creating modeling language. They are precise enough to generate the entire application. A fully executable UML can be deployed to multiple platforms using different technologies and can be used with all processes throughout the software development cycle.
UML is designed to enable users to develop an expressive, ready to use visual modeling language. In addition, it supports high level development concepts such as frameworks, patterns and collaborations. UML includes a collection of elements such as:
- Programming Language Statements
- Actors: specify a role played by a user or any other system interacting with the subject.
- Activities: These are tasks, which must take place in order to fulfill an operation contract. They are represented in activity diagrams.
- Business Process: includes a collection of tasks producing a specific service for customers and is visualized with a flowchart as a sequence of activities.
- Logical and Reusable Software Components
UML diagrams can be divided into two categories. The first type includes six diagram types representing structural information. The second includes the remaining seven representing general types of behavior. Structure diagrams are used in documenting the architecture of software systems and are involved in the system being modeled. Different structure diagrams are:
- Class Diagram: represents system class, attributes and relationships among the classes.
- Component Diagram: represents how components are split in a software system and dependencies among the components.
- Deployment Diagram: describes the hardware used in system implementations.
- Composite Structure Diagram: describes internal structure of classes.
- Object Diagram: represents a complete or partial view of the structure of a modeled system.
- Package Diagram: represents splitting of a system into logical groupings and dependency among the grouping.
Behavior diagrams represent functionality of software system and emphasize on what must happen in the system being modeled. The different behavior diagrams are:
- Activity Diagram: represents step by step workflow of business and operational components.
- Use Case Diagram: describes functionality of a system in terms of actors, goals as use cases and dependencies among the use cases.
- UML State Machine Diagram: represents states and state transition.
- Communication Diagram: represents interaction between objects in terms of sequenced messages.
- Timing Diagrams: focuses on timing constraints.
- Interaction Overview Diagram: provides an overview and nodes representing communication diagrams.
- Sequence Diagram: represents communication between objects in terms of a sequence of messages.
UML diagrams represent static and dynamic views of a system model. The static view includes class diagrams and composite structure diagrams, which emphasize static structure of systems using objects, attributes, operations and relations. The dynamic view represents collaboration among objects and changes to internal states of objects through sequence, activity and state machine diagrams. A wide variety of UML modeling tools are available to simplify the modeling process, including IBM Rational Rose, Rational Rhapsody, MagicDraw UML, StarUML, ArgoUML, Umbrello, BOUML, PowerDesigner and Dia.