next up previous contents
Nächste Seite: Anforderungsdefinition (Pflichtenheft) Aufwärts: Programmiertechnik Vorherige Seite: Was ist Programmieren?   Inhalt

Beispiel einer Problemanalyse

Vor der Behandlung eines konkreten Beispieles soll kurz auf einige generelle Aspekte der Problemanalyse aufmerksam gemacht werden.

Möchte man die Lösung eines Problems mit Hilfe des Computers erleichtern, so muß man sich als erstes fragen, ob das Problem in geeigneter Weise quantifizierbar ist. Quantifizierbare Größen zeichnen sich durch die Existenz einer Einheit (Euro, Stück, kg, ...) aus, nur sie lassen sich durch Rechenoperationen weiterverarbeiten. Eng verknüpft mit dem Problem der Quantifizierung ist die Frage nach der Güte und Auswahl der Eingabedaten. Nur mit eindeutig definierten Grenzen und Geltungsbereichen sind Ergebnisse aussagekräftig. Ein populäres Beispiel hierfür sind die unter dem Namen ,,Ökobilanzen`` bekannten Umweltverträglichkeitsprüfungen, bei denen man durch unterschiedliche Grenzziehung zu vollkommen konträren Aussagen kommen kann. Über die Genauigkeit der Eingangswerte sollte man sich ausreichend Klarheit verschaffen, macht doch ein Ergebnis, welches genauer als die Eingabedaten ist, keinen Sinn. Allgemein gilt der wichtige Grundsatz:

Der Output eines Programms ist höchstens so genau wie sein Input.
Ein Programm erzeugt somit keine Information, es transformiert sie nur. Die Transformationsvorschrift muß aus sorgfältigen theoretischen Überlegungen hergeleitet werden. Es kann eine Bilanzierungsart oder eine daraus gewonnene Rechenvorschrift sein. Die Ausgabedaten schließlich müssen die in der Problemstellung aufgeworfenen Fragestellungen ausreichend beantworten. Hierbei ist es wichtig, die Ausgabedaten in ihrem -- durch die Eingabedaten limitierten -- Geltungsbereich zu bewerten. Ebenso sind Fehlermeldungen für die beim Rechenprozeß auftretenden Fehlerfälle vorzusehen. Als Beispiel können hier physikalisch sinnlose Zwischenwerte (negative Volumina etc.) genannt werden, welche eventuell im Endergebnis nicht sichtbar auftreten, es aber vollkommen verfälschen. Zusammenfassend sollte man also folgende Punkte beachten:

Nun zu unserem konkreten Beispiel:

Viele Studenten und Studentinnen sind ganz oder zum Teil auf finanzielle Unterstützung durch die Eltern angewiesen. Oftmals wird die elterliche Zahlung am Beginn des Studiums festgelegt und orientiert sich entweder direkt an einer für angemessen erachteten Kaufkraft oder indirekt am geltenden Bafögsatz. Sehr problematisch ist nun, daß jährliche Erhöhungen im allgemeinen nicht vorgesehen sind. Bei einer Geldentwertung von 4,5% p.a. erleidet man über einen Zeitraum von zwei Jahren einen Kaufkraftverlust von rund 8,8%! Da es Eltern gibt, die dieser Problematik eher verschlossen gegenüberstehen, soll es uns ein Programm ermöglichen, stichhaltige Argumente zur Lockerung der zögerlichen Zahlungsmoral aufzubieten.

Aufgrund der Zweideutigkeit des Wortes ,,Ausgabe``, einmal als finanzieller und einmal als informationstechnischer Terminus, werden im folgenden die Ein- und Ausgabedaten des Programms als ,,Input`` und ,,Output`` bezeichnet oder besonders gekennzeichnet.

Das Programm soll monatliche Bilanzen mit Ein- und Ausgabeseite erstellen können. Der Input wird dem Kontoauszug entnommen. Die Bilanzen sollen hinsichtlich der Berücksichtigung der Kosten und Einnahmen flexibel sein. Nicht regelmäßige Posten wie z.B. die Urlaubsfahrt oder die weihnachtliche Zuwendung der Oma sollen im Bedarfsfall nicht mitgerechnet werden. Die monatlichen Bilanzen machen eine Aussage über den Kaufkraftverlust, welcher sich in vier Erscheinungen bemerkbar machen kann:

Zur Analyse dieser Erscheinungen werden im Input-Teil des Programms verschiedene Einnahmen- und Ausgabenkategorien geschaffen. Die Kombination einzelner Kategorien in Verbindung mit einer einfachen Rechenvorschrift erzeugt die gewünschten, aussagekräftigen Daten. Näheres dazu im Pflichtenheft.


next up previous contents
Nächste Seite: Anforderungsdefinition (Pflichtenheft) Aufwärts: Programmiertechnik Vorherige Seite: Was ist Programmieren?   Inhalt
Lars Tornow 2003-04-02