NDepend: Softwarequalität bei Autodesk-Erweiterungen

22. Januar 2019 CADsys Allgemein Sarah Feustel

Über eine Programmierschnittstelle entwickeln wir Apps bei Autodesk-Produkten wie Civil 3D, Revit oder Inventor. Entwickeln auch Sie Plugins und wollten schon immer mal die Qualität Ihres Quellcodes überprüfen?

Nur 20% der Zeit für Softwareentwicklung fließt in das Schreiben von neuem Quellcode, während die restlichen 80% für die Wartung und das Verstehen von bereits vorhandenem Quellcode aufgewendet werden. Halten Sie bestimmte Qualitätskriterien für Quellcode ein, verschiebt sich diese Zeit zugunsten des neuen Quellcodes. Um diese Qualitätskriterien zu messen, gibt es die Software NDepend, die wir hier am Beispiel unserer App Civil Reports nach deutschem Format vorstellen möchten:

Nach Auswahl und Analyse der Produktmappe wird das NDepend-Dashboard angezeigt.

Mit 747 Lines of Code (erste Spalte, oberes Fenster) ist unsere Anwendung sehr klein.

Zum Vergleich: AutoCAD 1.0 bestand aus 12.000 Lines of Code, Windows XP aus 45.000.000 Lines of Code. Aber alle Dinge fangen ja bekanntlich klein an.

Im unteren Bereich der mittleren Spalte zeigt der Abschnitt Method Complexity ein Maximum von 24. NDepend schreibt in seiner Hilfe:

  • Methoden > 15: schwer zu verstehen und zu warten
  • Methoden > 30: extrem komplex, sollten in kleinere Methoden geteilt werden

Über das Metriken-Fenster sieht man die größten Ausreißer: Eine Treemap teilt den programmierten Code in Namespaces, Klassen und Methoden auf. Die Größe der Rechtecke veranschaulicht die Länge der Methode. Die Farbe stellt die Komplexität dar. Dementsprechend sind große Rechtecke lange und komplexe Funktionen.

Dabei stechen zwei Methoden heraus:

#1 – Die Methode in der Klasse AlignmentEntityExt (Mitte): In dieser Methode werden die Bestandteile einer Straßenachse extrahiert. Diese Methode ist so komplex, da zwischen den verschiedenen Elementtypen für Abschnitte (Gerade, Bogen, etc.) mit einer switch-Anweisung unterschieden wird. Die CC-Metrik ist anfällig für solche Statements. Das ist allerdings eine Schwäche der Metrik, nicht von NDepend.

#2 – Die Methode HtmlReporters (links) erstellt den Berichtsteil für eine einzelne Achse. Diese Methode ist tatsächlich lang und kompliziert und könnte demnächst in kleinere Stücke aufgeteilt werden. Dabei helfen NDepend-Regeln.

Bei Rückfragen zum Thema NDepend und Qualitätskriterien für Quellcode stehe ich Ihnen gern zur Verfügung.

Ihr Ansprechpartner:

Achim Stuy

Mail: astuy@cadsys.de
Telefon: 0371 4000 70-222


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.


Keinen Beitrag verpassen!

© 2020 CADsys Blog Impressum Kontakt Datenschutz

Keinen Beitrag verpassen!

Abo?

Keinen Beitrag verpassen!