Generelles Ziel der Softwareentwicklung ist die Erstellung eines Programmsystems zur Lösung eines gegebenen Problems. Softwareentwicklung kann dabei als ein Prozeß angesehen werden, bei dem die Elemente des Problem- bzw. Anwendungsbereichs in Elemente des Lösungsraums abgebildet werden. Bei der objektorientierten Softwareentwicklung wird diese Abbildung dadurch realisiert, daß zunächst das Anwendungsgebiet analysiert und modelliert wird. Dazu werden die charakteristischen Elemente des Anwendungsgebietes sowie ihre Eigenschaften, Verhaltensweisen und Beziehungen untereinander identifiziert. Das so entstandene Modell des Anwendungsgebietes wird dann gemäß vorgegebener Regeln in ein Modell des Lösungsraums - letztendlich ein Programm - überführt. Objektorientierte Programmiersprachen enthalten hierzu spezielle Konzepte und Konstrukte, die diese Transformation erleichertern. Das Programm kann als Abstraktion des Anwendungsgebietes betrachtet werden, dessen Elemente weitgehend den Elementen des Anwendungsgebietes entsprechen.
Objektorientierte Softwareentwicklungsmethoden zeichnen sich durch einen durchgängigen Entwicklungsprozeß von der Analyse bis zur Wartung aus. Ziel dieser Methoden ist es, die Struktur des Problembereichs möglichst genau auf die Implementierung abzubilden. Programmsysteme werden nicht mehr dadurch entwickelt, daß Funktionskomplexe in Prozeduren und Module zerlegt werden, sondern indem der Systemkern durch Abstraktionen der Realität gebildet wird. Die bekanntesten objektorientierten Softwareentwicklungsmethoden sind die Methoden von Shlaer/Mellor, Coad/Yourdon, Booch, Rumbaugh und Jacobson. Vergleiche finden sich bspw. in [Ste93]. Objektorientierte Softwareentwicklungsmethoden gliedern sich in die Phasen Objektorientierte Analyse (OOA), Objektorientierter Entwurf/Design (OOD) und Objektorientierte Implementierung/Programmierung (OOP), zum Teil auch noch Objektorientierter Test (OOT). Die Grenzen zwischen den Phasen sind jedoch fließend. Aktivitäten, die in einigen Methoden noch zur Analyse zählen, werden in anderen Methoden schon dem Entwurf zugeordnet. Viele objektorientierte Softwareentwicklungsmethoden basieren auf dem evolutionären Vorgehensmodell, bei dem die Phasen Analyse, Entwurf, Implementierung und Test inkrementell und iterativ durchlaufen werden. Nach jedem Durchlauf entsteht ein funktionsfähiges Zwischenprodukt, das im nächsten Durchlauf erweitert wird. Aufgrund der Eigenschaft der einfachen Erweiterbarkeit objektorientierter Systeme ist das evolutionäre Vorgehensmodell für die objektorientierte Softwareentwicklung geradezu prädestiniert.
Die objektorientierte Softwareentwicklung im allgemeinen und die objektorientierte Programmierung im speziellen haben in den 90er Jahren eine enorme Popularität erlangt. Gegenüber tradionellen Softwareentwicklungsmethoden, deren wesentlicher Nachteil der Strukturbruch zwischen Analyse und Entwurf ist, zeichnen sich objektorientierte Softwareentwicklungsmethoden durch einen durchgängigen Entwicklungsprozeß von der Analyse bis zur Wartung aus. Mit objektorientierten Konzepten lassen sich viele Probleme auf natürlichere Art und Weise modellieren bzw. lösen, als dies mit traditionellen Programmierkonzepten der Fall ist. Wesentliche Vorteile der Objektorientierung liegen in einer einfachen Wartbarkeit und Erweiterbarkeit von Software und der Wiederverwendung von Programmteilen bei der Entwicklung anderer Programmsysteme. Diese Vorteile implizieren eine gesteigerte Produktivität des Softwareentwicklungsprozesses und eine höhere Qualität der entstehenden Produkte.