Durch die immer weiter fortschreitende Einflussnahme der Informationstechno-logie in bestehende Wirtschaftssysteme und der damit verbundenen Globalisie-rung ist es von bedeutender Wichtigkeit schnell, präzise, genau und praxisnah zielgerichtete Software und Softwaresysteme zu entwickeln und zu verbessern. Aus diesem Anlass heraus hat sich die Objektorientierung (OO), speziell die Objektorientierte Programmierung (OOP) weiterentwickelt und gegenüber der Funktionalen Programmierung durchgesetzt.
Ziel dieses Assignments ist es einen Überblick über die OO und Objektorientier-te Modellierung (OOM) zu geben. Dabei Sollen wesentliche Aspekte der OO dargestellt und eine kritische Betrachtung gegeben werden.
Inhaltsverzeichnis
Abbildungsverzeichnis
Abkürzungsverzeichnis
1 Einführung
1.1 Motivation
1.2 Ziel des Assignments
1.3 Aufbau des Assignments
2 Bedeutung der Objektorientierung
2.1 Was ist Objektorientierung
2.2 Entwicklung der Objektorientierten Programmierung
2.3 Objektorientierte Analyse und Design
3 Merkmale der Objektorientierung
3.1 Objekte und Klassen
3.2 Vererbung
3.2.1 Vererbung der Spezifikation
3.2.2 Vererbung der Implementierung
3.3 Polymorphie
3.3.1 Statische Polymorphie
3.3.2 Dynamische Polymorphie
3.4 Kapselung
4 Die Unified Modeling Language (UML)
4.1 Entwicklung von UML
4.2 UML-Diagramme
4.2.1 Verhaltensdiagramme
4.2.2 Strukturdiagramme
5 Kritische Betrachtung und Defizite der Objektorientierung
6 Zusammenfassung und Ausblick
Literaturverzeichnis
Webseitenverzeichnis
Abbildungsverzeichnis
Abbildung 1: Entwicklung der Programmiersprachen
Abbildung 2: Vererbung
Abbildung 3: Kapselung
Abkürzungsverzeichnis
Abbildung in dieser Leseprobe nicht enthalten
1 Einführung
In diesem Kapitel wird, im Anschluss an die Darlegung der Gründe für das Thema, der Aufbau des Assignments dargestellt.
1.1 Motivation
Durch die immer weiter fortschreitende Einflussnahme der Informationstechnologie in bestehende Wirtschaftssysteme und der damit verbundenen Globalisierung ist es von bedeutender Wichtigkeit schnell, präzise, genau und praxisnah zielgerichtete Software und Softwaresysteme zu entwickeln und zu verbessern. Aus diesem Anlass heraus hat sich die Objektorientierung (OO), speziell die Objektorientierte Programmierung (OOP) weiterentwickelt und gegenüber der Funktionalen Programmierung durchgesetzt.
1.2 Ziel des Assignments
Ziel dieses Assignments ist es einen Überblick über die OO und Objektorientierte Modellierung (OOM) zu geben. Dabei Sollen wesentliche Aspekte der OO dargestellt und eine kritische Betrachtung gegeben werden.
1.3 Aufbau des Assignments
Im Anschluss an die Motivation und dem Ziel des Assignments werden im Kapitel 2 die Bedeutung der OO und die damit verbundene Sichtweise dargestellt. Im 3. Kapitel wird auf die Prinzipien der OO eingegangen, welche maßgeblich für das Konzept der OO sind. Die Sichtweise der OO zur semantischen Darstellung, die Unified Modeling Language (UML), wird in Kapitel 4 beschrieben. Im 5. Kapitel soll die OO unter einem kritischen Betrachtungswinkel beurteilt und eventuelle Defizite aufgezeigt werden. Im 6. und letzten Kapitel wird eine Zusammenfassung und Beurteilung des Themas in Bezug auf aktuelle und zukünftige Entwicklungen der OO gegeben.
2 Bedeutung der Objektorientierung
Im zweiten Kapitel dieser Arbeit wird dargestellt, was Objektorientierung ist, wie sie sich entwickelt hat und der Ansatz der Objektorientierten Analyse (OOA) und des Objektorientierten Design (OOD) verdeutlicht.
2.1 Was ist Objektorientierung
Objektorientierung ist eine Methode die sich mittlerweile bewährt hat, um der Vielfältigkeit von Softwaresystemen entgegenzutreten.[1] „Ein Objekt wird durch Eigenschaften und Fähigkeiten beschrieben. Die Eigenschaften beschreiben den aktuellen Zustand des Objektes und die Fähigkeiten stellen Tätigkeiten dar, die auf das Objekt angewendet werden können, um seine Eigenschaften zu verändern.“[2] Ein Auto kann z.B. durch seine Farbe oder Anzahl der Türen beschrieben werden. Gleichzeitig können die Türen geöffnet, der Tank gefüllt oder das Auto bewegt werden. Dies sind alles Tätigkeiten, die auf das Auto angewendet werden können. Objektorientierung versucht also Objekte die in der Realität existieren zu beschreiben und in ein Modell zu fassen. Dabei kann es sich um ein Auto oder um ein komplexes System handeln. Die Umsetzung dessen nennt man auch Objektorientierte Analyse und Objektorientiertes Design und wird in Kapitel 2.3 genauer erläutert. Die Implementierung bzw. Umsetzung der OOA und des OOD erfolgt durch die OO-Programmierung (OOP). Die Hauptprinzipien der OOP sind vor allem Polymorphie, Vererbung und Kapselung. Was diese einzelnen Prinzipien bedeuten wird in Kapitel 3 dargestellt.
2.2 Entwicklung der Objektorientierten Programmierung
Die Entwicklung der OOP lag in der Programmiersprache SIMULA von 1967, welche schon ein Klassenkonzept enthielt und dessen Ableger SMALTALK von 1969.[3] Da die damalige Hardware die entsprechende Leistungsfähigkeit für die Objektorientierung noch nicht besaß, setzten sich die prozeduralen[4] Programmiersprachen durch. Die zunehmenden Qualitätsanforderungen an Software wie Funktionalität, Wiederverwendbarkeit, Benutzerfreundlichkeit, Erweiterbarkeit und niedrige Entwicklungs- und Unterhaltungskosten führten in den 1980er Jahren zu einer Kriese in der Softwareentwicklung.[5] Bereits Ende der 1970er Jahre wird SMALLTALK zur Programmierung von graphischen Benutzeroberflächen verwendet. Graphische Elemente wie z.B. Icons, Fenster, Mauszeiger und Cursor werden dabei als Objekte behandelt.[6] Die Weiterentwicklung der Hardware ermöglichte es in den Jahen nach 1980 auch die Software (C++, OBERON, TURBO-PASCAL) zu entwickeln und Anfang der 1990er Jahre vermehrt Objektorientierte Sprachen (OBJECT-COBOL, OBERON 2, JAVA) zu entwickeln und einzusetzten.[7] Seit den 1990er Jahre hat sich C++ als Objektorientierte Programmiersprache durchgesetzt und diese popularisiert. Seit Mitte der 1990er Jahre nimmt JAVA eine herausragende Rolle in der OOP neben C++ ein.[8] Abbildung 1 zeigt einen Entwicklungsverlauf der Objektorientierten Programmiersprachen.
Abbildung 1: Entwicklung der Programmiersprachen (Quelle: Friedrich (2010), S.120)
2.3 Objektorientierte Analyse und Design
Die OOA beschäftigt sich mit der Ermittlung und Beschreibung der Anforderungen an ein Softwaresystem unter Zuhilfenahme objektorientierter Konzepte. Das daraus resultierende Ergebnis ist ein OOA-Modell.[9] Ziel dieser Analyse soll ein genaues Verständnis der Anforderungen sein, die zum Systementwurf nötig sind.[10] Das Objektorientierte Design, oder auch Entwurf, beschäftigt sich mit der konzeptionellen Lösung von Hard- und Software, welche die Anforderungen erfüllen. D.h. es sollen geeignete Softwareobjekte und ihr Zusammenwirken definiert werden.[11] Ergebnis dieser Phase ist ein OOD-Modell. Damit die Flexibilität der OO Softwareentwicklung gewahrt wird, sollte die Analyse und das Design streng voneinander getrennt werden. Dies erhält die Möglichkeit der Aufgabenverteilung in unterschiedlichen Teams oder beim Outsourcing von Teilaufgaben an ein externes Unternehmen.[12] Das OOD-Modell ist im weiteren Verlauf die Grundlage der Implementierung, welche in einer oder mehreren OO-Programmiersprachen erfolgt.[13]
3 Merkmale der Objektorientierung
Wie bereits in Kapitel 2.1 angesprochen sind die wesentlichen Merkmale der OOP die Vererbung, Polymorphie und Kapselung. Zunächst soll auf die Haupteigenschaft, der Sichtweise von Objekten und Klassen eingegangen werden.
3.1 Objekte und Klassen
Objekte besitzen Eigenschaften und Fähigkeiten. Besitzen Objekte mehrere gleiche Eigenschaften und Fähigkeiten, können sie in Klassen zusammengefasst werden. So kann eine Klasse Fahrzeuge die Objekte Auto, Flugzeug und Schiff enthalten. Alle Objekte können sich bewegen und Personen oder Gegenstände transportieren. Klassen können wiederum unterteilt als Unterklasse bezeichnet werden. Eine Unterklasse von Fahrzeuge wäre z.B. Radfahrzeug. In diese Klasse kämen alle Objekte, die Räder als Antrieb benutzen. Eine weitere Unterklasse könnte Luftfahrzeug sein, in der Objekte wie Flugzeuge oder Hubschrauber vorhanden sind. Die zentralen Merkmale der OO sind erst dann nutzbar, wenn zwischen den einzelnen Klassen Beziehungen bestehen. So besteht die wichtigste Beziehung zwischen zwei Klassen, wenn eine Klasse als Unterklasse einer anderen deklariert wird.[14] Ein Beispiel dafür wäre die Klasse Radfahrzeuge, als Unterklasse der Oberklasse Fahrzeuge. Eine graphische Darstellung von Unter- und Oberklassen zeigt Abbildung 2.
[...]
[1] Vgl. Lahres/Rayman, 2009, S.13
[2] Forbrig, 2001, S.9
[3] Vgl. Hochschule-Darmstadt (11.09.2012), S.15
[4] Eine Prozedur ist ein abgegrenzter, separat aufrufbarer Bestandteil eines Programms, welches keinen Rückgabewert hat. (Vgl. Lahres/Rayman, 2008, S.29)
[5] Vgl. Hanrath (11.09.2012), S.2
[6] Vgl. o.V. Phillipps-Universität-Marburg (11.09.2012), S.356
[7] Vgl. Hanrath (11.09.2012), S.3
[8] Vgl. Balzert, 2001, S.7
[9] Vgl. Balzert, 2001, S.35
[10] Vgl. Friedrich, 2010, S.73
[11] Vgl. Larman, 2005, S.43
[12] Vgl. Balzert, 2001, S.167
[13] Vgl. Friedrich, 2010, S.75
[14] Vgl. Lahres/Rayman, 2009, S.156
- Quote paper
- Stefan Wachholz (Author), 2012, Objektorientierung und Objektorientierte Modellierung, Munich, GRIN Verlag, https://www.grin.com/document/206906
-
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X. -
Upload your own papers! Earn money and win an iPhone X.