Dein letzter Login ist schon eine Weile her.

Bitte überprüfe, ob alle Angaben in Deinem Profil noch aktuell sind.


15.03.2018
von Jan-Dirk
in IT-Talents

prozedurale vs. objektorientierte Programmierung

x
Für Unternehmen:
IT-Nachwuchs kennenlernen!
Jetzt starten

Objektorientierte Programmierung (OOP) und prozedurale Programmierung sind zwei Programmierparadigmen.

Objektorientierte Programmierung (OOP) und prozedurale Programmierung sind zwei Programmierparadigmen. Ein Programmierparadigma ist ein grundlegender Stil beziehungsweise Herangehensweise der Computerprogrammierung. Diese unterscheiden sich darin, wie verschiedene Elemente des Programms konzeptionell dargestellt und umgesetzt werden, aber auch im Hinblick darauf, wie die zum Lösen von Problemen erforderlichen Schritte definiert sind.

Lesezeit: ca. 7 Min.

Bewerten

Themen auf dieser Seite:

Wie der Name schon sagt, konzentriert sich OOP auf das Darstellen von Problemen unter Verwendung quasi realer Objekte, denen ein bestimmtes Verhalten zueigen ist, während die prozedurale Programmierung Problemlösungen unter Verwendung von Prozeduren abbildet. Prozeduren sind dabei zusammengefasste Anweisungen, die in einer bestimmten Reihenfolge ablaufen. Es gibt Programmiersprachen, die Schlüsselaspekte von OOP (OOP-Sprachen genannt), Prozeduraler Programmierung (Prozedursprachen) oder auch von beiden Konzepten unterstützen. Im Grunde sind OOP und Prozedural zwei Möglichkeiten zur Darstellung von Problemlösungen, dabei spielt es zunächst keine Rolle, welche Sprache verwendet wird. Mit anderen Worten: OOP-Sprachen können für prozedurales Programmieren verwendet werden, während prozedurale Sprachen - manchmal mit einiger Mühe - für OOP verwendet werden können.

IT-Talents.de ist Deine Plattform für Förderung und Weiterbildung während des IT-Studiums!
Fördermöglichkeiten ansehen


Was ist prozedurale Programmierung?

Prozedurales Programmieren ist eine Art des Programmierens bei der angestrebt wird, ein bestimmtes Problem zu lösen, indem man die Menge der dazu benötigten Schritte und deren Abfolge bestimmt, um das gewünschte Ergebnis oder den gewünschten Zustand zu erreichen. Eines der Hauptkonzepte der prozeduralen Programmierung ist der Prozeduraufruf. Eine Prozedur, die auch als Subroutine, Methode oder Funktion bezeichnet wird, enthält eine geordnete Liste von auszuführenden Anweisungen. Eine Prozedur kann jederzeit während der Ausführung durch eine andere Prozedur oder für sich selbst aufgerufen werden. Beispiele für typische prozedurale Programmiersprachen sind C und Pascal.

Programme bestehen oft aus Modulen, die Teile eines Programms sind, die separat codiert und getestet werden können und dann zu einem vollständigen Programm zusammengesetzt werden. In prozeduralen Sprachen (etwa C) sind diese Module Prozeduren, wobei eine Prozedur eine Abfolge von Anweisungen ist. In C zum Beispiel sind Prozeduren eine Folge von imperativen Anweisungen, wie Zuweisungen, Tests, Schleifen und Aufrufe von Unterprozeduren. Diese Prozeduren sind Funktionen, die Argumente entgegennehmen und letztendlich abhängige Rückgabewerte liefern.

Eine Alternative zur prozeduralen Programmierung ist die objektorientierte Programmierung. Die objektorientierte Programmierung soll die Schwierigkeiten, die bei der prozeduralen Programmierung entstehen können, reduzieren. In der objektorientierten Programmierung sind die Hauptmodule in einem Programm Klassen und nicht Prozeduren. Mit dem objektorientierten Ansatz können Entwickler Klassen und Objekte erstellen, die reale Objekte modellieren.

Was ist objektorientierte Programmierung?

