Nikolaus Heusler Archiv

Erschienen in 64'er Magazin, Ausgabe 04/1994 · Originaldatei: DIENST.TXT

Hinweis: Dies ist das an die Redaktion eingereichte Manuskript, nicht der gedruckte Endtext. Layout, Bildunterschriften, Korrekturen und Kürzungen der Redaktion können in der veröffentlichten Fassung abweichen.

Objekt64'er Magazin
Ausgabe4/94
RubrikBasic-Corner
RedakteurHarry BL
AutorNicki Heusler, XXX/XXXXXX
Datum12.12.1993
ThemaSo macht man Programme anwenderfreundlicher

Basic-Corner

Stets zu Diensten!

So wird Ihr Programm anwenderfreundlich

Programme sollen dem Anwender wenig Mühe und möglichst viel Spaß bereiten. Dieser Beitrag verrät Ihnen, wie Sie mit einfachsten Mitteln Ihre Basicprogramme anwenderfreundlicher und professioneller gestalten können.

von Nikolaus M. Heusler

Welche Eigenschaften sind es, die ein Programm als anwenderfreundlich auszeichnen? Und warum soll man ein Programm überhaupt anwenderfreundlich machen? Eigentlich reicht es doch, wenn es funktioniert und alle Funktionen ausführt, die man von ihm erwartet.

So dachten sich auch die ersten Programmierer, die vor vielen Jahren in FORTRAN zu programmieren begannen ebenso wie die Basic-Programmierfreaks auf ihren Heimcomputern. Es wurde munter drauflosprogrammiert, vermeintlich nicht so wichtige Punkte wie Ein- und Ausgabe kamen, wenn überhaupt, irgendwann am Schluß an. Und so entstanden — und entstehen — Programme, die nur noch der Entwickler selbst bedienen kann — und auch das nach einem halben Jahr nicht mehr. Denn bald vergißt man, welche Zahlenkombinationen bei der Eingabe vermieden werden sollen, in welchem Format ein Text eingegeben werden soll. Und dann geschieht das, was Programmierer am meisten fürchten: Das Programm geht mit einem lakonischen "Error" in die Knie. Nichts mehr geht. Die ganze Arbeit vergeblich: Insert coin, try again!

Funktionalität genügt nicht!

Was macht nun ein Programm anwenderfreundlich? Wir möchten Ihnen in diesem Artikel einige Anregungen, ja geradezu "Forderungen" an die Hand geben, die nicht zuletzt auch bei unseren täglichen Sichtungen von Leserlistings entstanden sind. Nicht selten erreichen uns Programme, die eine hervorragende Idee verfolgen oder einzigartige Funktionsvielfalt bieten, aber bei denen die Bedienbarkeit so miserabel ist, daß es einfach keinen Spaß macht, damit zu arbeiten.

Beginnen wir bei der "Visitenkarte" Ihrer Software: dem Bildschirmlayout. Es fängt damit an, daß Sie Ihre Texte nicht einfach so auf den Bildschirm klatschen, sondern ihnen eine Form geben. Über Ihre "Handschrift" sollten Sie sich Gedanken machen, bevor Sie die erste Zeile programmieren. Profis entwerfen ein richtiges Layout, auf kariertem Papier oder auch am Bildschirm. Überlegen Sie, an welcher Stelle welche Texte am besten zur Geltung kommen. Der Bildschirm soll nicht mit Textsalat vollgestopft werden. Stattdessen empfiehlt es sich, zwischen den einzelnen Funktionsblöcken, die auch auf dem Monitor als solche erkennbar sein müssen, Lücken zu lassen.

