Mehr Code = mehr Fehler

10

Zurück im College erinnere ich mich an einen Professor, der der Klasse eines der Gesetze der Informatik beibrachte. Er sagte etwas wie "Mehr Code bedeutet mehr Fehler" und gab ihm einen Namen (The Law Of Whatchamacallit) und schrieb ihn jemandem zu.

Weiß jemand, woher dieses "Gesetz" kommt, wer es gesagt hat oder was es ursprünglich ist?

Jeff
quelle
6
Erinnert mich daran: "Ein Designer weiß, dass er Perfektion erreicht hat, nicht wenn nichts mehr hinzuzufügen ist, sondern wenn nichts mehr wegzunehmen ist." -Antoine de Saint-Exupery
Kirk Woll
4
Erinnert mich an "Es gibt keinen Code, der schneller ist als kein Code" (Taligents Leitfaden zum Entwerfen von Programmen).
Luke Woodward
1
Nun, da Sie es hier erwähnt haben und niemand weiß, wie es heißt, nennen wir es "Jeffs Gesetz".
FrustratedWithFormsDesigner
@ Kirk, ein ähnliches Zitat von Arthur William Radford (Malerei): "Die Hälfte der Kunst weiß, wann sie aufhören muss". Auch in diesem Zusammenhang sehr passend.
Berin Loritsch
Ich mag "Jeff's Law". Als nächstes kommt der Buchhandel. Wer hilft mir bei der Suche nach einem Verlag? :)
Jeff

Antworten:

7

Darüber hinaus ist eine erhebliche Anzahl der Probleme durch fehlerhafte Software verursacht, die auftritt, weil Anbieter ihren Programmen immer mehr Funktionen hinzufügen, was zwangsläufig mehr Code und damit mehr Fehler bedeutet.

Von Andrew Tannenbaum

Dr. Belisarius
quelle
2
Links zu Google-Suchanfragen sind nicht besonders nützlich. Können Sie die relevanten Informationen extrahieren und in Ihrer Antwort veröffentlichen?
ChrisF
1
@ ChrisF ist das erste Ergebnis in der Buchsuche. Es ist urheberrechtlich geschütztes Material, und ich möchte lieber nicht in Textform zitieren. Vielen Dank für Ihren Kommentar.
Dr. Belisarius
2
Ich kann mir vorstellen, dass eine faire Verwendung ein Zitat abdecken würde.
Orbling
1
Sie scheinen nicht bereit zu sein, die Änderungen vorzunehmen, also habe ich es für Sie getan.
Josh K
das klingt richtig. Vielen Dank! Ich habe jahrelang versucht, mich daran zu erinnern.
Jeff
4

Böhms Buch Software Engineering Economics hat es als Grundformel.

Aufwand = k * S ^ a

Wobei S die Quellzeilen des Codes ist.

Und die Potenzfunktion a war> ​​= 1,0.

S.Lott
quelle
4

@ Belisarius: Gut gesehen mit Tannenbaum.

@ Jeff: Wenn Tannenbaum nicht klingelt, hat Ihr Professor möglicherweise Occam und das Gesetz der Wirtschaftlichkeit / Nachsicht erwähnt. (Siehe Occams Rasiermesser .)

@ S.Lott: Dijkstra hat früher ziemlich stark gegen die Verwendung von Codezeilen als Maß für nützliche Arbeit argumentiert. Er sagte im Grunde, dass es die falsche Variable maximiert. Natürlich versucht Böhm, den Aufwand zu modellieren, und die dortigen Codezeilen sollten gelöschte Codezeilen enthalten.

Bearbeiten:

Ich dachte, ich würde hinzufügen, dass Dijkstra auch sagte, "Einfachheit ist Voraussetzung für Zuverlässigkeit".

Kevin A. Naudé
quelle
7
Verwenden Sie "Kommentar hinzufügen" unter Antworten, um Kommentare hinzuzufügen, anstatt sie in eine Antwort zu schreiben.
1
@ Thorbjørn Ravn Andersen - leider kann er als Benutzer mit <50 Wiederholungen keine Kommentare hinzufügen.
ChrisF
1
@ Thorbjørn: Du brauchst 50 Wiederholungen, um Kommentare hinterlassen zu können. @ Kevin: Wenn Sie Ihre SO- und Programmiererkonten verknüpfen, erhalten Sie 100 Wiederholungen, sodass Sie sofort Kommentare hinterlassen können.
Anon.
1
@ Kevin - Programmers 'ist kein Forum, sondern eine Frage-und-Antwort-Seite. Sie können gerne eine Antwort veröffentlichen, die mehr Informationen enthält als die aktuellen Antworten, aber Sie sollten Kommentare nicht als Antworten veröffentlichen. Wenn Sie die FAQ lesen, werden Sie feststellen, dass Sie 50 Reputationen benötigen, um Kommentare abgeben zu können. Dies ist jedoch recht einfach zu erreichen.
ChrisF
1
@Anon - Sie benötigen> 200 Wiederholungen auf mindestens einer Website, um den Bonus zu erhalten. Leider ist Kevin im Moment nur als 160 auf SO. Sie können Ihre Konten jedoch jederzeit neu zuordnen. Wenn Sie also 200 auf einer Website erreichen, erhalten Sie den Bonus für alle.
ChrisF