next up previous contents
Next: 3.4 Aufbau Up: 3 PIF Editor Previous: 3.2 Diskussion

3.3 Realisierung

Die erste entscheidende Frage war, ob diese Aufgaben als eigenes Programm implementiert werden sollten. Da eine wichtige Teilaufgabe eines graphischen Editors die Anzeige von Daten ist, wurde die Erweiterung der VISTA-Visualisierung xpif2d überlegt. Da diese aber auf einem speziellen, rein ausgabeorientierten Datenformat, dem ,,VISTA visualization format`` (VVF), basiert, wurde diese Idee verworfen und ein von Grund auf neues Programm entwickelt - der PIF-Editor (PED).

Dem Stand der Software-Technologie des VISTA-Systems entsprechend wurden die Programmiersprachen C und LISP verwendet.

Um den Entwicklungsaufwand zu verringern und die Wartbarkeit des VISTA-Systems zu erhalten, wurden viele Teile von VISTA benützt:

Umgekehrt konnten einige speziell für den PED entwickelte Teile so weit verallgemeinert werden, daß sie in die Bibliothekssammlung von VISTA gestellt werden konnten. Dies sind eine Bibliothek für einfache Geometriefunktionen (geometry), ferner das sogenannte ,,VISTA base data``- (VBD)-Paket mit einer optimierten Speicherverwaltung und Listenimplementation, und die CLS-Bibliothek als flexible PIF-Schnittstelle mit einer Sammlung von leistungsfähigen Werkzeugen.

Die geforderte einfache Erweiterungsfähigkeit wurde durch Integration des VLISP-Interpreters erfüllt (s. Kapitel 5).

Den unterschiedlichen Anforderungen wie PIF-Verarbeitung, graphische Benutzerschnittstelle und Stapelbetriebsfähigkeit kommt ein modulares Konzept sehr entgegen. Module zu formulieren bietet sich dort an, wo entweder logisch klar abtrennbare Aufgabenkomplexe bestehen, oder wo Teile für unterschiedliche Betriebsarten gemeinsam aktiviert bzw. abgeschaltet werden. Einschränkend muß allerdings gesagt werden, daß ein derart komplexes Programm nicht leicht in klar voneinander abgegrenzte Einheiten gegliedert werden kann, nicht zuletzt aufgrund der Implementierung in zwei verschiedenen Programmiersprachen, wobei die Sprachgrenzen nicht mit den Modulgrenzen übereinstimmen.



Martin Knaipp
Wed Jun 12 15:41:33 MET DST 1996