Frage

Es gibt verschiedene Arten von Qualität, die in Softwareprodukten, z. B. Fitness für Zweck (z. B. Endverbrauch), Wartbarkeit, Effizienz, gemessen werden können. Einige davon sind etwas subjektiv oder domänenspezifisch (z. B. gute GUI -Designprinzipien können sich in den Kulturen unterschiedlich unterscheiden oder vom Verwendungskontext abhängig sein, denken Sie an die Verwendung von Militär und Verbraucher).

Was mich interessiert, ist eine tiefere Form der Qualität im Zusammenhang mit dem Netzwerk (oder Graph) von Typen und deren Zusammenstellung, dh, auf welche Typen sich jeder Typ bezieht, gibt es eindeutig identifizierbare Cluster der Vernetzung in Bezug auf eine ordnungsgemäß Tierige Architektur oder umgekehrt gibt es einen großen "Ball" von Typ Referenzen ("monolithischer" Code). Auch die Größe jeder Art und/oder Methode (z. B. gemessen in der Menge des Java -Byte -Codes oder .NET IL) sollte einen Hinweis darauf geben Stücke.

Eine Analyse, die auf solchen Ideen basiert, kann möglicherweise Metriken berechnen, die mindestens ein Stellvertreter für Qualität sind. Die genauen Schwellenwert-/Entscheidungspunkte zwischen hoher und geringer Qualität würden subjektiv sein, z. B. wie bei Wartbarkeit wir nach Wartbarkeit durch menschliche Programmierer und somit müssen die funktionelle Zerlegung mit der Funktionsweise des menschlichen Geistes vereinbar sein. Als solches frage ich mich, ob es jemals eine mathematisch reine Definition der Softwarequalität geben kann, die alle möglichen Software in allen möglichen Szenarien überschreitet.

Ich frage mich auch, ob dies eine gefährliche Idee ist, dass Geschäftsdrucke, wenn objektive Stellvertreter für Qualität beliebt werden, Entwickler dazu veranlassen, diese Metriken auf Kosten der Gesamtqualität zu verfolgen (diese Aspekte der Qualität, die von den Proxies nicht gemessen werden).

Addendum: Eine andere Art des Denkens über Qualität ist aus Sicht der Entropie. Entropie ist die Tendenz von Systemen, von geordneten zu ungeordneten Zuständen zurückzukehren. Jeder, der jemals in einer realen, mittleren bis großen Softwareprojekt gearbeitet hat, wird das Ausmaß zu schätzen wissen, in der die Qualität der Codebasis im Laufe der Zeit tendenziell verschlechtert wird. Der Geschäftsdruck führt im Allgemeinen zu Änderungen, die sich auf neue Funktionen konzentrieren (außer wo Qualität selbst das Prinzip-Verkaufsargument ist, z. eine Qualitäts- und Wartungsperspektive. Können wir also die Entropie der Software messen? Und wenn ja, wie?

War es hilfreich?

Lösung

Ndepend, Zumindest für .NET -Code bietet wir die besten Metriken für die Softwarequalität, die wir bisher haben. Sie haben 82 verschiedene Code Metriken. Suchst du danach? Wenn Sie ein .NET -Programmierer sind, finden Sie dies möglicherweise Blogeintrag Über die Analyse eines sehr beliebten/großen Open -Source -Projekts, um interessant zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top