Blog 2 Min. Lesezeit

Verbessern Sie Ihre Visual-C++-Erfahrung deutlich

Artikel teilen
Make Your Visual C++ Experience Much Better.

Visual C++ gehört zu den am weitesten verbreiteten Entwicklungsumgebungen für C++ und bietet Entwicklern zahlreiche nützliche Funktionen. Jede neue Version bringt bedeutende Verbesserungen mit sich, und viele Erweiterungen helfen dabei, die Entwicklungsarbeit noch effizienter zu gestalten. In diesem Beitrag stelle ich einige nützliche Funktionen von CppDepend.

Ihre Codebasis visualisieren

Abhängigkeitsgraph

Ein Abhängigkeitsgraph gehört zu den gebräuchlichsten Darstellungen von Abhängigkeiten zwischen Codeelementen, und Visual Studio bietet dafür bereits eine nützliche Implementierung. Der von CppDepend bereitgestellte Graph legt den Schwerpunkt stärker auf die Codequalität: Die Größe der Knoten und die Stärke der Kanten können proportional zu verschiedenen verfügbaren Metriken dargestellt werden.

vs3

Abhängigkeitsmatrix

Die DSM (Dependency Structure Matrix) ist eine kompakte Möglichkeit, Abhängigkeiten zwischen Komponenten darzustellen und darin zu navigieren. Sie bildet dieselben Informationen wie ein Graph ab, ist jedoch besonders praktisch, wenn:

  • viele Codeelemente beteiligt sind.
  • Sie die Stärke der Abhängigkeiten zwischen Elementen bestimmen möchten.
  • Sie Abhängigkeitszyklen zwischen Codeelementen schnell erkennen möchten.
vs1

Treemap

In der Metrikansicht wird die Codebasis mithilfe einer Treemap. Treemapping ist eine Methode zur Darstellung baumartig strukturierter Daten mithilfe verschachtelter Rechtecke. Als Baumstruktur wird die übliche Code-Hierarchie verwendet:

  • C/C++-Projekte enthalten Namespaces
  • Namespaces enthalten Typen
  • Typen enthalten Methoden und Felder

Die Größe jedes Rechtecks ist proportional zur ausgewählten Metrik; standardmäßig handelt es sich dabei um NbLinesOfCode. Die Metric View kann außerdem eine zweite Metrik durch Einfärben der Treemap-Elemente darstellen, sodass zwei Code-Metriken gleichzeitig visualisiert werden können.

In dieser Treemap steht beispielsweise die Größe der Rechtecke für die Anzahl der Codezeilen, während die Farbe die zyklomatische Komplexität darstellt. Dadurch lassen sich die größten und komplexesten Methoden auf einen Blick erkennen.

vs2

Metrikinformationen

Für Projekte, Namespaces, Klassen, Methoden und Felder stehen zahlreiche Metriken zur Verfügung. Die Informationsansicht zeigt einige davon direkt an und erleichtert so die Beurteilung der Implementierungsqualität während der Entwicklung.

vs8

Regeln definieren

CQLinq ist möglicherweise die leistungsfähigste Funktion von CppDepend. Damit lassen sich anspruchsvolle Abfragen einfach definieren und gezielt bestimmte Codeelemente finden. Der CQLinq-Editor bietet zahlreiche hilfreiche Funktionen zum Erstellen eigener Regeln; die Ergebnisse werden dabei in Echtzeit berechnet.

vs5

Diagnosen abrufen

Mit CppDepend können Sie die von Clang, Cppcheck und Vera++ gemeldeten Probleme bequem abrufen. Über die API lassen sich außerdem weitere Werkzeuge integrieren.

vs9

Trenddiagramme

Trenddiagramme helfen dabei, die Entwicklung einer Metrik im Verlauf von Codeänderungen nachzuverfolgen. Viele Diagramme sind bereits standardmäßig vorhanden; eigene lassen sich ebenfalls unkompliziert erstellen.

vs6

Erweiterte Suche

Manchmal ist es sinnvoll, Methoden anhand ihrer Codegröße, zyklomatischen Komplexität, ihres Kommentaranteils, ihrer Kopplung oder anderer Metriken zu suchen.

CppDepend bietet genau diese Möglichkeit und erlaubt die Suche nach Codeelementen anhand einer großen Bandbreite von Metriken.

vs7

Fazit

CppDepend kann Ihnen helfen, Ihre Codebasis besser zu verstehen und Schwächen in Implementierung und Design aufzudecken. Der große Funktionsumfang kann den Einstieg allerdings zunächst etwas anspruchsvoll machen. Nach einigen Stunden lassen sich die wichtigsten Möglichkeiten des Werkzeugs jedoch gut beherrschen.

Artikel teilen