Viele Programme sind geschrieben worden, um Dinge zu tun, die die reale Welt betreffen. Es ist zweckmäßig "Software-Objekte" zu haben, die "real existierenden Objekten" gleichen. Das macht es leichter über das Programm und die Umsetzung nachzudenken. Software-Objekte werden Identität, Zustand und Verhalten haben, genauso wie real existierende Objekte. Natürlich existieren Software-Objekte gänzlich innerhalb eines Computersystems und haben keine direkte Auswirkung auf real existierende Objekte.