Programme für Studienleistungen

Programmierung für Studienleistungen

Programme für Studienleistungen

Programmieren – objektorientiert oder strukturiert?

Beim Schreiben von Programmen für Studienleistungen müssen wir Kunden oft raten, ob das Programm objektorientiert oder strukturiert geschrieben werden soll. Am wichtigsten ist dabei natürlich, auf welche Weise Sie in den Lehrveranstaltungen programmieren gelernt haben, für die das bestellte Programm entstehen soll ...
Deshalb sollten eigentlich Sie uns sagen, wie das Programm für Studienleistungen geschrieben sein soll, das wir für Sie schreiben sollen. Da das sehr wichtig ist, raten wir, sich dessen sicher zu sein, denn eine falsche Entscheidung in dieser Frage kann zur Note „nicht bestanden“ in der Studienleistung führen.
Wenn der Dozent Studierenden in dieser Frage jedoch freie Hand lässt, lässt sich die Antwort ehrlich gesagt auf ein einziges Wort reduzieren – objektorientiert. Beginnen wir aber von vorn, also mit den Definitionen:
Strukturierte Programmierung ist die Weiterentwicklung des prozeduralen Programmierens; es handelt sich also um eine Methode zum Schreiben von Programmen, deren Grundlage die hierarchische Aufteilung des Codes in Module ist, die über eindeutig festgelegte Schnittstellen miteinander kommunizieren. Daten, Prozeduren und Funktionen sind nicht direkt miteinander verknüpft, und die Anweisungen werden sequenziell ausgeführt. Grundlage der strukturierten Programmierung sind Bedingungen und Schleifen, während Sprünge jeder Art – ein Überbleibsel der linearen Programmierung – als eine Art Stilbruch gelten und (zu Recht) als etwas angesehen werden, das die Lesbarkeit des Quellcodes beeinträchtigt und seine Analyse erschwert.
Die objektorientierte Programmierung wiederum ist eine Methode zum Schreiben von Computerprogrammen, die Programme über Objekte definiert, welche Daten und Verhalten des Programms vereinen (definiert in Form von Prozeduren und Funktionen, die in der objektorientierten Programmierung Methoden heißen). Ein Programm wird als Summe solcher Objekte ausgedrückt, die miteinander kommunizieren, um die dem Programm gestellten Aufgaben zu erfüllen. Das ermöglicht es, große Projekte effizient zu schreiben, indem Teams von Programmierern sie aus zusammenarbeitenden Objekten zusammensetzen, von denen jedes für einzelne Bestandteile der Software zuständig ist.
Soweit zu den objektiven Definitionen. Nun kommt die (sicher völlig unobjektive) Meinung: Meiner Ansicht nach. Obwohl die objektorientierte Programmierung dem Programmierer ein gewisses Regime und Einschränkungen auferlegt, die junge Adepten der Programmierkunst oft vom Erlernen abschrecken, bringt es unbestreitbare Vorteile mit sich, sich ein wenig Zeit zu nehmen, um die Prinzipien der objektorientierten Programmierung kennenzulernen.

Programmieren für Studienleistungen

Welche? Man könnte lange aufzählen; ich nenne nur die, die mir am wichtigsten erscheinen: Erstens kann man jedes gut objektorientiert geschriebene Programm bei späteren Arbeiten weiterverwenden, indem man die darin definierten Klassen in eine andere Anwendung übernimmt. Zweitens findet man Fehler leichter, und auch ein Programm, das man selbst vor einiger Zeit geschrieben hat, versteht man besser. Drittens ist es deutlich einfacher, den Programmcode zu ändern – anders als bei der strukturierten Programmierung, wo man oft viele Stellen des Quellcodes bearbeiten müsste, um einen winzigen Teil der Software zu korrigieren oder zu ändern, und zuvor viel Zeit damit verbringen müsste zu verstehen, was man sich dabei gedacht hatte. (Glauben Sie mir: Auch selbst geschriebene Programme erscheinen uns nach einigen Monaten, und erst recht nach Jahren, völlig fremd und oft auch unverständlich.)
Außerordentlich wichtig erscheinen die Möglichkeiten, die sich aus dem objektorientierten Ansatz für Daten und dem objektorientierten Schreiben von Programmen für ganze Entwicklerteams ergeben – Menschen, die sich in der realen Welt oft nicht einmal kennen, aber gemeinsam riesige Anwendungen entwickeln und sich dabei nur über Beschreibungen der Schnittstellen der Methoden einer Klasse verständigen, ohne sich darum kümmern zu müssen, was im Inneren geschieht. Ein weiterer Vorteil der objektorientierten Programmierung ist, dass der Code lesbar und übersichtlich ist: Ein Blick in die Definitionsdatei genügt, und nach kurzer Zeit weiß man, wofür eine Klasse oder Methode zuständig ist,
Ganz anders verhält es sich bei der strukturierten Programmierung: Vor allem ist es außerordentlich schwer, bei größeren Anwendungen übersichtlichen Code zu erhalten; zweitens ist ein einmal geschriebener Code nicht wiederverwendbar, denn ihn für andere Zwecke anzupassen erfordert meist sehr viele Korrekturen an vielen verschiedenen Stellen. Deshalb eignet sich ein strukturiert geschriebenes Programm kaum für eine erneute Verwendung – meist kostet es den Programmierer weniger Zeit, eine neue Klasse von Grund auf zu schreiben, als sich endlos in altem Code herumzuschlagen.
Trotz dieser offensichtlichen Tatsachen lehrt man an unseren Hochschulen deutlich häufiger strukturierte Programmierung, und genau solche Programme für Studienleistungen erwartet man von den Studierenden. Natürlich gilt das nicht für Informatikstudiengänge, wo die objektorientierte Programmierung bereits Standard ist; in Studiengängen, die nicht unmittelbar mit Informatik zu tun haben, ist sie jedoch nach wie vor eine Seltenheit.
Zum Abschluss dieses Artikels möchte ich der Hoffnung Ausdruck verleihen, dass die wenigen Worte, die ich geschrieben habe, Sie davon überzeugen, objektorientiertes Programmieren zu lernen. Ich habe keine Illusionen, das Thema erschöpfend behandelt zu haben – ich habe nur einen Teil der Fragen angesprochen und nur einen winzigen Ausschnitt der Vorteile der objektorientierten Programmierung beschrieben. Es gibt weit mehr davon, was Sie bei der Arbeit an konkreten Aufgaben selbst entdecken werden (besonders wenn Sie in Gruppen arbeiten müssen).

Weitere Materialien zum Schreiben von Computerprogrammen