Home

Was macht Programmiertechnik?

Programmiertechnik sorgt dafür, daß Programme weniger Fehler enthalten, daß sie übersichtlicher sind und daß sie leichter hantierbar sind, d. h. daß man sie leichter ändern kann und daß man sie besser verwenden kann, weil sie stabiler sind.

Kurz: Sie verbessert die Softwarequalität.

Was ist Softwarequalität:

1. Wenige, bis keine Fehler. (Ab einer gewissen Komplexität kann man nicht mehr mit Bestimmtheit sagen, daß ein Programm völlig fehlerfrei ist. Die Fehler tauchen möglicherweise nicht so oft auf, weil sie vielleicht in Zweigen liegen, die nicht oft durchlaufen werden. Oder man kann sie irgendwie umgehen.)

2. Fehlertoleranz (Wie gut wird das Programm mit fehlerhaften Eingaben fertig? - Die sattsam bekannte Absturzneigung und Verklemmungen)

3. Realisierung aller Vorgaben (Wurde nichts vergessen?)

4. Verständlichkeit (=Wartbarkeit, leichter änderbar, anpaßbar und wieder verwendbar. Der oft gehörte Spruch: "Ach, bis ich das verstanden habe, schreibe ich das eben schnell selber neu." ist, man wird mir sicher zustimmen, viel zu teuer.)

5. Einfachheit (=Es gibt nicht fünf verschiedene Wege, dasselbe zu erreichen. Das bläht den Code auf, macht fehleranfälliger und verwirrt den Benutzer. Beispiel: Microsoft-Word)

