Beim Entwurf einer Software-Systemarchitektur steht man vor der Frage, ob die Struktur eher auf den gewünschten Aktionen oder auf den Daten, Informationen und zu manipulierenden Objekten aufsetzen soll. Beides ist wichtig für das System.
Im Werdegang eines Systems sind Funktionen der eher flüchtige Teil. Neue Anforderungen entstehen stetig aus den anfänglichen. Wenn die Architektur zu sehr auf den Funktionen beruht, dann ist nicht gewährleistet, daß die Weiterentwicklung des Systems ebenso gleitend erfolgen kann, wie die Weiterentwicklung der Anforderungen fortschreitet. Wenn ein System sich entwickelt, können seine Aufgaben sich radikal ändern. Sehr viel mehr Beständigkeit dagegen findet sich in den Datenarten, auf denen gearbeitet wird.
Das Plädoyer für die Benutzung der Daten(objekte) als Schlüssel zur Systemmodularisierung wird v.a. auf die Software-Qualitätsziele Verträglichkeit, Wiederverwendbarkeit und Erweiterbarkeit gegründet.
Objektorientierter Entwurf ist diejenige Methode, die zu Softwarearchitekturen führt, die auf den von einem System oder Teilsystem bearbeiteten Objekten beruhen und nicht auf den Funktionen, die das System realisieren soll. Man fragt also nicht, was das System tut, sondern woran es etwas tut.
Einzelne Objekte werden von Klassen abgeleitet. Dabei geltende wichtige Prinzipien sind:
Die Objekte kommunizieren nur über eine möglichst schmale, genau definierte Schnittstelle mit ihrer Außenwelt. Ihr "Innenleben" bleibt "geheim" und kann ohne Konsequenzen für die Außenwelt verändert werden.
Eine Objektklasse hat bestimmte Eigenschaften und reagiert auf bestimmte Botschaften, die von anderen Objekten ausgesendet werden. Aus einer Objektklasse können neue Unterklassen gebildet werden, z.B. durch teilweise Veränderung, Hinzufügung oder Einschränkung von Eigenschaften und Methoden. Diese werden entlang der Klassenhierarchie vererbt. Änderungen wirken auf alle "erbenden" Unterklassen. Dadurch ist eine sehr effiziente Programmierung möglich.
Eigenschaften der Objekte werden intern so allgemein wie möglich beschrieben, damit sie in speziellen Verwendungen beliebig konkretisiert werden können.