Modula-2 Hypertext Browser - Anpassung eines bestehenden Hypertext Browsers für C++

Autor
T. Prückler
Masterarbeit
MTE9201 (1992)
Zitat
Diplomarbeit, Betreuung: o. Univ.-Prof. Dr. Gustav Pomberger, ausgeführt an der Universität Linz, Institut für Wirtschaftsinformatik - Software Engineering, August 1992.
Ressourcen
Kopie

Einleitung

DOgMA ist ein Werkzeug zur Unterstützung der Programmierung, Dokumentation und Wartung von C++-Programmsystemen. Das Werkzeug kann sowohl zum Erstellen und Dokumentieren von Programmen eingesetzt werden, wobei beide Aktivitäten parallel ablaufen können, als auch zur Erforschung bereits bestehender Programmsysteme. Diese Aufgaben werden durch die in DOgMA verwendeten Konzepte des Literate Programming und Hypertext unterstützt.

Das Ziel dieser Diplomarbeit besteht darin, dieses Werkzeug so umzuprogrammieren, daß die Programmiersprache Modula-2 damit verarbeitet werden kann.

Dieses Kapitel gibt einen Überblick über die gesamte Arbeit. Zuerst wird die hinter dieser Arbeit stehende Motivation dargestellt. Der zweite Abschnitt beschreibt die Schwerpunkte, auf die bei der Ausarbeitung besonders Rücksicht genommen wurde. Der letzte Abschnitt gibt einen Überblick über den inhaltlichen Aufbau der restlichen Arbeit.


Motivation:

Während der letzten Jahre gewann ein Teilgebiet der Informatik, welches zuvor meist etwas vernachlässigt wurde, immer mehr an Bedeutung: die Dokumentation. Der Grund dafür ist, daß der Anteil der Wartungstätigkeiten an Programmsystemen ständig steigt. So geben Gibson und Senn an, daß die Hälfte der Zeit von Programmierern von Wartungsaktivitäten verbraucht wird. Die Hälfte des Zeitaufwandes für die Wartung wiederum entfällt auf das Einarbeiten in das zu ändernde Programmsystem. Daher gewinnen alle Möglichkeiten, diesen Einarbeitungsaufwand zu minimieren, mehr an Bedeutung.

Das Erstellen einer Programmdokumentation wurde als unbeliebte Tätigkeit angesehen, die meist "am Ende" der Programmentwicklung durchgeführt wurde - also aus Zeitgründen oft nur rudimentär oder gar nicht. Dieses Versäumnis wird dann zum "Bumerang", wenn das Programm geändert werden muß, da eine gute, aktuelle Dokumentation das Einarbeiten in ein (fremdes) Programmsystem bedeutend erleichtert. Ein weiterer Weg, um die Einarbeitung in ein Softwaresystem zu unterstützen, ist die Bereitstellung eines Werkzeuges, welches das Programmsystem und die dazugehörige Dokumentation in geeigneter Weise aufbereitet.

Eines dieser Werkzeuge ist DOgMA (=DOcumentation & MAintenances"; & = g). Dieses Werkzeug bereitet einerseits das Programmsystem in eine dem Menschen besser zugängige Form auf, der Darstellung als Hypertext, und erlaubt andererseits die konsistente Einbindung von Dokumentation. DOgMA wurde ursprünglich für die Bearbeitung von C++-Programmen konzipiert. Da aber die Art der Unterstützung, die DOgMA für C++-Programme realisiert, auch für andere Programmiersprachen wünschenswert ist, sollte mit dieser Arbeit untersucht werden, wie gut sich der für DOgMA gewählte Ansatz auf andere Programmiersprachen übertragen läßt.


Schwerpunkte:

Dieser Abschnitt beschreibt die Schwerpunkte, auf die während der Durchführung der Arbeit besonderes Augenmerk gelegt wurde.

Den Hauptschwerpunkt stellt natürlich die Implementierung selbst dar, d.h. die eigentliche Anpassung des Werkzeuges, damit dieses Modula-2-Programme bearbeiten kann.

Daneben gibt es aber auch noch einige andere interessante Aspekte dieser Arbeit:

C++-DOgMA wurde so implementiert, daß eine strikte Trennung zwischen einem sprachabhängigen und einem sprachunabhängigen Teil besteht. Eine wichtige Frage ist also die, wie gut die sprachabhängige Funktionalität in dem als sprachabhängig gekennzeichneten Teil gekapselt ist, ob Änderungen im sprachunabhängigen Teil notwendig sind und, wenn ja, wie schwierig und umfangreich diese sind. Die Antworten auf diese Fragen sollen als Grundlage für Änderungen bei einem eventuellen Neuentwurf des ursprünglichen Werkzeuges dienen.

Weiters soll das Werkzeug während der praktischen Arbeit benutzt werden, sodaß die Praxistauglichkeit und Stabilität von DOgMA, sowohl von der C++- als auch von der Modula-2-Version, getestet werden kann. Dieser Praxistest soll auch als Basis zur Anregung weiterer nützlicher Funktionen und Erweiterungen dienen.

Eine andere interessante Frage ist die nach dem Beitrag, den DOgMA zur Wartung leisten kann, da sich DOgMA ausdrücklich als Werkzeug für Dokumentation und Wartung versteht. Da die während der Erstellung der Arbeit zu erfüllende Aufgabe durchaus auch in die Kategorie Wartung eingeordnet werden kann. kann daher eine aussagekräftige Antwort auf diese Frage erwartet werden.

In diesem Zusammenhang stellt sich dann noch die Frage, inwieweit sich der objektorientierte Ansatz auf die Wartung eines Programmes auswirkt, da DOgMA objektorientiert implementiert wurde.


Übersicht:

Nach der Einführung in die Arbeit im ersten Kapitel beschreibt das zweite Kapitel die Konzepte, auf denen DOgMA basiert.

Das dritte Kapitel ist der Beschreibung der beiden beteiligten Programmiersprachen gewidmet. Nach je einem kurzen Überblick über Modula-2 und C++ werden die für das Werkzeug relevanten Gemeinsamkeiten und Unterschiede der beiden doch sehr verschiedenen Sprachen behandelt.

Kapitel vier beschreibt detailliert die Funktionalität und Benutzeroberfläche von Modula-2-DOgMA.

Kapitel fünf gibt einen Überblick über die für die Anpassung von DOgMA an die Programmiersprache Modula-2 relevanten Klassen des Programmsystemes und beschäftigt sich mit einigen Aspekten der Implementierung.

In Kapitel sechs werden die Erfahrungen bei der praktischen Anwendung sowohl von C++-DOgMA als auch mit der Modula-2-Version beschrieben. Dieses Kapitel enthält auch Vorschläge für Änderungen beziehungsweise Erweiterungen des Werkzeuges.

Kapitel sieben beinhaltet einige abschließende Betrachtungen, und es wird aus der Sichtweise des Autors nach der Beendigung der Implementierung noch einmal auf die Schwerpunkte eingegangen.