1977 stellte Maurice Howard Halstead seine Komplexitätsmessungen für Softwaresysteme vor , die Messungen des Programmvokabulars, der Programmlänge, des Volumens, des Schwierigkeitsgrades, des Aufwands und der geschätzten Anzahl von Fehlern in einem Modul umfassten. Laut Wikipedia bezieht sich die Schwierigkeit auf die Schwierigkeit, das Programm beim Lesen oder Schreiben zu verstehen, und der Aufwand kann in die Zeit übersetzt werden, die zum Codieren einer Anwendung mit Time = (Effort / 18) Sekunden benötigt wird.
Eine Messung ist nutzlos, es sei denn, die Daten und Berechnungen beziehen sich auf einen Aspekt der Softwareentwicklung. Ich habe jedoch keine Arbeit gefunden, die besagt, dass eine Schwierigkeit mit einem bestimmten Wert oder höher zu einer statistisch signifikanten Zunahme von Fehlern oder einem Zusammenhang zwischen Schwierigkeit und Zeit zum Lesen von Code neigt (eine Schwierigkeit mit N ergibt einen Durchschnitt von M Stunden, die verbracht wurden) Verständnis der Codebasis) oder jede Analyse der Fähigkeit, die Zeit nach der Tatsache zu berechnen, die für die Bestimmung der Qualität nützlich ist (zumal die Zeit zum Schreiben bereits als Maß aufgezeichnet werden sollte). Ich interessiere mich besonders für Halsteads Fehlerabschätzung (die in Wikipedia nicht erwähnt wird) - die Anzahl der Fehler in einer Anwendung kann mit Volume / 3000 oder Effort ^ (2/3) / 3000 abgeschätzt werden.
Ich suche zwei Dinge:
- Hat jemand die Software-Komplexitätsmessungen von Halstead in einer realen Anwendung verwendet, um die Softwarequalität zu bewerten? Wenn ja, wie haben Sie sie angewendet und sie haben sich als nützliche, gültige und / oder zuverlässige Messung erwiesen?
- Gibt es eine akademische Forschung in Form von Umfragen, Analysen oder Fallstudien, die die Gültigkeit (oder Ungültigkeit) von Halstead-Komplexitätsmaßen in Bezug auf die Softwarequalität erörtern?
- Gibt es eine akademische Forschung in Form von Umfragen, Analysen oder Fallstudien, die die Verwendung von Source Lines of Code (SLOC) zur Berechnung ähnlicher Größen wie Volumen, Schwierigkeit, Aufwand, Zeit und Fehler belegen? Ich würde vermuten, dass das Volumen möglicherweise nur einer SLOC-Anzahl entspricht und die Schwierigkeit möglicherweise der zyklomatischen Komplexität (und möglicherweise anderen Maßnahmen) entspricht. Mir ist auch bewusst, dass das Messen des Aufwands, der Produktivität oder der Zeit in SLOC möglicherweise irreführend ist.