Entwicklung eines CodeQL basierten Werkzeuges zur Messung der Designqualität von Java Software.


Hintergrund: In der Literatur finden sich eine ganze Menge an Entwurfsprinzipien (z.B. Information Hiding Principle, Open-Closed Principle, Single Responsibility Principle). Um die Einhaltung dieser Prinzipien in einem Softwareprojekt auch sicherzustellen, braucht es Überprüfungswerkzeuge. Design Best Practices können helfen, das Ausmaß der Einhaltung von Entwurfsprinzipien zu messen. Beispiele für solche Design Best Practices sind avoidPublicFields, useInterfacesIfPossible oder avoidDuplicatesInSiblings. Am Institut für Wirtschaftsinformatik wurde das Werkzeug MUSE (Perl) implementiert, das ~70 Design Best Practices realisiert.

Ziel der Arbeit: Ziel der Arbeit ist die Portierung von Teilen des Werkzeuges unter Verwendung von CodeQL (CodeQL documentation). CodeQL wird aktuell von Github stark forciert und erlaubt die SQL-like Abfrage von Source-Code.

Aufgaben:

  • Auswahl jener Design Best Practices, die portiert werden sollen
  • Entwicklung eines CodeQL basierten Werkzeuges für die Analyse von Java Projekten.
  • Integration der Analyseergebnisse in SonarQube
  • Validierung des entwickelten Prototyps hinsichtlich der Performance, der Korrektheit und der Machbarkeit der Umsetzung auf Basis der zur Verfügung stehenden Sprachkonzepte in CodeQL.

Erwartete Ergebnisse:

  • CodeQL basiertes Analysewerkzeug
  • Beurteilung der Eignung des entwickelten Werkzeuges

Betreuung: Reinhold Plösch

Werkzeug zur Messung von objekt-orientierten Entwurfsprinzipien