Das sind die wichtigsten Merkmale von guter Software. Die Meinungen, was außerdem noch gute Software ausmacht, gehen auseinander. Aber man kann sicher noch einige weitere Kriterien anführen.
Wie erreicht man diese Ziele?

  • Es geht darum, Abläufe übersichtlich zu strukturieren (z. B. mit Entscheidungstabellenverarbeitung oder Automaten und ähnlichem) und dabei auch vollständig zu sein.
    Es ist durchaus sinnvoll, das von der Hardware-Entwicklung bekannte Prinzip "Operations- werk /Steuerwerk", in die Software-Entwicklung zu übertragen. (Zwischenfrage: "Warum ist Hardware so verhältnismäßig wenig fehleranfällig?")
    Also weg von den vielen komplexen Abfragebäumen. (Ja, ich weiß, man wird sie nicht vermeiden können, aber müssen die denn alle so komplex sein?)
  • Das "Kontrollblockprinzip" hilft bei der Vermeidung von Seiteneffekten. Das ist besonders wichtig, denn das gibt eklige Fehler. Objektorientierte Sprachen unterstützen dieses Vorhaben sehr gut.
  • Es ist wichtig, alle Randbedingungen zu berücksichtigen (z. B.: "Was mache ich, wenn die Festplatte voll ist?"), jedenfalls, die, die einem einfallen. oder auch Besonderheiten der Arithmetik
  • Prozeßstrukturen, die durch Unterbrechungen entstehen, müssen übersichtlich dargestellt werden.
  • Das sind die wichtigsten Merkmale von guter Software. Die Meinungen, was außerdem noch gute Software ausmacht, gehen auseinander. Aber man kann sicher noch einige weitere Kriterien anführen.
    Wie erreicht man diese Ziele?

    Bis auf den Punkt 3, der oben genannten Zielaussagen, lassen sich die anderen mit den genannten Verfahren erfüllen. Aber hier gilt, daß es sich manchmal beim Programmieren herausstellt, daß etwas vergessen wurde. Man sollte dann den Mut besitzen, das zu ergänzen.

    Was sind die Fehlerquellen?

  • Übergroße Hast. („Wir müssen ganz schnell fertig werden, wir haben keine Zeit, können Sie nicht doch mal die nächste Nacht durch arbeiten?..“ - „Ach, lassen Sie das jetzt mal, das kommt wahrscheinlich gar nicht oft vor...“ und dergleichen.)
  • Unvollständige Definitionen. („Wir haben nicht daran gedacht, was passiert, wenn nach drei Mahnungen immer noch nicht gezahlt ist...“)
  • Falsche Vorhersagen. („Ich dachte, das weiß jeder...“)
  • Randbedingungen, Größen etc. („Oh, die Festplatte ist voll, was mache ich jetzt...“)
  • „Übersetzungsfehler“ („Ach, so haben Sie das gemeint.")
  • Unübersichtliche oder fehlende Ablaufstrukturen („Das wird alles über Unterbrechungen gesteuert... Da braucht man keine besondere Ablaufsteuerung.")
  • Zu große Komplexität, Abfragebäume, statt Entscheidungstabellenverarbeitung. (z. B. drei Abfragen ergeben schon acht Möglichkeiten!)
  • „Seiteneffekte“ (globale Variablen, ja, die gibt es immer noch, sie sind bloß besser versteckt!)
  • Rundungsfehler etc.
  • Das Assoziativgesetz ist nicht immer erfüllt.
  • Mangelhafte Testdaten
  • Diese Liste erhebt keinen Anspruch auf Vollständigkeit, aber die Fehler, die so produziert werden, genügen schon, um ausreichend Ärger zu machen. Die Reihenfolge ist auch eher zufällig, sie sagt nichts über die Häufigkeit und Priorität der Fehler aus.

    Einige Beispiele für Fehler:
    1. Word:

    a. "Word kann die Silbentrennung nicht durchführen." Macht es aber doch. Zugebenermaßen, ein harmloser Fehler.

    b. Man fügt einen Text ein, plötzlich wird alles rot markiert, unten steht bei Sprache plötzlich: "Englisch(USA)". Logisch, daß bei einem deutschen Text so ziemlich alles als Fehler markiert wird. Und überhaupt. Die Orthografieprüfung, resp. die Verböserungsvorschläge sind ein Quell von Heiterkeit.

    c. Man fügt einen Text ein, plötzlich ist die Schrift verändert.

    2. Alice (Internet-Provider):

    a. Wenn man einmal beim LOGIN für EMAIL etwas falsches eingegeben hat, ist es aus und vorbei. Das Ding ist wie ein Elefant, es vergißt einmal erlittenes Unrecht nie. Beim nächsten Mal begrüßt es einen sofort mit einer Fehlermeldung, obwohl man nichts eingegeben hat. Man kommt nie wieder da ran. Abgesehen davon ist die Seite unübersichtlich, will sagen es sind Funktionen doppelt.

    b. Das Einwählen über diese Software funktioniert nicht. Es kommt die Meldung, die Kabelverbindung sei nicht in Ordnung. Kurze Zeit später, ohne irgendeine Manipulation! funktioniert der Zugang mit einer anderen Software. (Wahrscheinlich ist irgendein Cookie ausgeschaltet, oder irgend so etwas. Aber der normale Benutzer ist damit überfordert, vor allem bei solchen unspezifischen Meldungen. Und ich mag mich auch nicht damit herumärgern.)

    Ergebnis: Man deinstalliert das Zeug einfach und besorgt sich woanders einen Email-Account.

    3. Die ganzen "Verklemmungen"
    Es geht nichts mehr vor oder zurück, man kann nur noch mit dem RESET-Knopf weiter kommen.

    4. Die ganz schlimmen Sachen
    Der Bildschirm wird blau, es erscheinen Zahlenkolonnen, irgendetwas von unbekanntem Interrupt, und es wird ein Speicherauszug angeboten, (mit dem der Benutzer überhaupt nichts anfangen kann.)
    So etwas darf nur im Testbetrieb vorkommen!!!

    Und im übrigen kann ja sicher jeder, der ein bißchen mit dem Rechner arbeitet, diese Liste aus eigener leidvoller Erfahrung beliebig verlängern.

    Home

    26.7.2005 11:45