Fachhochschule Wiesbaden
Fachbereich Informatik
Prof. Dr. Reinhold Kröger
Betriebssysteme, Verteilte Systeme
Hinweise
zur Strukturierung einer Diplomarbeit
1. Allgemeines
Eine Diplomarbeit schreibt man nur einmal, von Ausnahmen abgesehen. Insofern haben
Sie sicher keine persönliche Erfahrung, die Ihnen als Maßstab für eine "gute" Struktur
Ihrer Diplomarbeit dienen könnte. Im folgenden sollen einige Regeln angegeben
werden, die Sie als Leitlinien betrachten können. Im Einzelfall kann durchaus von
diesen abgewichen werden.
Nicht betrachtet werden im folgenden Formatierungskonventionen. Hierzu gibt es
gewisse Vorgaben des Fachbereichs, die aber nicht vollständig sind. Sie sollten für Ihr
Textsystem einen Standardsatz von Formaten verwenden, wie er für technische Berichte
üblich ist.
In der Regel bestehen Diplomarbeiten, die ich vergebe, aus einem konzeptionellen und
einem praktischen Teil. Nur auf solche Diplomarbeiten beziehen sich die folgenden
Aussagen. Für reine Literaturarbeiten gelten sie nicht.
Der Leser einer Diplomarbeit hat i.d.R. eine gewisse Erwartung. Die folgenden
Leitlinien beschreiben sicherlich meine persönlichen Erwartungen, andererseits sind sie
sicherlich so allgemein, daß sie auch für andere Leser, z.B. Ihren zukünftigen
Arbeitgeber, gelten.
Meine bisherige Erfahrung mit Studenten der fhw zeigt, daß Sie durch Ihr Studium,
durch das geforderte Praktikum und auch durch eine Erwerbstätigkeit während des
Studiums i.d.R. mit dem praktischen Teil der Diplomarbeit kaum Schwierigkeiten
haben, Probleme bestehen aber häufig bei der Erstellung der eigentlichen Diplomarbeit.
Hier werden oft Schwächen in Hinblick auf eine geordnete Gedankenführung, in der
Ausdrucksfähigkeit und leider auch bzgl. der Rechtschreibung und Zeichensetzung
deutlich. Für die beiden letzten Punkte gibt es hier keine Hilfe. Wenn Sie
Schwierigkeiten mit Rechtschreibung und Zeichensetzung haben, verwenden Sie
Rechtschreibhilfen Ihres Textsystems oder binden Sie Ihre Familie mit ein. Von
Hochschulabsolventen erwartet man mit Recht einen nahezu fehlerfreien Text. Zur
Überprüfung der Ausdrucksfähigkeit bin ich gerne bereit, vorab einen Teil der
Diplomarbeit als Leseprobe entgegenzunehmen. Bedenken Sie immer, daß eine
Diplomarbeit eine wissenschaftliche Arbeit ist, kein Roman und (hoffentlich auch) kein
Drama. Gefordert sind also eine sachliche Ausdrucksweise, Objektivität und Exaktheit
in der Darstellung sowie Einsichtigkeit und Folgerichtigkeit der dargestellten
Zusammenhänge. Sparen Sie nicht mit Graphiken, die geschriebenen Text durch
Veranschaulichung oft viel einfacher erfaßbar machen. Der Entwurf einer Graphik kann
auch den Effekt haben, daß Ihnen selbst Zusammenhänge viel deutlicher werden, was
das anschließende Schreiben des Textes vereinfacht. Scheuen Sie sich nicht, Wertungen
abzugeben, trennen Sie diese aber sauber vom sonstigen Text.
Ihre Diplomarbeit soll eine in sich abgeschlossene wissenschaftliche Arbeit werden. Sie
sollen zeigen, daß Sie mit Ihnen bekannten wissenschaftlichen Methoden, die Sie im
Verlaufe Ihres Studiums erlernt haben, ein Ihnen vorher unbekanntes Thema mit Bezug
zu einer für die Praxis relevanten Aufgabenstellung erfolgreich bearbeiten können. Die
eigentliche Diplomarbeit ist dabei von großer Bedeutung. Denken Sie bei allen
Aktivitäten im Rahmen der Diplomarbeitsphase daran, daß Sie am Ende auch einen
Text haben müssen und nicht nur ein lauffähiges Programm. Machen Sie sich daher
auch in der Einarbeitungsphase Notizen, fassen sie gelesene Literatur zusammen,
dokumentieren Sie Entwurfentscheidungen. Sie profitieren hiervon wieder, wenn Sie
den Text Ihrer Diplomarbeit erstellen. Um dem Anspruch nach Wissenschaftlichkeit zu
genügen, muß die Diplomarbeit mehr sein als eine reine Dokumentation Ihrer
praktischen Arbeiten. Dies schlägt sich in der Struktur der Arbeit nieder.
2. Zur Gliederung
Formal gesehen, hat jede Diplomarbeit folgende Bestandteile, die Sie auch als
generisches Inhaltsverzeichnis verstehen können:
Vorwort (optional)
Inhaltsverzeichnis
Verzeichnis der Bilder und Tabellen (optional)
1. Einleitung
2. Konzeptteil
3. Implementierungsteil
4. Anwendungsbeispiele, -szenarien, Messungen
5. Zusammenfassung und (optionaler) Ausblick
6. Literaturverzeichnis
Anhang/Anhänge
Konzeptteil und Implementierungsteil können dabei, je nach Erfordernis, aus einem
oder mehreren Kapiteln bestehen. Streben Sie eine Gesamtlänge von ca. 100 Seiten
ohne Anhänge an. Konzept- und Implementierungsteil machen zusammen etwa zwei
Drittel des Gesamtumfangs aus. Die Einleitung führt zur eigentlichen Arbeit hin. Sie
wirkt, bildlich gesprochen, wie ein Trichter: alle für die Arbeit relevanten
Problembereiche werden hineingesteckt, heraus kommt die fokussierte Themenstellung
Ihrer Arbeit. Die Arbeit nimmt in ihrem Detaillierungsgrad zu. Lediglich in
Zusammenfassung und Ausblick weitet sie sich wieder ins Allgemeine.
Vorwärtsverweise sollten Sie möglichst vermeiden. Wenn Sie meinen, solche zu
benötigen, untersuchen Sie, ob Sie sie nicht durch Umstellung umgehen können.
Rückwärtsverweise sollten dagegen auftreten. Sie verankern den Konzeptteil mit der
Einleitung, die Implementierung mit dem Konzept, Beipiele mit Konzept und
Implementierung. Die Arbeit sollte auch einen geschlossenen Eindruck auf einer
bestimmten Abstraktionsebene bieten, ohne daß ein Leser gezwungen ist, die gesamte
Arbeit zu lesen. Es sollte möglich sein, nur die Einleitung, eventuell zusammen mit
Zusammenfassung und Ausblick, zu lesen, um sich einen Überblick über die Ergebnisse
der Arbeit zu verschaffen. Jemand, der sich nicht für die Implementierung interessiert,
sollte mit Einleitung und Konzeptteil einen detaillierten Einblick in die verwendeten
Konzepte und entwickelten Algorithmen Ihrer Arbeit gewinnen können, das Für und
Wider der verschiedenen Entwurfsalternativen sehen sowie die Begründung für den
ausgewählten Ansatz finden. Achten Sie darauf, daß im Implementierungsteil keine
neuen Konzepte vorgestellt oder gar neue Begriffe eingeführt werden. In einem solchen
Fall deutet alles darauf hin, daß der Konzeptteil unvollständig ist. Wer sich schließlich
für die Güte der Implementierung interessiert oder Detailabläufe anhand beispielhafter
Szenarien verstehen will, muß sicherlich die ganze Arbeit lesen.
Im folgenden sollen die einzelnen Abschnitte etwas detaillierter betrachtet werden.
Dabei wird von einer "idealen" Diplomarbeit ausgegangen. "Ideal" bezieht sich dabei
nicht nur auf Ihre Leistung, sondern auch auf das gestellte Thema, das entsprechend den
dargelegten Punkten auch etwas hergeben muß. Versuchen Sie nicht, künstlich an
Stellen etwas zu erzeugen, wo nichts zu holen ist.
3. Das Vorwort
Das optionale Vorwort kann ein paar persönliche Gedanken zur Arbeit enthalten, zum
Umfeld, in dem die Arbeit entstand (insbesondere bei externen Diplomarbeiten),
Zusammenhang dieser Arbeit mit anderen Arbeiten, z.B. bei Einbettung in ein internes
oder externes Projekt. Üblich sind auch Danksagungen an Sponsoren, an die Oma für
Korrekturlesen etc., Danksagungen an die Betreuer kommen auch vor. Auf Floskeln
lege ich persönlich keinen Wert. Mein Ziel ist es, daß Sie mit der Betreuung zufrieden
sind. Das Vorwort macht keine Aussagen zum Inhalt der Arbeit.
4. Die Einleitung
Ziel der Einleitung ist es, zum eigentlichen Thema der Arbeit hinzuführen sowie dem
Leser einen inhaltlichen Überblick über die Arbeit zu geben. Die Einleitung muß von
jedem Informatiker verstanden werden können. Abstaktionsniveau, Sprache usw. sind
also entsprechend zu wählen. Fangen Sie aber nicht bei "Adam und Eva" an. Als
Anhaltspunkt können Sie alles das voraussetzen, was in den Pflichtveranstaltungen Ihres
Studiums behandelt wurde. Die über den Satz an "Grundbegriffen" hinausgehende
Fachsprache muß eingeführt werden.
Die verschiedenen "Quellbereiche" für Probleme und Lösungsansätze können in
verschiedenen Abschnitten (Unterkapiteln) dargelegt werden. Sie spannen mit der
Einleitung den Raum auf, in dem Sie sich im Konzeptteil Ihrer Arbeit bewegen. Hieraus
muß die fokussierte Problemstellung Ihrer Arbeit erwachsen. Belegen Sie, wenn
möglich, daß Sie ein wichtiges Problem angehen (neuer Algorithmus, wirtschaftlichere
Lösung, Qualität der Lösung, Verbesserung der Umwelt-verträglichkeit einer Lösung,
Verbesserung der Lehre). Geben Sie die Highlights Ihrer Arbeit an. Die Einleitung muß
für den Leser die Frage beantworten, ob sich für ihn das Lesen weiterer Kapitel oder der
gesamten Arbeit lohnen könnte. Sie sollten also angeben können, für wen Sie was "im
Sack" haben. Im Überblick über den Rest der Arbeit sollten die prinzipielle Lösung, die
Highlights usw. sichtbar werden. Sie geben dem Leser damit eine Orientierung, wo er
die ihn eventuell interessierenden Dinge findet. Üblich ist, dabei kapitelweise
vorzugehen. Der "rote Faden" Ihrer Arbeit sollte dann jedem Leser offensichtlich
werden.
5. Der Konzeptteil
Der Konzeptteil kann formal aus einem oder mehreren Kapiteln bestehen. Er beschreibt
die Lösungsmethode (Algorithmen usw.), mit der die Aufgabenstellung der
Diplomarbeit gelöst wird. Der Hauptteil sollte von jedem Informatiker, der in dem
Gebiet arbeitet, in dem die Diplomarbeit angesiedelt ist, ohne Probleme gelesen werden
können. Das sollte auch auf Ihre Kommilitonen zutreffen, die die entsprechenden
Vertiefungsfächer absolviert haben (Testleser für Ihre Arbeit!).
Ein erster wesentlicher Teil des Konzeptteils ist häufig die sogenannte State-of-the-Art-
Diskussion, die darlegt, wie existierende Lösungen, Standards, Forschungsansätze usw.
für die gegebene oder verwandte Aufgabenstellungen aussehen. Hierzu ist häufig eine
mehr oder weniger umfangreiche Literaturarbeit notwendig. Versuchen Sie (anhand der
Literatur), die in der Einleitung eingeführte Begriffswelt und den Problem- und
Lösungsraum so zu konkretisieren (zu verfeinern), daß sie im Idealfall die existierenden
Lösungsansätze hierin einordnen können. Im Idealfall haben Sie also ein einheitliches
Gedankengebäude, indem sie die verschiedenen Ansätze darstellen können, und die
Verschiedenartigkeit der Begriffswelt und der Darstellung in den verschiedenen
verwendeten Quellen löst sich für den Leser auf, so daß er die eigentlichen
Unterschiede schnell erkennen kann. Geben Sie dabei Hilfestellungen ("Der im Ansatz
x benutzte Begriff y entspricht dem Begriff Z im allgemeinen Modell, bis auf..."). Das
Finden solcher "Abbildungen" (im mathematischen Sinne) ist eine schwierige Aufgabe,
die oft viel Zeit erfordert. Gelingt es Ihnen aus eigener Kraft, haben Sie eine große
intellektuelle Leistung vollbracht. Aus Zeitgründen sollten Sie i.d.R. versuchen,
entsprechende Übersichtsartikel oder Lehrbücher zu finden. Ist es eine gute Quelle in
dieser Hinsicht, hat der Autor die Arbeit für Sie gemacht (Sie können sich natürlich
auch nichts mehr damit verdienen). Wenn Sie Literaturstellen bearbeiten, machen Sie
sich unbedingt Notizen, die Sie beim späteren Zusammenschreiben der Arbeit
verwerten können. Ansonsten haben Sie bis dahin alles vergessen und müssen die
Quelle nochmals durcharbeiten.
Alle Lösungsansätze haben i.d.R. Vor- und Nachteile. Diese müssen sie finden und
darstellen. Seien Sie kritisch! Autoren haben die Tendenz, ihre Ansätze positiv
erscheinen zu lassen. Von einer wissenschaftlichen Arbeit (auch von Ihrer
Diplomarbeit) erwartet man zwar Objektivität, aber auch Wissenschaft muß ihre
Produkte "verkaufen". Die Super-Duper-Lösung mit ausschließlich Vorteilen gibt es nur
selten (es sei denn, es ist ein Microsoft-Produkt). Damit kommen sie insgesamt zu einer
Bewertung der Ansätze untereinander, und Sie haben später die Möglichkeit, den von
Ihnen verfolgten Ansatz bzgl. Stärken, Schwächen, Neuigkeitsgehalt, Randbedingungen
usw. einzuordnen.
Der zweite wesentliche, in der Regel umfangreichere Teil des Konzepts betrifft Ihren
eigenen Ansatz. Es können Randbedingungen verschiedener Art bis hin zu von Ihnen
nicht zu vertretenden Design-Vorgaben vorliegen. Auch implementierungsbezogene
Randbedingungen können den für Ihre Arbeit bleibenden Lösungsraum einschränken.
Zur Beschreibung Ihres Ansatzes sollten Sie außer verbalem Text hier alle formalen
Methoden einsetzen, die sie kennengelernt haben, die den Spezifikations- und
Modellierungsaspekt unterstreichen: mathematische Beschreibungsformen, formale
Spezifikationssprachen, Entity-Relationship-Modelle, objektorientierte Modellierung,
Petrinetze, Schichtenmodelle, Zustands-übergangsdiagramme, Protokollautomaten,
Flußdiagramme, Ablaufdiagramme, Graphen, elektrische Schaltungen, und was es sonst
noch so alles gibt. Implementierungsbezogene Beschreibungen (C structs usw.) gehören
nicht hierhin. Die Auswahl von formalen Hilfsmitteln zur Beschreibung hängt vom
Problemfeld ab. Die gewählten formalen Hilfsmittel sollten zweckmäßig und
aussagekräftig sein. Haupziel für ihren Einsatz ist es m.E., komplexe Zusammenhänge
möglichst exakt und zweifelsfrei darzustellen.
Verwenden Sie bei der Beschreibung die in der Einleitung und die in der State-of-the-
Art-Diskussion eingeführte Begriffswelt, Sie verankern den Text damit mit früheren
Teilen. Wenden Sie erlernte Vorgehensmodelle für den Softwareentwurf an. Gehen Sie
über entstehende Alternativen bei der Entstehung der Arbeit nicht einfach hinweg.
Dokumentieren Sie Ihre Entwurfsentscheidungen. Sollten Sie in eine Sackgasse geraten,
haben Sie die Möglichkeit zu einem geordneten Back-Tracking. Unter Zeitdruck kann
man schnell nervös werden, wenn man irgendwann die Einsicht gewinnt, daß man an
der selben Stelle vor einer Woche schon mal war. In der eigentlichen Diplomarbeit
sollten Sie die Alternativen aufzeigen und den gewählten Weg begründen.
An Ende des Konzeptteils sollte der Leser im Idealfall genau wissen, welchen
Randbedingungen und Vorgaben bestanden, welche Alternativen für Lösungsansätze
mit welchen Vor- und Nachteilen vorhanden waren, welchen Ansatz Sie gewählt haben,
warum sie sich für den eingeschlagenen Weg bei Vorhandensein mehrerer Alternativen
entschieden haben, wie Ihre Lösung im Detail aussieht, welche Probleme sie löst,
welche prinzipiellen Einschränkungen, Vor- und Nachteile sie hat, usw.
6. Der Implementierungsteil
Der Implementierungsteil kann formal ebenfalls aus einem oder mehreren Kapiteln
bestehen. Er beschreibt, welche Teile des Konzepts wie implementiert worden sind. Die
Implementierung muß nicht notwendigerweise das vollständige Konzept umfassen, z.B.
wenn die Implementierungs-arbeiten den Umfang einer Diplomarbeit sprengen würden.
Der Implementierungsteil sollte nach Lesen des Konzeptteils verständlich sein.
Zu Beginn des Implementierungsteils sollten Sie die Implementierungsumgebung(en)
(Rechner, Betriebssysteme, Programmiersprachen, Entwicklungsumgebungen,
verwendete Programmpakete und Bibliotheken, sonstige Werkzeuge usw.) angeben und
unter Umständen erläutern, wenn diese nicht allgemein bekannt sind.
Im Implementierungsteil wird ausschließlich die Realisierung des im Konzeptteil
vorgestellten Ansatzes in der angegebenen Implementierungsumgebung betrachtet.
Einschränkungen im Umfang der Implementierung gegenüber dem Konzeptteil müssen
detailliert beschrieben werden. Es dürfen keine Erweiterungen des Konzeptteils
auftreten. Sie können allerdings neue, auschließlich implementierungsbezogene
Begriffe einführen, Alternativen aufzeigen und die Auswahl begründen. Aus meiner
Sicht ist es kein Verdienst, existierenden Code und existierende Werkzeuge nicht zu
verwenden, um alles selbst geschrieben zu haben. (Dies hat nur dann einen Sinn, wenn
es das Ziel ist, damit langfristig Lizenzgebühren einzusparen). Nutzen Sie, wenn
sinnvoll, public domain Programme, (Klassen-)Bibliotheken und Werkzeuge wie lex
und yacc. In der Zeit, wo Sie das Rad neu implementieren, hätten Sie etwas
Sinnvolleres machen können.
Stellen Sie die Verankerung zu dem vorhergehenden Konzeptteil sicher. Beziehen Sie
Implementierungseinheiten (Moduln, Klassen, Protokolle..) auf die entsprechenden
Konzeptteile. Dieses kann u.U. auch durch die gleiche Untergliederungsstruktur
unterstützt werden.
Es ist bei softwaremäßigen Implementierungen nicht notwendig, den vollständigen
Quellcode im Implementierungsteil anzugeben. (Dieser wird als Anhang in Form einer
Diskette Bestandteil der Arbeit). Für wesentliche Programmteile, Kerne von
Algorithmen, interessante programmtechnische Lösungen usw. sollten Sie
Programmfragmente angeben, auf die Sie sich im verbalen Text beziehen. In jedem Fall
sollten summarische Angaben zur Implementierung in Form von Interface-
Abhängigkeiten (Vererbungsstrukturen), lines of code (als Maß für den
Implementierungs-aufwand), Größe von Objektmodulen usw. vorhanden sein.
An Ende des Implementierungsteils sollte der Leser also wissen, was in welcher
Umgebung lauffähig ist, wie die innere Struktur der Implementierung aussieht, welche
programmtechnischen Leckerbissen ihm geboten werden und wieviel Aufwand hinter
einer bestimmten Funktionalität steckt. Mit den angegebenen Informationen sollte er
sich im wohl dokumentierten Quelltext orientieren können. dabei sollten keinerlei
Widersprüche in Namensgebung usw. zwischen Text im Implementierungsteil und dem
Quellprogrammen und dessen Dokumentierung auftreten.
7. Anwendungsbeipiele, Szenarien, Messungen
Abhängig vom Umfang dessen, was Sie in in diesem Zusammenhang anzuführen haben,
kann dieser Abschnitt auch am Ende des Implementierungsteils auftreten. Ziel dieses
Abschnitts ist es, den Ergebnissen Ihrer Diplomarbeit zusätzliches Gewicht zu
verleihen. Im Idealfall verweisen Sie auf Patente, Lizenzen, Veröffentlichungen usw. zu
Ihrer Arbeit. Dieses wird die seltene Ausnahme bleiben, niemand erwartet das von
Ihnen. Mit Anwendungsbeipielen können Sie allerdings die Einsatzbreite,
Wirtschaftlichkeit usw. Ihrer Lösung zeigen. Beispielhafte Szenarien können die
dynamischen Abläufe im System verdeutlichen und damit den Einblick in den
Gesamtzusammenhang vertiefen, der im Implementierungsteil i.w. durch statische
Strukturen beschrieben ist. Validation eines neuen Ansatzes durch Vergleich der
Ergebnisse mit anderen bekannten Verfahren oder einer anerkannten Test Suite kann
das Vertrauen in die Korrektheit erhöhen. Mit Leistungsmessungen an Ihrer
Implementierung können Sie darüberhinaus die Güte Ihrer Implementierung unter
Beweis stellen und während der Entstehung des Programms kritische Programmteile
tunen. Eine solche quantitative Bewertung gehört zu gutem ingenieurmäßigem
Vorgehen.
8. Zusammenfassung und Ausblick
Stellen Sie hier auf ein paar Seiten die wesentlichen Ergebnisse und Highlights Ihrer
Arbeit noch mal zusammen. Sie können sehr konkret sein, da alles vorher gesagt ist.
Versuchen Sie, Ihre Ergebnisse selbst zu würdigen. Seien Sie nicht zu bescheiden,
machen Sie aber aus einer Mücke auch keinen Elefanten. Geben Sie Erfahrungen an,
die Sie gemacht haben, die für den Leser oder nachfolgende Studierende in diesem
Themenbereich möglicherweise von Interesse sein könnten. Die Arbeit sollte am Ende
im Allgemeinen münden. Diese Funktion kann ein Ausblick gut übernehmen. Hierhin
gehören Anregungen für eine konkrete Weiterentwicklung der Arbeit, z.B. neue
Anwendungsbereiche, funktionale Erweiterungen, Modifikationen aus erkannten
Performance-Engpässen heraus usw., aber auch generelle Anmerkungen zur
Einschätzung der zukünftigen Entwicklung der in der Arbeit behandelten Thematik.
9. Das Literaturverzeichnis
Das Literaturverzeichnis listet alle verwendeten und zitierten Quellen zu Ihrer
Diplomarbeit auf. Quellenangaben müssen vollständig sein, so daß ein Leser sie sich
besorgen kann, um Sachverhalte im Originaltext nachlesen zu können. Beachten Sie die
üblichen Regeln. Alle Literaturstellen sollten an mindestens einer relevanten Stelle in
Ihrer Arbeit zitiert werden. Das Literaturverzeichnis ist vielleicht wichtiger als Sie
zunächst annehmen. Ein erster Eindruck über eine Arbeit entsteht oft aus Einleitung,
Zusammenfassung, Inhaltsverzeichnis und Literaturverzeichnis.
10. Die Anhänge
Der oder die Anhänge bestehen aus voneinander unabhängigen Ergänzungen zu
bestimmten Aspekten, die in der Arbeit nicht weiter vertieft werden können oder sollen,
aber in einem gewissen Zusammenhang für den Leser relevant sind. Typische Beispiele
sind Installationsanweisungen, formatierte Manual Pages, vollständige
Schnittstellenbeschreibungen, umfangreiches, tabellenartiges Datenmaterial,
Syntaxdiagramme oder Grammatiken, Konfigurationsparameter und -Dateien,
Abkürzungsverzeichnis, Glossar. In bestimmten Fällen kann es sinnvoll sein, den
Quellcode vollständig auf Papier als Anhang anzufügen, i.d.R. wird es jedoch sinnvoller
sein, Quellcode und damit in Zusammenhang stehende Dokumente auf Datenträgern in
einer eingeklebten Tasche bereitzustellen.
Für Kommentare über die Nützlichkeit dieses Textes, für Anmerkungen und
Verbesserungsvorschläge zu diesem Text wäre ich Ihnen dankbar.