Frage

Ich habe vor kurzem verwendet NDepend und es produziert PDBS einen guten Bericht über meine .net Baugruppen und zugehörige.

Die interessanteste Sache, die ich in dem Bericht war Abstraktheit vs. Instabilität Graphen. Ich wollte dies in Echt Detail verstehen, ich lese ihre Dokumente und Online-metrices aber es könnte nur in einem Umfang helfen.

In erster Linie möchte ich verstehen, wie die Grafik richtig und Techniken bewerten mit Stabilität steuern Abstraktheit.

Es ist ein sehr guter Artikel hier , dass die Gespräche zu diesem Thema aber mehr, was zusätzlich dazu was ich brauche ‚wie kann ich das kontrollieren? [Abstraktheit mit Stabilität Steuerung]

alt text

War es hilfreich?

Lösung

Abstrakt ist ein Maß für die Steifigkeit eines Softwaresystems. Je höher die Abstraktion, senkt die Steifigkeit (oder größer ist die Flexibilität) und umgekehrt. Wenn die Komponenten des Systems sind abhängig von abstrakten Klassen oder Schnittstellen ist ein solches System einfacher zu erweitern und zu verändern, als wenn es hing direkt auf konkrete Klassen.

Die Stabilität ist ein Maß für Toleranz wie in, wie gut das Software-System es ermöglicht es, ohne zu brechen Änderungen zu ändern. Dies wird bestimmt, indem die Abhängigkeiten der Komponenten des Systems zu analysieren.

Robert C. Martin Artikel auf OO-Metriken beschreibt diese Konzepte in quantitativer Begriffe.

Auszug aus dem Artikel:

Die Verantwortung, Unabhängigkeit und Stabilität einer Kategorie kann durch Zählen der gemessen werden Abhängigkeiten, die mit dieser Kategorie in Wechselwirkung treten. Drei Metriken wurden identifiziert:

Ca: Afferent Kupplungen. Die Anzahl der Klassen außerhalb dieser Kategorie, die innerhalb dieser Kategorie auf Klassen abhängen

Ce: Efferente Kupplungen. Die Anzahl der Klassen innerhalb dieser Kategorie, die außerhalb dieser Kategorien auf Klassen abhängen

I: Instabilitäts: (Ce ÷ (Ca + Ce)): Diese Metrik hat den Bereich [0,1]. I = 0 zeigt eine möglichst stabile Kategorie. I = 1 zeigt eine maximal instabile Kategorie.

A: Abstrakt: (# abstrakte Klassen in der Kategorie ÷ Gesamtanzahl der Klassen in der Kategorie). Diese Metrik Bereich ist [0,1]. 0 bedeutet, Beton und 1 bedeutet, völlig abstrakt.

In jedem Software-System besonders große, ist die Balance von entscheidenden Bedeutung. In diesem Fall sollte ein System ausgleichen Abstraktheit mit Stabilität, um „gut“ zu sein. Die Position auf der A-I Grafik zeigt dies. Bitte lesen Sie den Artikel für die Erklärung.

Andere Tipps

Sowohl Abstraktheit und Instabilität kann allein verwendet werden, um Ihren Code zu bewerten. Sie wissen im Voraus, wie abstrakt oder stabil sollten einige Modul sein. Zum Beispiel wollen Sie Präsentationsschicht mäßig abstrakt und sehr stabil, da niedrigere Module davon abhängen. Auf der anderen Seite wollen Sie Infrastrukturschicht hoch Beton (niedrige Abstraktheit) und sehr instabil sein, weil sie umsetzen sollte, was obere Schichten sind anspruchsvoll.

Sobald das klar ist, können Sie Abstraktheit und Instabilität in einem Diagramm kombinieren, und das ist die Instabilität-Abstraktheit Graphen. Sie wollen Ihren Code so viel Abstraktheit zeigen, wie es stabil ist, um die Bedürfnisse zu balancieren künftige Veränderungen der Anforderungen geeignet sind.

Aber wie auch immer, sollten Sie starkes Verständnis der Instabilität und Abstraktheit Metriken allein haben, bevor Sie versuchen, sie zusammenarbeiten zu verstehen. Sie können einige Beispiele auf welche finden Instabilität in diesem Artikel bedeutet: Wie Modul Kupplung und Instabilitäts Metriken verwenden Refactoring Führer

Es gibt einen ähnlichen Artikel eine CQLinq Abfrage abzuleiten, die Instabilität aller Module in der Anwendung misst: Wie Modul Kopplung an Messen und Instabilitäts mit NDepend

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