Statische Code Analyse

Egger, Joel and Stocker, Marcel (2018) Statische Code Analyse. Student Research Project thesis, HSR Hochschule für Technik Rapperswil.

[thumbnail of FS 2018-SA-EP-Stocker-Egger-Reserviertes Thema  Code Design Analysis in C#.pdf]
Preview
Text
FS 2018-SA-EP-Stocker-Egger-Reserviertes Thema Code Design Analysis in C#.pdf - Supplemental Material

Download (2MB) | Preview

Abstract

Wir haben eine neue statische Design- und Stil-Analyse für C# entwickelt. Diese prüft den Code während dem Programmieren darauf, ob sich Rechtschreibfehler eingeschlichen haben, ob die Benennung von Klassen, Interfaces, Variablen, etc. den allgemeinen Richtlinien entsprechen und ob die bekanntesten Code Metriken eingehalten wurden. Die gefundenen Fehler-/Korrekturelemente werden in der IDE farblich markiert.

Die zahlreichen Analysen wurden in folgende drei Kategorien unterteilt:

Lexikalische Analyse
Zum einen wird jeder Bezeichner in ihre einzelnen Wörter unterteilt und jedes einzelne Wort wird mit der Rechtschreib-Datenbank überprüft. Zum anderen wird ermittelt, um welchen Bezeichnertyp es sich handelt und ob dieser die richtigen Wortarten enthält. Bei Klassennamen braucht es zum Beispiel ein Nomen am Ende

Code-Stil Analyse
In der Code-Stil Analyse wird der Code dahingehend überprüft, ob dieser noch zu vereinfachen wäre. Hierzu kommen mehrere Möglichkeiten in Frage, welche analysiert werden könnten.

Metrik Berechnungen
In dieser Kategorie werden bekannte Metriken berechnet. Darunter fallen Metriken wie: Lines of Code (LOC), oder Lack of Cohesion in Methods (LCOM*), und andere.

Das Projekt wurde in einem VSIX Projekt realisiert und wird somit als Visual Studio Extension zur Verfügung gestellt. Das Tool wurde über die Open Source Projekte Log4Net, Prism und Wox laufen gelassen. Dabei kam heraus, dass Log4Net am meisten auf die Code-Analyse angesprungen ist. Die gefundenen Code Smells betrafen vor allem Schreibfehler (darunter auch unnötige Abkürzungen von Wörtern), Vereinfachungen mit Typ-Inferenz (var Keyword) und zu lange Klassen oder Methoden.

Die implementierten Analysen liefern hilfreiche Meldungen zu Design- und Stil-Problemen. Dank dessen kann man sich einen guten Ein-/Überblick sowohl über die Komplexität als auch über die Qualität des Codes machen.

Item Type: Thesis (Student Research Project)
Subjects: Area of Application > Development Tools
Area of Application > Statistics
Technologies > Programming Languages > C#
Technologies > Frameworks and Libraries > .NET
Divisions: Bachelor of Science FHO in Informatik > Student Research Project
Depositing User: OST Deposit User
Contributors:
Contribution
Name
Email
Thesis advisor
Bläser, Luc
UNSPECIFIED
Date Deposited: 31 Jan 2019 11:50
Last Modified: 31 Jan 2019 11:50
URI: https://eprints.ost.ch/id/eprint/700

Actions (login required)

View Item
View Item