Objektorientierte Programmierung ist ein Programmierparadigma, das in erster Linie auf Abstraktion (in Form von Klassen und Objekten) zurückgreift, um auf der realen Welt basierende Modelle zu erstellen. Eine objektorientierte Anwendung verwendet eine Anzahl von Objekten, die kommunizieren, indem sie Nachrichten an entsprechende Funktionen zur Annahme solcher übergeben. Objekte können Nachrichten weiterleiten, Nachrichten empfangen und Daten verarbeiten. Ziel der objektorientierten Programmierung ist es, die Flexibilität und die Wartbarkeit von Programmen zu erhöhen. Da Programme, die mit einer OO-Sprache erstellt wurden, modular sind, können sie einfacher verteilt entwickelt und nach der Entwicklung einfacher verstanden werden.

Bei OOP liegt der Fokus darauf, sich mit dem zu lösenden Problem bezugnehmend auf Elemente der realen Welt zu befassen und das Problem in Bezug auf diese Objekte und ihr Verhalten darzustellen. Ein Objekt ist eine Datenstruktur, die einem realen Objekt sehr ähnlich ist. Objekte enthalten Datenfelder und Methoden, die Attribute und das Verhalten realer Objekte darstellen. Es gibt mehrere wichtige OOP-Konzepte wie die Datenabstraktion, Kapselung, Polymorphie, Messaging, Modularität und Vererbung. Einige populäre OOP-Sprachen sind Java und C# - abgesehen davon, dass es mindestens eine übergeordnete "Rahmen-Klasse" ("main") geben muss können diese jedoch prinzipiell auch zur prozeduralen Programmierung verwendet werden.

Objekte der realen Welt teilen alle zwei Eigenschaften: Sie alle haben Zustand und Verhalten. Eine objektorientierte Denkweise besteht darin, den Zustand und das Verhalten realer Objekte zu identifizieren. Die Komplexität von Objekten kann unterschiedlich sein, manche Objekte haben mehr mögliche Zustände und komplexere Verhaltensweisen als andere Objekte. Software-Objekte sind realen Objekte konzeptionell ähnlich. Ein Objekt speichert seinen Zustand in Datenfeldern und definiert Verhaltensweisen über seine Methoden.

Auf IT-Talents.de kannst Du Dich mit dem Who-is-Who der IT-Branche vernetzen!
Jetzt Top-Unternehmen anschauen


Klassen und Objekte

Eine Klasse definiert die Gesamtheit von Objekten einer bestimmten Art, mit gemeinsamen Eigenschaften, Operationen und Verhalten. In objektorientierten Sprachen ist eine Klasse ein Datentyp und Objekte sind Instanzen dieses Datentyps. Mit anderen Worten, Klassen sind Baupläne oder Prototypen, aus denen konkrete Objekte erstellt werden.

Wir können zum Beispiel eine Klasse "Mensch" entwerfen, die eine Sammlung aller Menschen auf der Welt ist. Menschen haben einen Zustand der von Eigenschaften wie Größe, Gewicht und Haarfarbe bestimmt wird. Sie haben auch gemeinsame Verhaltensweisen, wie Gehen, Sprechen, Essen. Der gesamte Zustand und das Verhalten eines Menschen ist innerhalb der menschlichen Klasse eingekapselt (enthalten). Ein Objekt ist eine Instanz einer Klasse. Objekte sind Einheiten der Abstraktion - Zur Laufzeit kann ein Programm theoretisch zu beliebigen Zeitpunkten und in beliebiger Anzahl nach dem Bauplan der Klasse Mensch neue Mensch-Objekte erzeugen. Ein Objekt kann über Nachrichten mit anderen Objekten kommunizieren; Ein Objekt übergibt eine Nachricht an ein anderes Objekt, was zum Aufruf einer Methode führt. Objekte führen dann die Aktionen durch, die erforderlich sind, um eine Antwort vom System zu erhalten.

Gegenüberstellung und Besonderheiten

Der Hauptunterschied zwischen OOP und prozeduraler Programmierung ist, dass der Schwerpunkt der prozeduralen Programmierung darin liegt, die Programmieraufgabe in eine Sammlung von Variablen und Subroutinen aufzuteilen, während der Fokus von OOP darin besteht, die Programmieraufgabe in "natürliche" Objekte zu zerlegen, die Daten und Methoden kapseln. Der auffälligste Unterschied könnte darin bestehen, dass während der prozeduralen Programmierung Prozeduren verwendet werden, um direkt mit Datenstrukturen zu arbeiten, OOP die Daten und Methoden so miteinander verknüpft, dass ein Objekt mit seinen Merthoden auf eigenen Daten arbeitet und seinen eigenen Zustand verändert. Wenn es um die Nomenklatur geht, werden Prozedur, Modul, Prozeduraufruf und Variable aus der prozeduraler Programmierung im OOP-Kontext gerne als Methode, Objekt, Nachricht und Attribut bezeichnet.

