Hi,
Wenn etwas für genau bezeichnete Bedingungen funktionieren soll, muß es einen Mechanismus geben, der andere Bedingunegn ausschließt. Ein Programm, das dieses nicht tut ist als fehlerhaft anzusehen und somit als nicht funktionierend.
Da hast Du aber eben noch genau was anderes gesagt.
Nein, nur nicht so elaboriert.
Außerdem würde ein "Newbie" immer den berühmten Spruch tun: "wieso, denn? Funktioniert doch!"
Ja, und genau das ist das Problem: es funktioniert eben nicht. Das Programm soll ja nur auf bestimmte Eingaben eine ebenso bestimmte Ausgabe erarbeiten. Läßt Du nun unbestimmte Eingaben zu, gibt's unbestimmte Ausgaben. Das kann doch keiner guten Gewissens als "funktionierend" bezeichnen?
Tut ja auch normlerweise keiner. Wenn aber nun die Spezifikationen kaputt sind, sozusagen "nicht funktionieren", dann triit der andere von mir beschriebene Fall ein:
Sollte es Absicht gewesen sein, das es auf die Art funktioniert - warum auch immer - dann entspricht das Programm den Spezifikationen und ist als voll funktionstüchtig anzusehen.
Wer sagt das?
Die Spezifikationen sagen das.
Wann funktioniert ein Programm? Wenn es das tut, was in den Spezifikationen steht. Sind die nicht in Ordnung, ist dsa nicht die Schuld des Programmierers, sein Programm kann durchaus exakt nach Vorgabe funktionieren.
Ein kleines krummes Beispiel:
Wenn ich beim Schlosser meiens Vertrauens Schrauben bestimmter Größe anfertigen lasse und die passen nicht, weil ich die verkehrten Maße angegeben habe, wessen Schuld ist das dann? Sind die Schrauben deswegen kaputt, nur weil es keine Mutter dafür gibt?
Alles Bool, Herr Kollege, alles Bool und alles darüber hinaus wird schon mal gar nicht bezahlt >;-
?
Es ist alles "Ja oder Nein", nichts dazwischen, und wenn doch - wird die Rechnung für den Murks nicht bezahlt.
Ich habe mal in einer ewig langen Switch-Anweisung an einer einzigen Stelle irgendwo statt eines Vergleiches eine Zuweisung gehabt. Alle anderen waren aber richtig. Da suchst Du Dich dämlich. Hat 'nur' einen ganzen Tag gedauert, das zu finden :-(( Ausgerechnet der fehlerhafte Auswahlfall kam nur bei jeder 100sten Abfrage dran, sodass der Fehler eben nur sehr selten auftrat.
Es gibt Programme, die einen bei sowas warnen können. Je nach Sprache gibt es Fallen, die können ein paar Zeilen pessimistischer Perlcode o.ä. gut aufspüren. Sowas sollte ein guter Progarmmierer schon am Taschenmesser dranhaben.
(Falls Du da noch nicht sabbernd vorgestanden hast, oder gar schon erworben: http://www.thinkgeek.com/gadgets/tools/6b3b/)
so short
Christoph Zurnieden