What is Unified Modeling Language (UML)?
Unified Modeling Language (UML) is a standardized way to visualize complex systems—such as software architecture or databases—and make relationships, characteristics, and behaviors of components easy to understand.
-
Software development
To streamline the development process, software developers use UML diagrams to visually represent the architecture, design, and implementation of complex software systems before they start coding. This helps eliminate unnecessary rework and ensures technical and non-technical team members are on the same page from day one.
-
Database modeling
UML has become a popular way to model databases. Not only are these diagrams a helpful visual tool for brainstorming and collaboration, but they can also help depict hierarchies, network structures, and other attributes. With UML diagrams, free-form diagramming becomes simple, and illustrations can easily evolve as plans change.
-
Business processes
The capacity of UML to illustrate abstract concepts, such as the way an object will change over time, makes it helpful in numerous business contexts. Associations, dependencies, communications, sequences, and lifespans can all be depicted in one diagram and easily adjusted as plans change.
-
Project management
Project managers use UML diagrams to understand and communicate business requirements at the outset of a new project and plan for potential scenarios. This enables the project manager to carefully manage scope, get early buy-in, and reduce the risk of future surprises.
Visualize your data and ideas
Create professional UML diagrams and start problem solving with our most powerful diagramming suite yet.
Why use UML diagrams?
Easily model complex systems and processes
UML makes vast, complex systems easier to understand by breaking them down into bite-sized components and illustrating the way they are connected. With all the necessary information displayed in one place, teams can problem-solve more effectively and identify gaps that may not have been visible before.
Customize diagrams as things evolve
UML diagrams are a very flexible form of documentation. As plans change or requirements shift, UML easily accommodates new information, making it easy to iterate without fear of upsetting what’s already been built.
Get your ideas in front of you
UML makes abstract concepts more concrete and makes space for teams to visualize problems, brainstorm ideas, and map out solutions. Create a UML activity diagram to illustrate your technical support process or a UML communication diagram for bug tracking. With UML, the options are endless.
Make perfectly polished diagrams with ease
While UML was originally created to help software developers visualize complex systems, it also has many day-to-day uses. With access to various UML shapes and functionalities, you can model business processes and workflows in minutes, then share your work for open collaboration—it’s that simple.
Types of UML diagrams
There are two major types of UML diagrams: structural diagrams and behavioral diagrams. Structural diagrams show the static structure of a system, including its attributes and levels of implementation. Behavioral diagrams show the dynamic behavior of a system—for example, the way it might change over time.
Between these two UML categories, analysts, designers, coders, and other diagram creators have 14 options for how they may visually depict their system. From there, the variations are unlimited.
Behavioral diagrams
UML activity diagrams
UML activity diagrams depict step-by-step processes with a clear beginning and end. Activity diagrams are relevant in many business contexts and can be an excellent tool for helping teams reach a specific goal.
Communication diagrams
UML communication diagrams demonstrate which elements interact with other elements by visualizing them as sequenced messages. These models are particularly helpful for diagramming systems with multiple complex iterations and branching.
Sequence diagrams
UML sequence diagrams show the way various actors and objects interact and the events they generate, arranged in a time sequence. Popular beyond the design community, these diagrams are good at demonstrating all types of business processes and can even capture multitasking.
State machine diagrams
UML state machine diagrams help describe the way an object changes in response to internal and external stimulus over the course of its lifecycle. These diagrams are perfect for illustrating complex, detailed processes.
Use case diagrams
UML use case diagrams describe what a system does, not how it does it. In the early stages of a development project, use-case diagrams can illustrate how an actor might use the system to accomplish real-world goals and even explain user interface and design details.
Interaction overview diagrams
UML interaction overview diagrams are activity diagrams made up of numerous smaller models (typically, time diagrams, sequence diagrams, and communication diagrams). While complex, these overview diagrams are perfect for illustrating the way numerous aspects of a system interact all at once.
Timing diagrams
UML timing diagrams are used to represent how objects relate when the primary focus is time. Timing diagrams visualize objects and actors along a linear time axis and capture the duration of events, as well as the changes that occur because of specific time constraints.
Structural diagrams
UML class diagrams
UML class diagrams model the structure of applications by specifying the system’s hierarchies, attributes, and relationships. These diagrams depict both the logical and physical design of a system and are very common in software development.
Component diagrams
UML component diagrams group components into logical clusters and visualize the relationships between them. These diagrams are great for breaking complex systems into their smallest components, making them easier to comprehend.
Composite structure diagrams
UML compose structure diagrams are one of the more infrequently used diagram styles—but they have their purpose. Where many UML diagrams visualize systems in great detail, composite structure diagrams illustrate systems as simply as possible. The focus is placed on top-level components and how they communicate with one another, instead of on specifics.
Database notation diagrams
UML database notation diagrams are used to model the structure of a database. These diagrams may be hierarchical, relational, and graphed as networks—or even trees—and are a great visual tool for brainstorming and free-form collaboration.
Deployment diagrams
UML deployment diagrams communicate how the hardware and software elements that make up an application will be configured and deployed. They can also show the structure of the run-time system.
Object diagrams
UML object diagrams represent specific instances of more abstract class styles. Software developers use object diagrams to verify whether their initial system structure holds up after adding additional specificity.
Package diagrams
UML package diagrams organize model diagrams into groups (or packages) of related objects. This enables programmers to show how large groups of components relate to one another.
Profile diagrams
UML profile diagrams are not a traditional diagram type, but a mechanism used to create new semantics for UML diagrams. Creators can use this capability to tag values and keywords, add conditions and constraints, or design brand new UML elements, beyond what is generally available in UML diagramming tools.
How to make a UML diagram
To get the most out of UML, select a tool that makes creating, sharing, and editing professional-looking UML diagrams as simple as possible.
Start with the right tool
Collaborate more effectively with a diagramming tool that allows you to create professional UML diagrams with ease. With dozens of premade templates, starter diagrams, and stencils to choose from, Visio makes it easy to create visuals anyone can understand.
Collaborate in real time
Co-create diagrams with your teammates, make changes in real time, and share your work across the business for more effective decision making. With a flexible platform and a wide variety of integrations, Visio makes creating, viewing, editing, and sharing professional UML diagrams truly simple.
Bring your vision to life
Creating a well-designed UML diagram is the first step toward making your idea reality. Simplify your design process, visualize problems and solutions, then start building. And if you need to change course, Visio will be ready to help you brainstorm something even better.
More on UML and Visio
How to install Visio
Visio is a standalone app, purchased separately from Microsoft Office.
A beginner’s guide to Visio
Learn how to use templates as well as arrange, connect, and modify shapes.
Create a basic flowchart
Learn how to use a flowchart to visualize both simple and complex business processes.
Visio training
Learn the basics or get deeper guidance with these training courses.
Expand your diagramming options
View all Visio plan options and explore what’s possible.
Visio accessibility features
Explore accessibility features like Narrator, Accessibility Checker, and high-contrast support.
UML best practices
Read the latest Visio news and UML best practices on the Microsoft 365 Tech Community Blog.
Frequently asked questions
-
Unified Modeling Language (UML) is a standardized way to visualize complex systems—such as software architecture or databases—and make relationships, characteristics, and behaviors of components easy to understand.
UML was created in the 1990s by three software engineers—Grady Booch, Ivar Jacobson, and James Rumbaugh—because they wanted to develop a less chaotic way to diagram increasingly complex software and separate methodology from process.
Today, UML is still the go-to diagramming tool for developers, as well as project managers, tech entrepreneurs, and business professionals across industries.
Learn more about the types of UML diagrams and how they are used in this guide to UML diagramming and database modeling.
-
Unified Modeling Language (UML) is a standardized, general-purpose modeling language used by programmers to specify, visualize, construct, and document software systems.
UML is not a programming language itself, but it can be used to generate code in common programming languages using UML diagrams. More commonly, it is used as a conceptual and object-oriented modeling tool.
-
There are two categories of UML diagrams—structural diagrams and behavioral diagrams. There are 14 diagram subtypes within these two categories.
Structural diagrams capture the static aspects of a system, including any attributes and hierarchies. Behavioral diagrams show the dynamic behavior of a system—for example, processes, impacts, and any changes that might over time.
Follow Microsoft 365