Unified Modeling Language Introduction

UML is not programming language — at least not in any traditional sense. Instead, it is a graphical modeling language, a way of designing computer programs and software systems.

The UML standard provides for several different types of diagrams, each one representing a different way of looking at the system. For example, a class diagram shows the properties and relationships of several classes. A use case diagram shows several different types of users and codifies their needs within the system.

Each diagram has a set of defined symbols which represent various concepts or entities within a computer system: classes, relationships, users, interfaces, components, and so forth.

UML Online Tutorials

Video Tutorials


Along with several introductory books on the subject, we're also listing a number of books that approach UML form a specific vantage point or are useful to certain types of professionals using UML.

UML, OOP, and Design Patterns

UML was developed specifically to model object oriented software systems, and has grown up closely tied with the design patterns movement. This is a trend in development toward finding standardized solutions to common problems. If you find UML interesting, you'll appreciate the more complete view you can get by diving into patterns. The classic book on the subject is Design Patterns: Elements of Reusable Object-Oriented Software, by Gamma, et al.


UML provides a development methodology that gets coders away from their screens, talking out the system design with system architects and business analysts. It provides a tool to make white-board sketches meaningful and concrete. UML is a powerful skill for software developers, project managers, and anyone else on a development team.

Further Reading and Resources

We have more programming guides, tutorials, and infographics related to coding and development:

What Code Should You Learn?

Confused about what programming language you should learn to code in? Check out our infographic, What Code Should You Learn? It not only discusses different aspects of the languages, it answers important questions such as, "How much money will I make programming Java for a living?"