BreadcrumbHomeResourcesBlog What Is UML? Everything You Need To Know About Unified Modeling Language October 20, 2020 What is UML? Everything You Need to Know About Unified Modeling LanguageDiagrams for Software EngineeringSoftware DevelopmentBack to topWhat is UML?UML, or Unified Modeling Language, is a visual modeling language that helps software developers visualize and construct new systems. It’s not a programming language — it’s a set of rules specifically for drawing diagrams. There are many types of software engineering diagrams, but think of this language like the software engineer’s version of a blueprint.If you're brand new to UML, you might like our resource on UML Basics before digging in to UML diagrams. To learn more about UML diagramming, read on or jump ahead to one of the following sections:Table of ContentsWhat is UML?Video Intro to UML DiagrammingCommon UML NotationsHistory of the Unified Modeling LanguageWhat does a UML Diagram Do? Why Software Engineers Use the Unified Modeling LanguageStart Diagramming With the Unified Modeling LanguageTable of Contents1 - What is UML?2 - Video Intro to UML Diagramming3 - Common UML Notations4 - History of the Unified Modeling Language5 - What does a UML Diagram Do? Why Software Engineers Use the Unified Modeling Language6 - Start Diagramming With the Unified Modeling LanguageReady to get started and just looking for the perfect UML diagram tool? Sign up for a free trial of Gliffy for Confluence for diagramming in Confluence and Jira or check out our online diagramming tool. START DIAGRAMMINGBack to topVideo Intro to UML DiagrammingBack to topCommon UML NotationsWhile there are multiple types of UML diagrams, each diagram has elements like packages, classes, and associations that are represented with their own graphics. These are common notations you’ll see as you get to know UML further or use as you learn how to make a UML diagram.Frames & Content AreasContent areas are simply the space your UML diagram occupies, and for the sake of organization it can be helpful to enclose that diagram in a frame. If you include a frame, you should also include a heading that describes the parameters of your model. Standard headings and their abbreviations are:Activity (act)ClassComponent (cmp)Deployment (dep)Interaction (sd)Package (pkg)State Machine (stm)Use Case (uc)PackagesPackages can contain elements within them, including other packages. They’re simply used to group elements under a common name.ClassifiersClasses are represented with rectangles and can include varying amounts of data based on your diagram. Classifiers describe a set of objects that have a state and relationships to other objects. The type of classifier rectangle you’re using can have a keyword that distinguishes it as an interface, data type, stereotype, and so on.ObjectsIf you are including a specific state and behavior within a class, you’ll want to make your diagram more specific, too. In this case, you’ll use an object — differentiated from a class rectangle simply by its underlined name.StatesTo describe the states of a process or program, you’ll use circles indicating the initial and final states of your system. You can then describe states throughout your system by using rounded rectangles. In these rectangles, you can give the state a name and define its attributes and responses.Nodes and ComponentsComponents represent generalizations of parts of the system or interchangeable pieces. Nodes represent a physical component of a system, like a server. Notes and AnnotationsThese notes give you space to explain elements, functions, or other important details that give further context to your diagram.ArrowsArrows show the relationships between elements in your diagram. There are a few types of relationships to take note of:GeneralizationsThese parent-child relationships are shown with a solid line and a hollow arrowhead. It shows that one element is a more specific type of another.AssociationsAssociation arrows simply show a one-way relationship between elements in your diagram. Information flows from one place to another. This is a solid arrow with a basic, unclosed arrowhead.DependenciesWith a dotted line and an unclosed arrow, you can show that one element relies on another to get information. These relationships are important to note because changes can “break” your system.RealizationsRealization relationships are shown with a dotted arrow and an unfilled arrowhead. These show that one element is derived from another or that the information on one side of the relationship creates or implements the next.Back to topHistory of the Unified Modeling LanguageGrady Booch, Ivar Jacobson, and James Rumbaugh created the Unified Modeling Language in 1995 while working at Rational software. In 1997, the Object Management Group adopted UML as a standard for its members, which includes the likes of Hewlett-Packard, IBM, and Apple Computer. With interoperability in mind, this ensured that UML would be a shared visual language for years to come.In 2005, the language was published by the International Organization for Standardization (ISO) and has since been revised and reviewed to keep it up to date. The most recent version, UML 2.5, was released in 2015.Today, UML diagrams are less popular because many software teams now work in an Agile environment, but there are certainly reasons to use them. UML diagramming allows teammates to consistently document and convey ideas — and that type of clear communication helps keep everyone on track.Back to topWhat does a UML Diagram Do? Why Software Engineers Use the Unified Modeling LanguageUML diagrams are one of the most popular software engineering diagrams. When it comes to building new products or systems, there are two key reasons to add UML diagramming to your toolkit.Better Ideation and CollaborationBefore developers start coding, UML can help everyone get on the same page. Understanding the system they’re trying to create allows developers to delegate work, identify potential problems before work has started, and work efficiently toward a common goal.Clearer Documentation of Workflow or Project StructureAfter code is written, a UML diagram can help developers understand the decisions made and structures developed for the project. This information helps teams as they look to improve upon the project for the future.Back to topStart Diagramming With the Unified Modeling LanguageNow that you know what UML is and what it’s used for, why not give it a go? Check out How To Make a UML Diagram or dive right into a free trial of Gliffy.Try in Confluence Try Online Related ResourcesHow to Increase Developer ProductivityBack to top