Es gibt gerade auf dem C 64 noch einige zusätzliche Tricks, die zur Verschönerung des Bildschirms beitragen. So können Sie manche Textstellen hervorheben, auf einem Monochrom-Bildschirm durch inverse Schrift ("Reversdruck", wird mit der Tastenkombination CTRL 9 ein- und mit CTRL 0 ausgeschaltet), auf einem Farbmonitor durch diverse Farben. Aber Vorsicht: Gerade hier hat sich gezeigt, daß man es auch nicht übertreiben darf. Es gibt nichts unästhetischeres als ein in tausend Farben flimmernder Bildschirm, bei dem man den Eindruck nicht loswird, vor einem Kaleidoskop zu sitzen. Weniger ist also auch hier oft mehr.

Überhaupt die Farben. Ich selbst ärgere mich seit zehn Jahren als Besitzer eines monochromen Monitors über Programme, deren Entwickler mit farbigen Monitoren arbeiten und dabei Leute wie mich einfach vergessen. Kontrastreiche Farben sollten verwendet werden! Grünmonitor-Benutzer sehen keinen Unterschied zwischen hellrot, hellgrün und hellblau! Ein seriöses Programm (seriös hierbei im wahrsten Sinne des Wortes) verwendet nicht mehr als drei oder vier Farben, die Hintergrundfarbe nicht mitgerechnet. Die verwendeten Farben sollten zueinander großen Kontrast bieten.

Generell gelten alle Forderungen in diesem Artikel natürlich nur für Anwendersoftware, weniger für Spiele oder grafische Projekte.

PCs bieten darüber hinaus noch die Möglichkeit, einzelne Texte blinken zu lassen. Dieses läßt sich auch beim C 64 realisieren, um beispielsweise wirklich wichtige Fehlermeldungen hervorzuheben. Dazu müßten Sie etwa eine Warteschleife vorsehen, die den Text zeitlich verzögert immer wieder schreibt und löscht. Fortgeschrittene Programmierer erledigen solches freilich Interrupt-gesteuert. Aber seien Sie auch mit Blinklichtern vorsichtig: Zuviel davon irritiert.

Den richtigen Profi erkennt man jedoch an waagerechten und senkrechten Linien und an Umrandungen. Auch der C 64 bietet eine ganze Reihe Grafikzeichen, die sich zur Einrahmung von Texten geradezu anbieten. Mit CBM A wird die linke obere Ecke ausgegeben, CBM X ergibt die untere rechte Ecke. Waagerechte und senkrechte Linien liefern die Tastenkombinationen <SHIFT *> und SHIFT -. Die letzgenannten haben gegenüber SHIFT C und SHIFT B den Vorteil, auch im Groß/Kleinschriftmodus erhalten zu bleiben. Es gibt neben den eckigen auch runde Rahmen (Beispiel SHIFT U), Zwischenstücke und Verzweigungen (wie CBM W), und Striche in verschiedenen Stärken. Falls Sie hierin noch keine Erfahrung haben, könnte es eine gute Idee sein, ein wenig damit zu experimentieren, damit Sie die ideale Form, Ihren persönlichen Stil finden.

Pulldown-Menüs

Jedes professionelle Programm arbeitet heutzutage mit der Fenstertechnik und sogenannten "Pulldown-Menüs". Das sind kleine Fenster, die auf Tastendruck aufklappen und dann entweder Zusatz- oder Hilfstexte präsentieren oder weitere Untermenüs bereithalten. Nicht jede Programmiersprache stelle solche Fenster zur Verfügung; in Basic gelingt das nur mit Tricks durch direktes Schreiben in den Bildschirmspeicher (POKEs) oder im Grafikmodus, wo Fenster eröffnet und verschoben werden können. Allerdings stößt man im Basic des C 64 hier sofort an die Grenzen, was die zumutbare Ausführungsgeschwindigkeit betrifft.

