Bedeutung der Anwendungsentwicklung ◦ Überblick ◦ ?

Die folgenden Meldungen veranschaulichen die Bedeutung der Softwareentwicklung für Wirtschaft und Gesellschaft. Gleichzeitig glossieren sie die Schwierigkeit der Programmerstellung.

- "47 Jahre vor Erreichung des Rentenalters haben alle volljährig gewordenen Bürger Neukölns die Broschüre 'Leben in unserer Mitte - Vorbereitung aufs Rentenalter' vom Bezirksamt zugesandt bekommen. Normalerweise bekommen die Broschüre Personen, die vor dem Eintritt in das Rentenalter stehen, während den volljährig gewordenen ein Gruss des Bürgermeisters zugeht. Wie der Bezirk mitteilte, hat der Computer, in dem alle Namen gespeichert sind, wegen eines Defekts die beiden Namenslisten zusammengefasst."
- Ein Programm verrechnete sich bei der Schätzung des Steueraufkommens einer Stadt in den USA. Dies führte zu einer zu niedrigen Ansetzung der Steuerrate und so zu einem hohen Defizit in der Staatskasse.
- Die Versenkung des britischen Zerstörers “Sheffield” im Falklandkrieg soll durch ein fehlerhaftes Programm zur Steuerung von Abwehrraketen verursacht worden sein.

Man erzählt sich, dass alles mit einem Softwarefehler begann ...

Fussangeln für Softwareentwickler gibt es viele. Verbreitete Gründe sind:

- Je grösser ein Programm wird, desto wahrscheinlicher sind komplexe Wechselwirkungen zwischen seinen Objekten und desto folgenschwerer werden Entwicklungsfehler. Grosse Programme sind leider nicht immer vermeidbar. Die Software zur Steuerung des Jungfernflugs des amerikanischen Space Shuttle umfasste zum Beispiel eine halbe Million Codezeilen.

- Grosse Programme und kleine Zeitbudgets führen zu grossen Projektgruppen, die sich nur schwer koordinieren lassen.

- Zeitdruck führt meist zu unsorgfältigen Tests. Testen nimmt oft mehr Zeit in Anspruch als das eigentliche Programmieren.

Die Entwicklung von Software ist eine schwierige aufbau- und ablauforganisatorische Aufgabe. Programmtechnische Probleme lassen sich dabei meist leichter lösen als Aufgaben wie Spezifikation und Entwurf. Das Management grosser Softwareprojekte lässt sich mit dem grosser Ingenieurprojekten vergleichen. Auch hier gelten die bekannten Murphy-Gesetze:

- Wenn etwas schiefgehen kann, geht es bestimmt schief.

- Nichts ist so einfach, wie es aussieht.

- Alles wird teurer als zunächst geplant.

- Jede Arbeit erfordert mehr Zeit, als man hat.

- Es ist ein Naturgesetz, dass nichts jemals richtig klappt.

- Bevor man eine Sache anfangen kann, muss immer erst etwas getan werden.

- Alles lässt sich solange verbessern, bis es endlich zusammenbricht.

- Jede neue Erklärung schafft neue Verwirrung.

- Wer anderer Meinung ist, kann nicht logisch denken.

- Je wichtiger eine Entscheidung, desto grösser die Kommission.

- Mit zunehmender Dringlichkeit einer Entscheidung sinkt die Zahl der dafür Zuständigen.

- Sie können manche Leute immer und alle Leute manchmal zum Narren halten - und das genügt.

Praxis und Wissenschaft schlagen Faustregeln für die Strukturierung von Softwareprojekten vor. Wir veranschaulichen an einer einfachen Bibliotheksanwendung, wie ein Problem nach dem Grundsatz "Divide et impera" in Teilprobleme zerlegt wird, damit es sich einfacher programmieren lässt.

Kriterien der Softwarequalität
Ursachen von Softwareänderungen

Entwicklung einer Datenbankanwendung am Beispiel von TESTS