Programmcodeanalyse mit FxCop

Veröffentlicht auf 13. Juli 2009

Software-Qualität kann man nicht nur prüfen, sondern man kann auch versuchen durch bestimmte Rahmenbedingungen Sie zu produzieren .

Im Beispiel des Quellcodes kann man bestimmte Regeln vorgeben, z.B. Namenskonventionen, Architektur-, Sicherheitsrichtlinien, Entkopplung, Wiederverwendbarkeit, Portabilität, sonstige Best Practices oder Performance-Obergrenzen. Was aber nützen Regeln, wenn man deren Einhaltung nicht prüfen kann? Eine Prüfung von Hand ist kostspielig und aufwendig und wird deshalb meist nicht durchgeführt.

Um dies zu automatisieren, existieren aber bestimmte Tools, die als Compiler oder regelbasierte Engines implementiert sind und den Programmcode nach bestimmten Anzeichen und Merkmalen von Regelverstößen durchsuchen können.
Ein bekanntes und kostenloses Codeanalysewerkzeug für .NET Assemblies ist Microsofts FxCop , es prüft in der Standardeinstellung gegen die Entwurfsrichtlinien des Microsoft .NET-Frameworks .
Man kann jedoch auch einzelne Regeln aus der Prüfung herausnehmen oder ganz eigene Regelwerke erstellen und importieren.

Im Gegensatz zu den meisten anderen ähnlichen Tools analysiert FxCop jedoch den kompilierten Code und nicht den Quellcode. Der Vorteil liegt unter anderem darin, dass nicht nur der Code auf Sicht geprüft werden kann, sondern auch wie er sich tatsächlich verhält, welche Metadaten er verwendet und die Ausführungsgeschwindigkeit jeder einzelnen Funktion.

FxCop kann per GUI, über die Kommandozeile oder als PlugIn für Visual Studio verwendet werden.

Um die FxCop-GUI zu verwenden öffnet man die GUI, erstellt ggf ein neues Projekt, fügt Targets (.NET exe, dll) hinzu, konfiguriert die Regeln und startet das Tool über den Button analysieren.
Anschließend erhält man zu allen möglichen Regelverstößen Meldungen mit einem Hinweis auf die Ursache und einen Verbesserungsvorschlag. Die gefundenen Verstöße werden in unterschiedliche Schweregrade eingeteilt, nicht jeder muß also befolgt werden, unsinnige Meldungen können auch für weitere Läufe ausgeblendet werden.

Die ausgeworfenen Meldungen sind entsprechend ausführlich und können als XML exportiert werden. Sollten dennoch Fragen zu den Meldungen, Regeln oder allgemein zur Anwendung von FxCop auftauchen, existiert eine sehr gute Hilfe , die die meisten Fragen schnell erklärt.

Mehr Infos unter http://www.microsoft.com oder http://blogs.msdn.com/fxcop/
Weitere Tools: http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis  (CppCheck, PMD, Sonar, Splint, StyleCop, ...)

Geschrieben von Robert Bullinger

Veröffentlicht in #Tools

Kommentiere diesen Post