Das alles sieht sehr toll aus, doch Anwenderfreundlichkeit hat auch ihren Preis an Programmlänge und Aufwand. Zudem muß nicht immer anwenderfreundlich sein, was gut aussieht: Eine einfache Ja/Nein-Abfrage wird man doch immer noch besser per Tastatur durch Eintippen eines einfachen Zeichens abhandeln. Das ist bequemer als wenn der Bediener mit den Cursor-Tasten, der Maus oder einem Joystick herumfahren und das richtige Zeichen auswählen und dann auch noch die RETURN-Taste drücken muß.

Das Bild zeigt ein gutes Beispiel für geordnete Bildschirmausgabe. Durch großzügige Verwendung von Rahmen erhält das Bild Struktur, wird übersichtlich und leicht lesbar. Auch durch inverse Schrift (beispielsweise ganz oben beim Programm-Titel) kommt Farbe ins Bild. Ansonsten enthält diese (getürkte) Maske nur vier Farben: weiß, gelb, rot und grün. Links wurde ein Pulldown-Menü eingeblendet, in dem zehn Funktionen zur Auswahl stehen. Der gelbe inverse Balken zeigt an, daß im Moment die Funktion "Lagerverwaltung" aktiviert ist. Man könnte sich eine Steuerung dieses Balkens durch die Cursortasten nach oben und unten vorstellen. Die RETURN-Taste bestätigt dann Ihre Wahl. Die wichtige Aufforderung zum Einschalten des Druckers blinkt. Die Hilfe-Taste <f1> wird gleich zu Beginn deutlich hervorgehoben (unten). Auch wenn es durch das rote Menü etwas überdeckt wird, kann man noch die Bildschirmmaske der Funktion "Inventarliste drucken" erkennen. Hier wurde zunächst die Listenbezeichnung "Standard" eingegeben oder noch besser aus einer Liste mit Bezeichnungen ausgewählt. Darunter hat der Benutzer den Zeitraum der Liste spezifiziert: Von Anfang 1991 bis Ende 1993. Die Eingaben werden farblich hervorgehoben und stehen am Bildschirm übersichtlich untereinander ("tabuliert"; betrachten Sie die drei Doppelpunkte!).

Es lohnt sich offenbar wirklich, mit etwas "Schminke" auch Software ein besseres Aussehen und mehr Attraktivität zu verleihen.

Bei Eingaben nicht aufgeben!

Damit kommen wir auch schon zum nächsten Kapitel: Der Eingabe. Es ist leider nicht selbstverständlich, eine Eingabe sofort auf Fehler und damit auf Plausibilität zu testen. Ein Beispiel für Prüfen auf Fehler: Ist die Zahl mit der Ziffer "0" und nicht etwa mit dem Buchstaben "O" eingegeben worden? Den Fehler macht fast jeder Computerlaie, da er die Identität beider Zeichen von seiner Schreibmaschine gewohnt ist. Wurde der richtige Dezimalseparator eingegeben (Punkt oder Komma, je nach Konvention)?

Danach kann die Eingabe auf Plausibilität geprüft werden. Beispiel: Ergibt sich aus dem Geburtsdatum ein vernünftiges Alter? Ein dreijähriges Kind kann nicht in der Firma angestellt werden. Liegt die Zahl im zulässigen Bereich? Der Preis für Zahnpasta kann nicht im Millionenbereich liegen. Beginnt der eingegebene Name auch wirklich mit einem Buchstaben und nicht etwa mit einem Fragezeichen? Das Abfragen solcher Bedingungen erhöht die Sicherheit eines Programms erheblich. Wie leicht erhält man sonst die unfreundliche Meldung

?DIVISION BY ZERO ERROR

die meistens darauf hinweist, daß eine Zahl nicht korrekt erfaßt wurde und daher als Null in die EDV gelangte, wo sie entsprechend Schaden anrichtete.

