Unified Modelling Language (UML)

UML stands for Unified1 Modeling Language. Rather than being a spoken (like English) or written (like Python) language UML specifies a graphical language for describing the production of software. UML includes 13 kinds of diagrams that provide for the depiction of business processes, database schemas, project activities and programming language statements. We are just going to use one of them, UML class diagrams, and we'll look at them in a slightly simplified form.

The goal of a class diagram is to summarize the characteristics of individual classes, and the relationships between them. This means that for individual classes we want to show each class' name, attributes and methods. As for the relationship between classes we want to show "is-a" (or inheritance) and "has-a" (or composition) relationships.


  1. The word "unified" appears in the name because UML was the unification of several competing systems. As usual you can find a useful summary and background on Wikipedia.