Taylorix-Studie untersucht verschiedene Werkzeuge

Freiraum für die Entwicklung von grafikorientierter Software

01.05.1992

Den Entwicklern fällt es nicht gerade leicht, vom derzeitigen Windows-Boom zu profitieren. Das Programmieren von grafikorientierter Software ist zumeist umständlich und langwierig. Peter Klein* faßt die Eigenschaften einiger Programmiersprachen und Werkzeuge zusammen, die diesem Anwendungsstau abhelfen sollen.

Jeder, der schon einmal mit rudimentären Mitteln wie der Sprache C und dem Software Development Kit (SDK) Anwendungen für MS-Windows oder den Presentation Manager (PM) entwickelt hat, kennt den Aufwand, der bereits für eine einfache Bildschirmausgabe Ó la "Hello World" erforderlich ist.

Also macht sich der Entwickler auf die Suche nach einer Entwicklungsumgebung, die ihm umständliche Routinearbeiten abnimmt und Freiraum schafft, damit er sich auf das wesentliche - die Applikation konzentrieren kann. Der Markt ist unüberschaubar, und eine Bewertung der einzelnen Tools fällt schwer. Vor diesem Problem standen auch die Software-Entwickler der Taylorix AG, die kommerzielle Software unter DOS, Novell, OS/2, Unix und MVS erstellen.

Im Rahmen eines Pilotprojekts wurden dort verschiedene Umgebungen und Werkzeuge für eine künftige Software-Entwicklung untersucht. Die Ergebnisse sind in der Studie "Wings" zusammengefaßt. Folgende vier Entwicklungsumgebungen wurden dabei untersucht:

- Microsoft C 6.0 mit Microsoft SDK,

- Microsoft C 6.0 und Glockenspiel C++ mit Commonview,

- Borland C++ sowie

- Guptas SQL-System.

Der Einsatz auf Rechnern mit mindestens einer 80386-CPU, 8 MB Hauptspeicher und einer Festplatte, die weniger als 18 Millisekunden für einen Datenzugriff braucht, ist generell für alle Entwicklungsumgebungen zu empfehlen.

Microsoft selbst bietet zur Entwicklung von Windows-3.0-Anwendungen das rudimentäre Werkzeug Software Development Kit an, mit dessen 450 Funktionen zwar vieles, aber dies leider auch sehr aufwendig zu realisieren ist. So muß beispielsweise das Anzeigen des horizontalen Scroll-Balkens in der Listbox selbst codiert werden, da dieser Balken - im Gegensatz zum vertikalen Scrollbar nicht automatisch mit der Listbox-Anzeige erscheint.

Was dem SDK außerdem fehlt, sind Software-Construction-Sets, mit deren Hilfe der Entwickler viele Aspekte der Windows-Oberfläche interaktiv entwickeln kann. Eigentlich sollten sich alle Arten von Bildschirmelementen mit Hilfe geeigneter Werkzeuge entwickeln lassen, ohne daß der Entwickler Programmierzeilen schreiben muß.

Flexibilität gegenüber Programmänderungen

Die Programmiersprache C++ ist Anfang der 80er Jahre in den AT&T-Laboratories von Bjarne Stroustrup entwickelt worden. C++ stellt keine neue Sprache dar, sondern eine Weiterentwicklung von C, sozusagen eine Obermenge der Sprache C zuzüglich der Eigenschaften des objektorientierten Programmieransatzes. Diese Technik verspricht Vorteile bezüglich der Programmpflege sowie eine hohe Flexibilität gegenüber anfallenden Programmänderungen. Die Spracherweiterungen von C++ gegenüber C heißen: class, privat, public, protected, friend, virtual, this, new, delete.

Microsoft C 6.0 mit de, C++-Erweiterungen von Glockenspiel eignet sich auch zum Einsatz in größeren Projekten. Die mit C++ angebotene Klassenbibliothek Commonview bietet Ansätze dafür, den Programmierer bei der aufwendigen Entwicklung von grafischen Oberflächen zu unterstützen. Zum Zeitpunkt der Wings-Studie war Commonview wegen des eingeschränkten Leistungsumfangs nur bedingt geeignet. Mittlerweile wird eine verbesserte Version angeboten. Erwähnenswert ist überdies der von Glockenspiel verfolgte Ansatz, auf einem bestehenden, hochoptimierten C-Compiler (C 6.0 von Microsoft) aufzubauen und nur die C++-Ergänzungen zusätzlich anzubieten.

Mehr als nur eine Alternative

Das neue C++-Produkt von Borland verspricht eine komfortable Windows-Entwicklung ohne das Software Development Kit von Microsoft. Borland stellt hier nicht nur einen leistungsfähigen C++-Compiler, sondern auch eine Entwicklungsumgebung zur Verfügung, was sich vor allem hinsichtlich des Preises positiv auswirkt.

