Programmodell


Zur konkreten Realisierung des Modells KategoSphär als Programm gehört, neben den Hard- und Softwarevoraussetzungen, ein nachvollziehbarer Entwicklungsprozeß, der die Komplexität eines entstehenden Programms bewältigen hilft. Die Beschreibung des Originals KategoSphär erfolgt mit Hilfe der in der Informatik gebräuchlichen objektorientierten Modellierung, anhand eines vorgeschlagenen Entwicklungszykluses und einer Notation, die zur Objekt-Orientierten-Analyse-und-Design Methode nach Booch (vgl. [BOO]) gehören.

Nach dem Paradigma der Objektorientierung wird ein Original strukturell in kommunizierende Einheiten, die Objekte, zerlegt und gleichartige dieser Entitäten werden in Klassen zusammengefaßt. Eine Klasse versteckt die Informationen, die den Status und das Wirken eines Objekts in der Quelldomäne ausmachen. Der Kontakt mit anderen Objekten oder dem Systemumfeld geschieht lediglich über Nachrichten, nachdem ein Objekt seine Identität durch Erzeugung als Instanz aus seiner Klasse erhalten hat. Programmiertechnisch lassen sich so handhabbare Module erzeugen, deren Steuerung von außen über das klar definierte Protokoll der Klasse erfolgt. Eine Wiederverwendung von Programmodulen wird in der Objektorientierung durch die sogenannte Vererbung realisiert, die die typisierende Klassifikation der Entitätensicht erweitert. Die Entwurfsmethode unterteilt Booch in zwei Entwicklungsprozesse. Der Makro-Prozeß durchläuft die Phasen Konzeptualisierung, Analyse, Design, Evolution und Wartung, der Mikro-Prozeß sieht die Identifizierung von Klassen und Objekten, das Identifizieren deren Semantik, deren Beziehungen untereinander und deren Implementation vor. Der Mikro-Prozeß wird mehrfach, eventuell unter Auslassung einzelner Schritte, durchlaufen.

Zur Evolution und Implementierung benötigt KategoSphär vom Ansatz her die Möglichkeiten moderner Computer Hardware zur graphischen Datenein- und ausgabe. Es stehen für diesem Bereich Maschinen mit hochauflösenden Bildschirmen und Graphikkarten zur Verfügung, deren Befehle zur Steuerung in einer Sammlung von Funktionen, einer Software-Bibliothek, zusammengefaßt werden. Die Open Graphics Library (OpenGL) ist eine solche Software Schnittstelle zur Graphik Hardware. Sie ermöglicht interaktive, farbige Abbildungen beweglicher, dreidimensionaler Objekte, die durch geometrische Primitive mathematisch beschrieben werden. Das Rendering legt die Position der Modelle im dreidimensionalen Raum durch den gewählten Standpunkt des Betrachters fest. Dabei konvertiert die Rasterisierung die mathematischen Objekte und deren Farben zu Bildpunkten. Die Aufgabe der aufwendigen Programmierung mit dieser expliziten Funktionensammlung erleichtert Open Inventor, ein Toolkit, der in der Programmiersprache C++ geschrieben, eine objektorientierte Auffassung der Objekte im Raum unterstützt, deren Geometrie, Größe und Farben in Klassen kapselt und diese in einer Datenbasis speichert. Das Rendering zur Bildschirmdarstellung übernimmt die OpenGL, Open Inventor stellt daneben noch das Speichern und Laden der Datenbasis und die Interaktion mit den Entitäten, wie Auswahl, Hervorhebung und Manipulation bereit. Die Wiedergabe der berechneten Graphik leistet eine weitere zu Open Inventor gehörende Komponenten-Bibliothek, die eine Verbindung zu einer fensterorientierten, graphischen Benutzungsschnittstelle bietet. Im Fall der Realisierung von KategoSphär als Computermodell kommt das X Window System, oder kurz X, zur Anwendung. X ist ein hardwareunabhängiges Programmierwerkzeug um Applikationen auf Workstations zu erstellen, die deren Kapazitäten weitestgehend ausnutzen. Unter Workstation wird ein Computer verstanden, der Tastatur- und Zeigereingabe, meist eine Maus, sowie Video Bildschirmausgabe, bei der jeder Bildpunkt einzeln angesteuert werden kann, integriert. Eine einzelne Anwendung in X besteht aus Fenstern, rechteckigen, nach den Kanten des sichtbaren Bildschirm ausgerichteten Bereichen , die das Management der Ein- und Ausgabe im Programm übernehmen. Das Besondere der Architektur des Systems ist ein Netzwerk Protokoll, das die Kommunikation mit den Graphikroutinen herstellt, anstatt direkt betriebssystem- oder hardwarespezifische Funktionen zu benutzen. Das Netzwerk Protokoll ermöglicht einerseits die Portierung von Applikationen auf verschiedene Plattformen, andererseits können diese auf einer Maschine ausgeführt werden, während die Bildschirmdarstellung von einer anderen bewerkstelligt wird. X realisiert eine Server-Client-Architektur, wobei ein Serverprozeß die Aufgaben der Graphikausgabe und Benutzereingaben löst, der Clientprozeß diese Ressourcen, welche der Server verwaltet, anfordert. Als Vorraussetzung für eine solche Client-Server-Technologie, und damit auch für das KategoSphär Programmodell, bedarf es eines Betriebssystems, das, neben der Kontrolle der Betriebsmittel wie Festplatten- und Arbeitsspeicher, einen Mehrprozeßbetrieb erlaubt. Die Implementierung von KategoSphär verwendet ein Unix Derivat, IRIX, auf einer Workstation von Silicon Graphics. Folgende Graphik faßt die Abhängigkeiten der benutzten Softwarekomponenten zusammen, einschließlich der Bibliotheken zur Audioausgabe, auf die nicht näher eingegangen wird, da dafür relevante Themen, wie die Prozeßsynchronisation, jenseits dieser Abhandlung liegen.


Abb. 6 KategoSphär Software Komponenten


Analyse, Design & Evolution

Inhalt

Uwe Poborski: KategoSphär