Manches klingt trivial, ist es aber nicht. Zum Beispiel: Weiß der User immer, wo der Cursor sich gerade befindet? Da man das kleine Quadrat leicht übersehen kann, blinkt es meistens. Bei einem bekannten kommerziellen Textprogramm für den C 64 blinkt es nicht, was oft zu unangenehmen Versteck-Spielchen führt, wenn der Cursor sich beispielsweise auf einem inversen Steuerzeichen verbirgt. Wenn kein Cursor sichtbar ist, sollte die Stelle, die vom Benutzer gerade bearbeitet werden kann, deutlich beispielsweise farblich gekennzeichnet sein.

Bitte vergessen Sie nicht, daß Ihr Programm unter Umständen auch für ungeübte Anwender bedienbar sein sollte. Und die haben erfahrungsgemäß meistens Schwierigkeiten mit der Tastatur. Also sollte man Eingaben nach Möglichkeit beschränken. Wo nur ein Zeichen gefragt ist — eine Ziffer, ein Buchstabe — da sollte man auf die Betätigung der RETURN-Taste verzichten. Das Antippen des Zeichens sollte genügen. Basicprogrammierer verwenden dazu statt des INPUT-Befehls die Alternative mit GET.

Der Gewinner ist der Anwender

Aber auch dort, wo Texteingaben notwendig sind, kann man oft darauf verzichten. So ist es heute üblich, Menüs anzubieten, bei denen die Auswahl durch Verschieben eines farbigen Balkens erfolgt (Bild). Hat der Balken den gewünschten Menüpunkt erreicht, wird er durch die RETURN-Taste ausgewählt. Bei Menüpunkten, die nur aus einem Zeichen bestehen, wird man darauf verzichten. Aber bei der Auswahl von Dateien sollte man unbedingt davon Gebrauch machen. Zu leicht vertippt man sich dabei. Und gerade Filenamen sind für unsere Lese- und Schreibgewohnheiten eher fremdartig. Der Aufwand, den es macht, eine Routine zu schreiben, die das Directory lädt und dann alle in Frage kommenden Files möglichst alphabetisch oder anders geordnet in einer Reihe aufzulisten, so daß man einen auswählen kann, dieser Aufwand macht sich bestimmt bezahlt.

Selbst wenn Texte eingegeben werden müssen, zum Beispiel Namen, sollte man diesen Eingabezwang auf ein Minimum reduzieren. So sollte es bei der Suche nach einem Namen reichen, die ersten paar Buchstaben einzugeben, und zwar nur so viele, wie zur eindeutigen Identifizierung nötig sind. Also kein Zwang zur Eingabe von "Prçwalowski, Karòl": "Pr" sollte genügen.

Dazu muß selbstverständlich die Suchroutine entsprechend geändert werden. In unserem Fall soll ein Name in einer 400 Einträge umfassenden Liste im Array LI$() gesucht werden. Zuerst die schlechtere Standard-Form:

1000 PRINT "NAMEN SUCHEN"
1010 PRINT "BITTE KOMPLETTEN NAMEN EINGEBEN!"
1020 INPUT NA$
1030 FOR I=1 TO 400
1040 IF LI$(I) = NA$ THEN 1080
1050 NEXT
1060 PRINT NA$ "LEIDER NICHT GEFUNDEN!"
1070 GOTO 1010
1080 PRINT "GEFUNDEN ALS NR. "I

Und so löst der Profi dieses Problem:

1000 PRINT "NAMEN SUCHEN"
1010 PRINT "BITTE DIE ERSTEN BUCHSTABEN"
1020 INPUT "DES NAMENS EINGEBEN ";NA$
1030 IF NA$ = "" THEN 1010
1040 R = LEN (NA$)
1050 FOR I=1 TO 400
1060 IF LEFT$ (LI$(I),R) = NA$ THEN 1100
1070 NEXT
1080 PRINT NA$ "LEIDER NICHT GEFUNDEN!"
1090 GOTO 1010
1100 PRINT "GEFUNDEN ALS NR. "I

