Common types of software development UML diagrams:
Boxes: Boxes represent classes of objects. Yellow boxes denote core data or assets and are central to the diagram. White white boxes denote important information, but are not crucial. The class names appear at the top of the box. Attributes, if shown, appear below the class name. The class name and attributes are separated by a line.
A box may contain:
Name - top level; required Attributes - 2nd level; optional Operations - 3rd level; optional
Attributes are denoted:
+ for public attributes / operations - for private attributes / operations # for protected attributes / operations
Operational parameters are denoted as “in”, “out”, or “inout” which specifies its direction to the caller.
Relationships between classes
Inheritance (or Generalization: A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier.
Cardinality is expressed in terms of:
... [more info]
Dependency: An object of one class might use an object of another class in the code of a method. If the object is not stored in any field, then this is modeled as a dependency relationship.
Realization: Realization is a relationship between the blueprint class and the object containing its respective implementation level details. This object is said to realize the blueprint class. In other words, you can understand this as the relationship between the interface and the implementing class.
For example, the Owner interface might specify methods for acquiring property and disposing of property. The Person and Corporation classes need to implement these methods, possibly in very different ways.
Class Diagram Example: Order System