Bei der Planung des Entwurfs eines objektorientierten Programms beginnt ein Entwickler normalerweise mit einer Liste von Klassen, die in das Programm aufgenommen werden müssen. Für ein Notensystem etwa gäbe es Klassen für Benutzer, Klassen, Schulen usw., je nachdem, welche Daten im System gespeichert wurden oder künftig gespeichert werden sollen und wie sich die Daten zueinander verhalten.

Sobald ein Entwickler eine Vorstellung davon hat, welche Klassen in der Anwendung verwendet werden sollen, wird er das System normalerweise mithilfe von Diagrammen wie dem Klassendiagramm zeichnen, um das System zu veranschaulichen. Während dieses Prozesses kann der Entwickler Änderungen am System vornehmen und auf Fehler in der Funktionalität prüfen. Wenn sich der Entwickler an einem Diagramm orientiert, das die benötigten Klassen einschließlich der Funktionen und Methoden beschreibt, werden durch die Visualisierung die Zusammenhänge präsenter und das Identifizieren und Lösen konzeptioneller Probleme gestaltet sich oft einfacher.

Die Entwurfsmethode, die vorwiegend bei der prozeduralen Programmierung verwendet wird, wird als Top Down Design bezeichnet. Hier beginnst Du den Entwurf ausgehend von einem Problem (Vorgehen) und brichst dann das Problem systematisch in Teilprobleme (Teilprozeduren) auf. Dies wird als funktionale Dekomposition bezeichnet, die so lange fortdauert, bis ein Teilproblem einfach genug ist, um durch die entsprechende Unterprozedur gelöst zu werden. Die Schwierigkeit bei dieser Art der Programmierung besteht darin, dass die Wartung der Software schwierig und zeitaufwendig sein kann. Wenn Änderungen an der Hauptprozedur vorgenommen werden (oben), können diese Änderungen auf die Unterprozeduren von Haupt- und Unterprozeduren usw. übergehen, wobei die Änderung sich auf alle Prozeduren in der Pyramide auswirken kann.

Wenn Du willst: IT-Talents.de ist Dein Headhunter! Unser Team macht sich für Dich auf die Suche nach dem passenden Arbeitgeber. Bequem und persönlich.
Jetzt JobScout anschauen


Einsatzgebiete/Fazit

Ein Vorteil der objektorientierten Programmierung besteht darin, dass der einmal geschriebene Code künftig vergleichsweise leicht gepflegt und modifiziert werden kann, zum Beispiel weil neue Klassen entworfen werden können, die Eigenschaften und Verhalten von bereits existierenden Klassen erben. Dies verkürzt die Entwicklungszeit erheblich und erleichtert die Anpassung des Programms an eine sich ändernde Umgebung oder neue Anforderungen.

Im Gegensatz zur objektorientierten Programmierung, bei der Objekte und Klassen im gesamten Programm referenziert werden können, müssen die Probleme, die in der prozeduralen Programmierung gelöst werden, während der Ausführung des Programms individuell adressiert werden. Bei der Entwicklung mit prozeduraler Programmierung kann ein Entwickler auch einen völlig anderen Ansatz zum Entwerfen einer Anwendung wählen. Die prozedurale Programmierung erfordert beim Schreiben einer Anwendung einen Top-down-Ansatz. Während ein Entwickler, der objektorientierte Programmierung zum Erstellen von Anwendungen verwendet, das Programm mit wiederverwendbaren Klassen plant, kann ein Entwickler, der prozedurale Programmierung verwendet, das Programm ohne dieses Konzept des "Code-Recyclings" planen. Auch bei der prozeduralen Programmierung ist Planung involviert, erfordert aber einen weniger abstrakten Ansatz. Im Fall eines Bewertungssystems würde das beispielsweise bedeuten, anstatt darüber nachzudenken, welche Klassen oder Objekte mit Funktionen und Methoden verwendet werden müssen, den Fokus darauf zu legen, welche Anweisungen in welcher Reihenfolge abgearbeitet werden sollen, wenn der Code letztendlich ausgeführt wird.

