UML

BaseClass
- private field : Type

protected field : Integer |

| - private method (Args) : ReturnType

IS-A (Inheritance): Arrow from a box to the base class.

OWNS-A (Ownership): Black diamond from the owning class with an arrow to the owned class.

HAS-A (Shallow Membership): Arrow is same as OWNS-A, but the diamond is white.

SOLID

Single Responsibility Principle: A class should only have one reason to change.

Open-Closed Principle: Classes, modules, functions, etc. should be open for extension but closed for modification.

Coupling and Cohesion

We want low coupling, high cohesion.

Coupling: Strength of interdependence of modules.

Cohesion: Closeness of relations between modules.