Common types of software development UML diagrams:
Use Case diagrams
Class diagrams
Sequence 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.
Class-related modeling
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
Parameter directionality:
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:
One to one
One to many
Many to many
... [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.