In Zeile 1030 erfolgt eine Plausibilitätskontrolle. Eine leere Eingabe wird zurückgewiesen. Man sollte vielleicht noch einen kurzen Hinweis einbauen. Ansonsten ermittelt der Computer die Länge der Eingabe (Variable R). Jetzt werden in der Schleife nur die ersten R Zeichen der Einträge in der Liste mit der Eingabe verglichen. Ausnahmsweise ist das auch einmal ein Tip für Spiele-Programmierer: Schreiben Sie ein Adventure, könnte man eine solche Routine für den Parser verwenden, der ein Eingabe analysiert. Anstelle von

ZERLEGE AUTOMOBIL

reicht dann auch

ZER AU

oder so ähnlich.

Gut INFORM

Es dürfte sich inzwischen herumgesprochen haben, daß der INPUT-Befehl des C 64 für professionelle Anwendungen unbrauchbar ist. Für die Eingabe kann keine maximale Länge vorgegeben werden, einzelne Tasten können nicht gesperrt werden, und der Hauptnachteil: versehentliche Cursorbewegungen zerstören die Bildschirmmaske und machen die Eingabe unbraubar. Sinnvoll ist es daher, mit einer selbst geschriebenen Eingaberoutine zu arbeiten, die diese Nachteile ausgleicht. Eine solche INFORM-Routine, die alle genannten Nachteile ausmerzt, finden Sie als Listing. Diese Routine kann in eigene Basicprogramme eingebunden werden. Bevor sie mit GOSUB 5000 aufgerufen wird, müssen Sie in der Variablen ML die maximale Eingabelänge in Zeichen festlegen. Das Ergebnis der Eingabe steht in E$.

Beispiel:

1000 ML=10:REM MAXIMAL 10 ZEICHEN
1010 PRINT "BITTE GEBEN SIE IHREN VORNAMEN EIN UND"
1020 PRINT "BETAETIGEN RETURN. MAXIMAL 10 ZEICHEN"
1030 PRINT "EINGABEN: ";
1040 GOSUB 5000
1050 IF E$ = "" THEN PRINT "SIE HABEN JA GAR NICHTS EINGEGEBEN!":GOTO 1010
1060 PRINT "HALLO, "; E$
1070 END

Der Befehl in Zeile 5040 dient dazu, den Tastaturpuffer zu löschen. Der C 64 speichert alle gedrückten Tasten (maximal 10) nämlich so lange, bis er sie gebrauchen kann. Probieren Sie einmal folgende Schleife aus:

FOR I=1 TO 10000:NEXT

Während der etwa acht Sekunden, die die Schleife dauert, können Sie einige Tasten drücken. Wie Sie sehen, gibt der C 64 brav alle gedrückten Tasten aus — nach Beendigung der Schleife. Solche Effekte sind freilich unerwünscht, wenn der Anwender etwa ungeduldig einige Tasten drückt, während der Computer noch sortiert, die dann nach Beendigung der Sortierung in einer Eingabe erscheinen. Ein seriöses Programm löscht daher vor jeder Eingabe mit

POKE 198,0

den Tastaturpuffer. Der C 64 vergißt dadurch alle ggf. gedrückten Tasten. In Zeile 5100 schalten wir den blinkenden Cursor an, in Zeile 5120 wieder aus. Es ist mit dieser INFORM-Routine auch möglich, den Vorrat an Tasten, die für die Eingabe gedrückt werden dürfen, zu begrenzen. Dazu betrachte man Zeile 5180. Nur die Zeichen zwischen dem Leerzeichen (Code 32) und dem Pfeil nach links (Code 95) dürfen in der Eingabe enthalten sein. Es kann vorkommen, daß in Ihrem Programm an einer Stelle nur Zahlen eingegeben werden dürfen. Kein Problem: Ändern Sie einfach die INFORM-Routine (Zeile 5180):

5180 IF A$ < "0" OR A$ > "9" THEN 5100