Aktuelle Aktionen:

IT-Stipendium Februar 2020 NRW

1200€ Förderung für IT-Talente aus NRW


Stipendium über 1200€ - Exklusiv für IT-Talente aus NRW!
Jetzt bewerben!

IT-Stipendium Februar 2020

1200€ Förderung für IT-Talente


Sei dabei und sichere Dir im bundesweiten IT-Stipendium Februar 2020 bis zu 1200€ Förderung.
Jetzt bewerben!

IT-Talents ist ein Netzwerk nur für IT'ler. Auf unserer Plattform kannst Du Dich als registriertes Mitglied mit wenigen Klicks auf die Jobs unserer Partnerunternehmen oder auf IT-Projekte für Studierende bewerben. Darüberhinaus führen wir Wettbewerbe durch und vergeben IT-Stipendien.

Jetzt Mitglied werden.

Verwandte Artikel

Computerarbeit und die gesundheitlichen Risiken

09. Oct 2019 in IT-Talents

Die Arbeit am Computer nimmt in den meisten Teilen der Berufswelt inzwischen einen unverzichtbaren Platz ein, in der…

weiter

Was ist SAP BPC?

12. Sep 2019 in Software

Der Unternehmenserfolg hängt nicht nur von der Nachfrage an Produkten und Dienstleistungen ab. Es ist auch das Ergebnis …

weiter

Was ist eine E-Mail und wie funktioniert sie?

19. Aug 2019 in IT-Talents

Mittlerweile haben sich E-Mails auf der ganzen Welt durchgesetzt und lösen Briefe, Faxe und Telegramme immer mehr ab. …

weiter

Was ist Docker?

13. Aug 2019 in IT-Talents

Docker bietet Entwicklern die Möglichkeit, dass ihre Arbeiten, wie entwickelte Softwares oder geschriebene Codes auf …

weiter

6 tolle Bücher über Informatik

02. Aug 2019 in IT-Talents

In der Informationstechnik (IT) wird ein solides Fachwissen benötigt. Niemand kann sich darauf verlassen, dass sein …

weiter

Was ist TensorFlow?

26. Jul 2019 in IT-Talents

Programmierer nutzen TensorFlow als Framework um verschiedene Modelle für das maschinelle Lernen zu entwickeln. …

weiter

Was macht ein IT-Auditor?

17. Jul 2019 in IT-Talents

Was genau macht eigentlich ein IT-Auditor? In diesem Artikel schlüsseln wir nicht nur die Verantwortlichkeiten eines …

weiter

Was ist E-Commerce?

13. Jul 2019 in IT-Talents

E-Commerce, auch Internethandel oder Onlinehandel genannt, ist der Fachbegriff für jegliche Ein- und Verkaufsvorgänge, d…

weiter

E-Commerce Manager - der Beruf, die Aufgaben und das Gehalt

05. Jul 2019 in IT-Talents

E-Commerce, also der Handel im Internet, nimmt eine immer größere Bedeutung in der heutigen Gesellschaft ein. Dadurch w…

weiter

Schnell-Login für unsere Mitglieder

Tipp: Halte Dein Profil aktuell.

Lass' uns wissen, falls sich etwas Neues bei Dir ergibt.

Tipp: Vervollständige Dein Profil für noch bessere Karrierechancen.

Bist Du Schüler, Student oder bereits berufstätig? Teile uns Deinen aktuellen Status mit, damit wir Dir sinnvolle Aufgaben anbieten können.

Jetzt Status angeben

Wann stehst Du der IT-Branche zur Verfügung?

Bitte Monat und Jahr angeben.

{{ perspectiveForm.availableFrom.$error.dynamic }}

Neuer Versuch

Wo möchtest Du durchstarten?

{{ location.geolocation.name }}×
Bitte mindestens ein Ort angeben.

Als {{currentUser.status.title}} bist Du bereit für:


Lade Beschäftigungsarten

Bitte wähle den Zeitpunkt, Ort und min. eine Beschäftigungsart aus.

You have voted!
Schliessen
Vote for:
stars
Vote
You have not rated!