Please activate JavaScript!
Please install Adobe Flash Player, click here for download

arcAKTUELL 2.2012 - Erde 2.0 - GIS und Natur

51t ipps und t ricks Dependency Matrix (auch: DSM – Dependency Structure Matrix) Die DSM4 dient unter anderem auch zum Paketieren von Komponenten und zum Identifizieren von unerwünschten Zyklen. Gegenüber anderen DSM-Analysierern (zum Beispiel Reflector mit DSM-Addin) besticht NDepend wieder mit der Navigation und Informationsfülle (» Abbildung 2). CQL (Code Query Language) CQL ist eine an SQL angelehnte deklarative Abfragesprache für die Analyse von Code und den Aufbau und die Verifizierung von Metriken. Sie ist inzwischen das herausragendste Feature von NDepend; im ers- ten Kontakt ist es für einen Entwickler oft sehr überraschend, dass man Code auf diese Weise auf einer höheren Ebene betrachten kann. Dazu am besten ein paar Beispiele: · Anzeigen von öffentlichen Methoden mit mehr als 30 Codezeilen: · Sortiertes Anzeigen von Methoden mit mehr als 200 IL-Anweisungen: · Welche Klassen implementiert IDisposable Für die CQL-Konstrukte stehen ca. 100 Keywords zur Verfügung und für das Schreiben eigener Abfragen ein eigener Intellisense-fähiger Editor. Eine detaillierte Spezifikation von CQL findet sich in der Online-Doku- mentation.5 Metriken Neben vielen klassischen Metriken wie LOC (lines of code), CC (cyclo- matic complexity) oder DIT (depth of inheritance tree) bietet NDepend viele weitere nützliche Metriken an – insgesamt sind es circa 80 (» Abbil- dung 3)! Zusammen mit CQL lassen sich diese Metriken für die Auswertung von Kenngrößen verwenden, damit kann eine Vielzahl eigener Qualitäts- Belange überwacht werden. Diff-Analyse Gerade während der Weiterentwicklung von API-Bibliotheken ist es für die Nutzerakzeptanz essenziell, die einmal veröffentlichten Schnittstel- len nicht bzw. nur marginal zu modifizieren, um dem Anwender ein weit- gehend einfaches Upgrade anzubieten.6 Dazu ist es notwendig, den neuen Stand der Schnittstelle kontinuierlich mit dem alten zu verglei- chen, um Interface Breaks schnell zu entdecken bzw. zu eliminieren. NDepend kann diesbezüglich verschiedene Projekt- und (dank Reflec- tor-Anbindung) sogar Auslieferungsstände miteinander vergleichen. Benutzung NDepend kann als Stand-alone-Applikation oder als Visual Studio Plug­ in verwendet werden. Überragend sind die Navigationsmöglichkeiten und die interaktive Informationsaufbereitung. Es existiert wohl im Mo- ment kein weiteres Tool mit einer derart hohen Benutzerfreundlichkeit. Eine umfassende Projekt-Analyse kann als interaktiver HTML-Report er- zeugt werden (» Abbildung 4). Dank eines Console Runners lässt sich NDepend leicht in Continuous- Integration-Prozesse einbinden, um ein entsprechendes Dashboard mit neuesten Analyseergebnissen versorgen zu können. Fazit NDepend ergänzt den Werkzeugkasten eines .NET-Softwareentwicklers um einen wichtigen Baustein zur Gewährleistung einer professionellen Entwicklung. Marko Apfel Esri Deutschland GmbH Kranzberg ++ 3 NDepend Metriken 4 NDepend Report 1 CQL : http://bit.ly/rYGGcu 2 Design Principles and Design Patterns: http://bit.ly/vJMrBg 3 .NET Reflector Add-Ins: http://bit.ly/A6a6kd 4 Using Dependency Models to Manage Complex Software Architecture: http://bit.ly/uF2bJn 5 Code Query Language 1.8 Specification: http://bit.ly/u1n7V6 6 Avoid API breaking changes: http://bit.ly/sFLAF1 51

Seitenübersicht