Dadurch sind nur die Ziffern von 0 bis 9 zugelassen. Buchstaben oder Satzzeichen können nicht eingegeben werden, das Programm akzeptiert sie nicht. Unter Umständen müßten Sie die Routine dann allerdings noch erweitern, weil auch Vorzeichen (Plus und Minus) oder Leerzeichen erlaubt sein sollen.

Noch eine Kleinigkeit: Eine bestimmte Funktion sollte im ganzen Programm immer durch die selbe Taste ausgelöst werden. Um das Programm oder einen Menüpunkt zu verlassen, ist es sinnvoll, immer die Taste mit dem Pfeil nach links zu benutzen, nicht einmal E, dann Q, dann RUN STOP. Einheitlichkeit erleichtert die Bedienung.

Die äußere Gestaltung, also die Form der Ein- und Ausgaben, entscheidet im wesentlichen über den Eindruck, den Software beim Anwender (vielleicht Ihrem Kunden!) macht. Doch auch der Programmablauf hat erheblichen Einfluß darauf, ob ein freundliches Programm vorliegt oder ein starrköpfiges. Bei allen länger dauernden Operationen (Suchen, Sortieren, Laden, Speichern) sollte das Programm auch den Benutzer darüber informieren, was es gerade macht. Eine kurze Zeile die Form "Ich sortiere..." reicht da schon. "Bitte warten, bin beschäftigt" klingt patzig und öffentlich-rechtlich. Der Ton macht die Musik, auch auf dem Bildschirm.

Anwesenheitstest

Es sollte ja eigentlich selbstverständlich sein, Fehler des Programms abzufangen. Ganz leicht ist das freilich nicht. Eine ungezielte Fehlerabfrage, die bei Störungen immer ins gleiche Unterprogramm verzweigt bringt nicht viel. Eine Fehlermeldung der Form "Im Programm ist ein Fehler aufgetreten - bitte verständigen Sie den Autor", wie ich es schon bei mehrere hundert Mark teuren kommerziellen Programmen gesehen habe, hilft weder dem Benutzer noch dem Computer. Sie sich schon darüber Gedanken machen, welche Fehler trotz aller Programmierkunst noch auftreten können.

Der häufigste Mißstand besteht darin, daß der Drucker nicht eingeschaltet ist. Normale Programm steigen dann bei der ersten Druckerausgabe mit dem ?DEVICE NOT PRESENT ERROR aus. Gute Programme enthalten rechtzeitig eine Prüfung etwa folgender Art:

500 POKE 768,185:OPEN 4,4:PRINT#4," ";:CLOSE 4:POKE 768,139
510 IF ST=0 THEN 550
520 PRINT "DRUCKER EINSCHALTEN, TASTE DRUECKEN"
530 POKE 198,0:WAIT 198,1:POKE 198,0
540 GOTO 500
550 PRINT "DRUCKER BETRIEBSBEREIT"

Die POKE-Befehle in Zeile 500 verhindern, daß die Basic-Fehlermeldung ausgegeben werden kann, falls der Computer den Drucker nicht findet. Durch Auslesen der Statusvariablen in Zeile 510 wird festgestellt, ob der Drucker angeschlossen und eingeschaltet ist. Die Befehle in Zeile 530 machen nichts anderes, als auf eine Taste zu warten.

Diese Routine läßt sich auch zur Überprüfung einsetzen, ob das Diskettenlaufwerk angeschlossen und bereit ist. Dazu müßten Sie nur Zeile 500 (und natürlich die Hinweistexte) ändern:

500 POKE 768,185:OPEN 1,8,15,"I":CLOSE 1:POKE 768,139

Hier wird also probeweise die Diskette initialisiert.

Bei allen Fehlern gilt: Das Programm sollte auf keinen Fall "aussteigen", also mit einer Fehlermeldung in den Direktmodus (Betriebssystemebene) zurückfallen. Manche Fehler treten indes höchst selten auf oder sind von Ihnen als Programmautor nicht vorherzusehen. Tip: Lassen Sie das Programm von eine interessierten Laien testen. Sie werden erstaunt sein, über welche Hürden er gleich zu Beginn stolpert.

