Start Diagramming!

<- Previous

3. UML Overview

What is UML?

UML stands for "Unified Modeling Language".

UML is an international standard managed by the Object Management Group (OMG). UML has also been published by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC) as the ISO/IEC 19501 standard. (See ISO/IEC 19505-1:2012)

"The objective of UML is to provide system architects, software engineers, and software developers with tools for analysis, design, and implementation of software-based systems as well as for modeling business and similar processes."

In short, UML is a modeling language standard for describing systems and processes.

UML is often seen as only a description of diagramming conventions, or even just the rendered pixels of a UML diagram. While it certainly is that and primary focuses on the elements needed to create diagrams, it is much more than that. UML is a very precise and expansive description of all of the elements necessary to create, represent, store, and describe UML models in a general sense. What this means is that when you create a UML model and represent that model using the UML specification, you are open to do more than just render a diagram. For example, you may create your own custom notation, representations, or even diagrams. You may save your model in data stores. You may exchange models, transform them into other specifications, or generate documentation. Depending on the specificity of your model, you may even automatically generate code, libraries, SDKs, executables, or other artifacts. The possibilities are endless.

This course's main goal is to attempt to explain the diagramming aspect of UML Class Diagrams, but we hope to mix in other modeling capabilities of UML to become familiar with the many other aspects of modeling you may be interested in.

Diagram Types

There are many Diagram Types that you can create using UML.

Generally they break down into 2 general types of diagrams: 1. Structure Diagrams and 2. Behavior Diagrams. Structure Diagrams generally focus on the structure of things and how they relate to each other. Behavior Diagrams generally focus on behaviors, how things change state, or process flows.

Although diagrams generally can be categorized into these two types, they can be mixed and combined to model both structure and behavior.

UML Diagram Types
UML Diagram Types

Purpose of Class Diagrams in UML

Class Diagrams fit within the "Structure Diagram" type of Diagrams. This means they primarily deal with the structure of a system and how those elements relate. This also means that they are generally not meant to model behavior, changes in state, or process flow. But there are aspects of Class Diagrams that can show relationships with things like "Operations" and "Behaviors" which are more behavioral in nature.

  1. Structure Diagrams
    • Class Diagram
    • Object Diagram
    • Package Diagram
    • Profile Diagram
    • Composite Structure Diagram
    • Component Diagram
    • Deployment Diagram
  2. Behavior Diagrams
    • Activity Diagram
    • Use Case Diagram
    • State Machine Diagram
    • Interaction Diagram
      • Sequence Diagram
      • Communication Diagram
      • Interaction Overview Diagram
      • Timing Diagram

Class Diagrams are extremely useful for describing the structure of a system in terms of object-oriented principles (OOP). For example, consider the following elements that are part of UML Class Diagrams:

UML elementsSimilar concepts in OOP languages
Class"class"
Interface"interface" or "contract"
Package"package" or "namespace"
Property"property", "field, "attribute"
Operation"method", "method signature, or "function"
Association"references"
Generalization"extends" or "inherits from"
InterfaceRealization"implements" or "adheres to"

As you can see, UML Class Diagrams are perfect for describing the structure of your application in OOP language that maps nicely to the programming langauges you are already familiar with.

It's probably no surprise that Class Diagrams are our favorite Diagram in the UML ecosystem. 😃

Why use UML Class Diagrams?

Anyone that wants to be successful in building anything must start with a solid architecture.

There are many software/application development processes and methodologies (See Software Development Process and Software Development Life Cycle for an example of a few), but every one of them begins with a "Plan" or "Design" phase before getting into the "Build" phase.

In other words, a successful project should be planned out and designed before being built. Would you start building a house without blueprints? Of course not. UML Class Diagrams are like your blueprints for your system and are crucial for the success of your project.

History of UML

UML has a long history. Here is a list of each of the officially released specifications:

VersionAdoption DateTime BetweenVersion InformationSpecification URL(s)
2.5.1December 20176 years, 5 monthshttps://www.omg.org/spec/UML/2.5.1PDF
2.4.1July 20111 years, 2 monthshttps://www.omg.org/spec/UML/2.4.1Infrastructure PDF Superstructure PDF
2.3May 20101 years, 4 monthshttps://www.omg.org/spec/UML/2.3Infrastructure PDF Superstructure PDF
2.2January 20091 years, 3 monthshttps://www.omg.org/spec/UML/2.2Infrastructure PDF Superstructure PDF
2.1.2October 20072 years, 3 monthshttps://www.omg.org/spec/UML/2.1.2Infrastructure PDF Superstructure PDF
2.0July 20052 years, 4 monthshttps://www.omg.org/spec/UML/2.0Infrastructure PDF Superstructure PDF
1.5March 20031 years, 6 monthshttps://www.omg.org/spec/UML/1.5PDF
1.4September 20011 years, 7 monthshttps://www.omg.org/spec/UML/1.4PDF
1.3February 20007 monthshttps://www.omg.org/spec/UML/1.3PDF
1.2July 19991 year 7 monthshttps://www.omg.org/spec/UML/1.2
1.1December 1997https://www.omg.org/spec/UML/1.1
UMLClassDiagram Abstract Syntax
UMLClassDiagram Abstract Syntax

Next ->