ConQAT
# ConQAT

Das Continuous Quality Assessment Toolkit (ConQAT) ist eine Softwarequalitätsanalyse-Engine. ConQAT beruht auf einer Pipes- und Filter-Architektur, die es ermöglicht, Analysekonfigurationen mithilfe einer graphischen Konfigurationssprache zu erstellen. Es unterscheidet sich damit von anderen Analysewerkzeugen, die meist ein fixiertes Datenmodell und eine fest implementierte Berechnungslogik nutzen.

## Architektur

Die ConQAT zugrunde liegende Pipes- und Filter-Architektur wird in den Analysekonfigurationen, sogenannten ConQAT-Blöcken, ersichtlich. Diese bestehen aus einem Netzwerk aus ConQAT-Prozessoren bzw. weiteren Blöcken. Dadurch können Analysen konfiguriert werden, die flexibel an den Kontext eines zu analysierenden Softwaresystems anpassbar sind. Beispielsweise können dadurch verschiedene Arten von Code (manuell entwickelter Code, generierter Code, Testcode) unterschiedlich behandelt werden. Durch diese Architektur können Prozessoren und Blöcke wiederverwendet werden. So können beispielsweise Graphmetriken berechnet werden, unabhängig davon, ob der zugrundeliegende Graph einen Abhängigkeitsgraph eines Programmes, einen Kontrollflussgraphen oder einen Revisionsgraphen aus einem Versionsmanagementsystem darstellt.

## Funktionsumfang

ConQAT-Analysen können auf einer Kommandozeile im Batch-Betrieb ausgeführt werden. Neben dem Einsatz in Softwarequalitätsaudits ist die Einbettung in den Nightly Build eines Softwaresystems möglich. ConQAT bietet Prozessoren (sog. Scopes) zum Einlesen von Informationen aus verschiedenen Quellen, wie etwa Quellcode- oder Binärcode-Dateien sowie Issue-Trackern oder Versionsmanagementsystemen. Für viele Sprachen, darunter Java, C#, C/C++ und ABAP, werden Lexer-Prozessoren und andere Vorverarbeitungsschritte bereitgestellt, um darauf verschiedene Analysen durchzuführen. ConQAT implementiert Algorithmen zur Erkennung von Redundanz und zur Architekturanalyse. Zudem bindet es etablierte Werkzeuge wie FindBugs und FxCop über Prozessoren ein, die deren Ausgabeformat einlesen. Die Analyseergebnisse lassen sich in unterschiedliche Ausgabeformate exportieren, darunter XML- oder HTML-Dateien mit eingebetteten Visualisierungen durch unterschiedliche Diagramme und Treemaps.

## Hintergrund

ConQAT wird seit 2007 an der Technischen Universität München entwickelt. In mehreren Veröffentlichungen wurden seine Architektur und einzelne Analyseverfahren, wie die Klonerkennung zur Aufspürung von Redundanz sowieso Architekturkonformitätsanalysen, der Fachöffentlichkeit vorgestellt. Seit 2009 wird ConQAT gemeinsam von der TU München und der CQSE GmbH, einem aus der ursprünglichen Forschungsgruppe ausgegründeten Spin-off-Unternehmen, als Open-Source-Projekt weiterentwickelt. Insbesondere im Forschungsbereich der Redundanzerkennung auf Quellcode und Modellen wird ConQAT mittlerweile von mehreren internationalen Forschergruppen als Basistechnologie verwendet.