Schließlich sollte der Anwender auf jeder Ebene mit einer bestimmten Taste "aussteigen" können. Das bedeutet auch: bisherige Eingaben rückgängig machen — bis zu welcher Tiefe, hängt vom Programm ab. Wo wir gerade vom "Aussteigen" reden: Finden Sie auch, daß ein gutes Programm weder bei Druck auf RUN STOP noch mit RUN STOP/RESTORE abgebrochen werden sollte? Der Befehl

POKE 808,251

sperrt beides und verhindert zudem noch das Listen des Basicprogramms. Ein universeller Schutz also, der nur mit

POKE 808,237

wieder aufgehoben wird. Da sich jetzt das Betriebssystem nicht mehr für die RUN-STOP-Taste interessiert, können Sie sich sogar für eigene Zwecke einsetzen, etwa um ein Menü kontrolliert zu verlassen. Die RUN-STOP-Taste hat den Code 3:

100 POKE 808,251
110 GET A$
120 IF A$=CHR$(3) THEN 140
130 GOTO 110
140 PRINT "RUN STOP WURDE GEDRUECKT"
150 GOTO 110

Daß im Programm jederzeit eine Hilfe-Taste gedrückt werden kann, ist auf dem C 64 leider nicht selbstverständlich, wohl weil hier die Anforderungen an den Speicherplatz zu groß wären. Auf PCs hat sich hier als Standard die Taste F1 durchgesetzt. Vor allem die Fenstertechnik muß dazu ausgereift sein. Geht das nicht, so gibt es ein paar simple Tricks, wie man dennoch zum Ziel kommt. So reicht es in vielen Fällen aus, in der untersten Bildschirmzeile wichtige Informationen zu präsentieren. Vor allem die Form der Eingaben sollte an einem Beispiel gezeigt werden. Müssen Zahlen mit Punkt oder Komma eingegeben werden? Datumsangaben mit oder ohne Jahrhundert? Währungsangaben mit oder ohne "DM"? Wie sollen Nach- und Vorname getrennt werden? Das alles kann man dem Benutzer auch in einer Zeile sagen und zeigen.

Warten auf Wartung

Irgendwann wird Ihr Programm auch von einem anderen Programmierer modifiziert oder einem erfahrenen Anwender durchschaut werden. Und darum sollten Sie sich auch einige Gedanken über den Programmaufbau machen. Es versteht sich von selbst, daß beim Programmaufbau die Regeln der strukturierten Programmierung beachtet werden sollten. Dahinter steckt nichts anderes als der Versuch, das Programm in möglichst wenige voneinander unabhängige Einzelblöcke aufzuteilen. Beim Auftreten von Fehlern kann man dann das Modul eintreten, in dem der Fehler auftritt. Außerdem muß beim Neuschreiben von Teilen der Software nicht auch noch der Rest des Programms auf erforderliche Änderungen überprüft werden. Sind die Blöcke wirklich unabhängig, dürfen Sie sicher sein, daß sich Änderungen in einem Unterprogramm nur dort auswirken. Alle diese Vorkehrungen machen das Programm wartungsfreundlicher.

Entwickeln Sie Programme nur für den eigenen Gebrauch, stellt sich natürlich die Frage: Lohnt sich der Aufwand? Er lohnt. Denn erstens haben Sie selbst mehr Freude an Ihrem Programm. Und zweitens: Wissen Sie ganz genau, daß sich nie ein anderer für Ihr Programm interessieren wird?

(Nikolaus M. Heusler)

Bild. Beispiel für einen guten, übersichtlichen Bildschirmaufbau

Listing. Eine komfortable INFORM-Routine in Basic, bitte mit dem Checksummer eingeben