Die leistungsstarken Werkzeuge des Whitwater-Ressourcen-Toolkits bieten zusätzlich Unterstützung beim Erstellen grafischer Elemente wie Menüs und Dialoge. Ohne SDK-Kenntnisse wird der Entwickler aber um einen Microsoft-Kurs beziehungsweise den "Learning Guide" des SDK nicht herumkommen.

Auch ist die Software derzeit noch nicht frei von Mängeln: Das eine Tool läuft im erweiterten 386er Modus, das andere nicht, einen Profiler für Windows-Anwendungen gibt es nicht, und das Integrated Development Environment läuft nur im Standardmodus. Wenn hier für Abhilfe gesorgt ist - und es dann noch eine OS/2-Version gibt - könnte Borland C++ mehr als nur eine Alternative zu Microsoft und Glockenspiel werden.

SQL-Windows und SQL-Base sind die Hauptbestandteile der Entwicklungsumgebung von Gupta-Technologies. Dabei handelt es sich um einen völlig anderen Ansatz, Windows-Applikationen zu erstellen, als bei den bereits vorgestellten Werkzeugen: SQL-Windows bietet eine integrierte Entwicklungsumgebung auf 4GL-Basis, mit der sich Front-end-Applikationen unter Windows relativ komfortabel entwickeln lassen.

Zudem verfügt das Gupta-System mit SQL-Base über ein leistungsfähiges relationales Datenbanksystem als Back-end. Datenbank und 4GL ergänzen sich, können aber auch separat eingesetzt werden. Der 4GL-Ansatz ermöglicht es, auch ohne C-Kenntnisse, nämlich via Point-and-Click-Technik, schnelle Resultate zu erzielen; dadurch wird das Gupta-SQL-System zu einem idealen Prototyping-Werkzeug. Es steht für unterschiedliche System-Umgebungen zur Verfügung und ist auch unter dem Gesichtspunkt der Connectivity äußerst interessant.

Da keine allumfassende Lösung existiert, ist es besonders wichtig, sich über den Einsatz einer zu empfehlenden Programmierumgebung Gedanken zu machen. Es können drei grundsätzliche Einsatzmöglichkeiten beobachtet werden:

1. Die Entwicklung von Standardsoftware im größeren Rahmen: Für die Entwicklung von Windows-Standardsoftware mit einer Einsatzdauer von mehr als fünf Jahren sind objektorientierte Techniken (OO) zu empfehlen. Die Vorteile der OO-Technologie - hohe Wiederverwendbarkeitsrate und leichte Wartbarkeit - kommen in der Softwarepflege zum Tragen.

Dennoch sollte man auch das Kriterium Portabilität berücksichtigen: Wird nur für DOS/Windows-Plattformen programmiert, bietet Borland C++ hinsichtlich Geschwindigkeit und Performance wesentliche Vorteile gegenüber einer reinen SDK-Umgebung oder der Glockenspiel-Lösung. Sollen hingegen mehrere Zielplattformen (DOS/Windows, OS/2 PM, Unix) unterstützt werden, so ist der Einsatz von Microsoft C, Version 6.0, mit Glockenspiel C++-Erweiterungen vorteilhaft.

Die Klassenbibliothek Commonview unterstützt derzeit DOS/Windows, OS/2 mit Presentation Manager und OSF/Motif.

Reicht der Funktionsumfang der Klassenbibliothek für die speziellen Bedürfnisse nicht aus, empfiehlt sich - auch aus Gründen der Lieferantenunabhängigkeit - die Entwicklung einer eigenen Klassenbibliothek.

2. Die Entwicklung von kleinen Softwarelösungen oder Individualsoftware: Wenn es wesentlich auf eine schnelle Markteinführung eines Produkts ankommt, das zudem einen relativ kurzen Lebenszyklus hat, so können 4GL-Werkzeuge und -Umgebungen wesentlich dazu beitragen, die eigentliche Entwicklungszeit zu verkürzen.

Die Komplexität der zu erstellenden Applikation ist ein weiteres Kriterium für die Auswahl der richtigen Entwicklungsumgebung: Bei einfachen Anwendungen lohnt sich der Einsatz von 4GL-Werkzeugen und Applikationsgeneratoren wie SQL-Windows, Enfin, Object-Vision und Visual Basic.

Für komplexe Speziallösungen muß unter Umständen wegen der zum Teil eingeschränkten Funktionalität der einzelnen Tools - auf eine C++-Lösung (Borland C++ oder Microsoft/Glockenspiel C++) zurückgegriffen werden.

3. Die Entwicklung von Software Vorgaben und Prototypen: Hier ist der Einsatz von Generatoren und Design-Tools wie SQL-Windows, Enfin, Visual Basic und Object-Vision besonders zu empfehlen. Die Ausbildungsphase für die Entwickler ist beim Einsatz entsprechender Tools deutlich kürzer als bei herkömmlichen Programmiersprachen.