Die objektorientierte Modellierung bildet einen Ansatz zur Analyse und Entwicklung von Systemen, der wesentlich auf den Konzepten „Objekt“, „Klasse“ und „Vererbung“ beruht.
Zentrale Konzepte
Die objektorientierte Modellierung bildet eine Alternative zur strukturierten Systemanalyse und zum strukturierten Systementwurf. Eine Besonderheit der objektorientierten Modellierung besteht darin, dass zur Analyse, zum Entwurf und zur Implementierung eines Systems dieselben Beschreibungskonzepte zur Anwendung kommen. Die objektorientierte Modellierung greift hierfür Grundkonzepte objektorientierter Programmiersprachen wie Ada, Simula und Smalltalk auf. Darüber hinaus finden sich Ähnlichkeiten zum Frame-Konzept, das von Minsky im Rahmen der Forschung zur Künstlichen Intelligenz entwickelt worden ist [Minsky 1974].
Folgende Konzepte sind bei der objektorientierten Modellierung von Bedeutung:
-
Objekte: Objekte sind das zentrale Konzept der objektorientierten Modellierung und werden hinsichtlich struktureller und verhaltensbezogener Aspekte näher beschrieben. Aus der strukturellen Perspektive besitzen Objekte verschiedene Eigenschaften. Beispielsweise lässt sich ein Objekt „Auto“ anhand der Eigenschaften „PS“ und „Höchstgeschwindigkeit“ beschreiben. Aus der verhaltensbezogenen Perspektive bietet ein Objekt bestimmte Dienste an. Beispielsweise kann ein Objekt „Auto“ die Dienste „Motor einschalten“, „Gang einlegen“ oder „Gas geben“ als Dienste anbieten. Die von einem Objekt angebotenen Dienste werden auch als Methoden oder Operationen bezeichnet. Der Objektbegriff ist so weit gefasst, dass letztlich jeder Gegenstand als ein Objekt verstanden werden kann, der sich als ein Objekt beschreiben lässt. Der Objektbegriff umfasst also sowohl konkrete Gegenstände wie ein Haus, eine Person oder ein Auto als auch abstrakte Gegenstände wie ein Konto, eine Rechnung oder eine Zahlung. Neben Gegenständen der Anwendungsdomäne umfasst der Objektbegriff auch Gegenstände der Implementierungstechnik wie „Fenster“, „Betriebssystemprozess“, „Listenelement“ und „Iterator“.
-
Klasse: Mithilfe des Klassen-Konzepts können Objekte mit ähnlichen Eigenschaften und Diensten beschrieben werden. Zuweilen werden Klassen auch als Schablonen zur Erzeugung von Objekten einer Klasse aufgefasst. Mit einer Klasse wird es möglich, die gemeinsamen Eigenschaften und Dienste von einer Menge von Objekten einmalig zu beschreiben.
-
Verkapselung: Die innere Struktur und das Verhalten eines Objektes ist für andere Objekte nicht direkt zugänglich. Auf diese Weise wird die Struktur und das Verhalten der Objekte gekapselt (Prinzip des „information hiding“). Auf die innere Struktur kann ausschließlich über Dienste zugegriffen werden.
-
Nachrichten: Damit unterschiedliche Objekte miteinander interagieren können, werden Nachrichten zwischen den Objekten ausgetauscht. Versteht ein Objekt die entsprechende Nachricht, wird die korrespondierende Operation ausgeführt.
-
Vererbung: Zwischen zwei Klassen kann eine Vererbungsbeziehung bestehen, die eine gerichtete Beziehung darstellt. Mithilfe der Vererbungsbeziehung kann die untergeordnete Klasse sämtliche Struktur- und Verhaltenseigenschaften der übergeordneten Klasse mitnutzen. Darüber hinaus können die Struktur- und Verhaltenseigenschaften aber auch erweitert oder überschrieben werden.
-
Polymorphismus: Das Konzept des Polymorphismus erlaubt eine kontextabhängige Interpretation einer Nachricht bzw. einer Anweisung. Damit wird es unter anderem möglich, an verschiedene Objekte denselben Nachrichttyp zu schicken, der aber abhängig von der Klassenzugehörigkeit der Objekte unterschiedlich interpretiert wird.
Überblick über Ansätze
Ende der 1980er beziehungsweise Anfang der 1990er Jahre herrschte ein Wildwuchs an objektorientierten Modellierungsansätzen, wobei sich drei Ansätze besonderer Popularität erfreuten:
-
Object Modeling Technique nach Rumbaugh et al. [Rumbaugh et al. 1991],
-
Object-Oriented Software Engineering nach Jacobson et al. [Jacobson et al. 1992] und
-
objektorientierte Entwicklung nach Booch [Booch 1994].
Heute hat sich mit der Unified Modeling Language ein Standard zur objektorientierten Modellierung durchgesetzt. Dieser bietet zwar eine einheitliche Modellierungssprache, beschreibt allerdings keine Methode zur objektorientierten Modellierung.
Innerhalb der Wirtschaftsinformatik existieren insbesondere zwei Ansätze, die der objektorientierten Modellierung eine besondere Bedeutung beimessen:
Darüber hinaus existieren auch Ansätze zur Erweiterung der Architektur integrierter Informationssysteme (ARIS) zwecks objektorientierter Modellierung [Scheer 1997, S. 54-57].
Literatur
Booch, Grady: Object-Oriented Analysis and Design with Applications. 2. Aufl., Benjamin/Cummings : Redwood City, CA, USA, 1994.
Jacobson, Ivar ; Christerson, M. ; Jonsson, P. ; Övergaard, G.: Object-Oriented Software Engineering. Addison-Wesley : Reading, MA, et al., 1992.
Minsky, Marvin (1974): A Framework for Representing Knowledge. ftp://publications.ai.mit.edu/ai-publications/0-499/AIM-306.ps (Abruf 8.8.2011).
Rumbaugh, James ; Blaha, Michael ; Premerlani, William ; Eddy, Frederick ; Lorensen, William: Object-Oriented Modeling and Design. Prentice Hall : Englewood Cliffs, N. J., 1991.
Scheer, August-Wilhelm: Wirtschaftsinformatik – Referenzmodelle für industrielle Geschäftsprozesse. 7. Aufl., Springer : Berlin et al., 1997.