ConQAT

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
ConQAT
Aktuelle Version 2014.1
(31. Januar 2014)
Betriebssystem plattformunabhängig
Programmier­sprache Java
Kategorie Entwicklungswerkzeug
Lizenz Apache-Lizenz
www.conqat.org

Das Continuous Quality Assessment Toolkit (ConQAT) ist eine hoch konfigurierbare Softwarequalitätsanalyse-Engine. ConQAT beruht auf einer Pipes&Filter-Architektur, die es ermöglicht, sehr flexibel komplexe 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.

Ein ConQAT-Analyseblock, der mittels der graphischen Konfigurationssprache erstellt wurde.

Architektur[Bearbeiten]

Die ConQAT zugrunde liegende Pipes&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[Bearbeiten]

ConQAT-Analysen werden meist auf einer Kommandozeile im Batch-Betrieb ausgeführt. Neben dem Einsatz in Softwarequalitätsaudits wird es oft eingebettet in den Nightly Build eines Softwaresystems eingesetzt. ConQAT bietet Prozessoren (sog. Scopes) zum Einlesen von Informationen aus verschiedenen Quellen, wie etwa Quellcode oder Binarcode-Dateien sowie Issue-Trackern oder Versionsmanagementsystemen. Für viele Sprachen (Java, C#, C/C++, ABAP etc.) werden Lexer-Prozessoren und andere Vorverarbeitungsschritte bereitgestellt, um darauf verschiedene Analysen durchzuführen. ConQAT implementiert Algorithmen zur Erkennung von Redundanz, zur Architekturanalyse etc. in eigenen Prozessoren/Blöcken, zudem bindet es etablierte Werkzeuge, wie FindBugs, FxCop etc. über Prozessoren ein, die deren Ausgabeformat einlesen. Obwohl ConQAT unterschiedliche Ausgabeformate unterstützt (z.B. XML), werden zur Ausgabe meist generierte HTML-Dateien genutzt, um die Analyseergebnisse anzuzeigen. Darin eingebettet werden Visualisierungen, wie unterschiedliche Diagrammtypen, Treemaps, Architekturdiagramme etc.

Hintergrund[Bearbeiten]

ConQAT wird seit 2007 an der Technischen Universität München entwickelt und erlangte durch mehrere Veröffentlichungen über seine Architektur sowie über einzelne Analyseverfahren, wie der Erkennung von Redundanz (Klonerkennung) oder Architekturkonformitätsanalysen Bekanntheit[1][2][3][4]. 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 (Clone Detection) auf Quellcode und Modellen wird ConQAT mittlerweile von mehreren internationalen Forschergruppen als Basistechnologie verwendet.

Literatur[Bearbeiten]

Quellen[Bearbeiten]

  1. Flexible Architecture Conformance Assessment with ConQAT. (PDF; 325 kB) von F. Deissenboeck, L. Heinemann, B. Hummel, E. Juergens: Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE’10), 2010.
  2. The loss of architectural knowledge during system evolution: An industrial case study. (PDF; 299 kB) von M. Feilkas, D. Ratiu, E. Juergens: Proceedings of the 17th IEEE International Conference on Program Comprehension (ICPC’09), 2009
  3. A Workbench for Clone Detection Research (PDF; 359 kB) von E. Juergens, F. Deissenboeck, B. Hummel: Proceedings of the 31st International Conference on Software Engineering (ICSE’09), 2009.
  4. Do Code Clones Matter? (PDF; 263 kB) von E. Juergens, F. Deissenboeck, B. Hummel, S. Wagner: Proceedings of the 31st International Conference on Software Engineering (ICSE’09), 2009.