ConQAT

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 27. Oktober 2020 um 15:15 Uhr durch imported>Orthographus(3348819) (Rechtschreibung).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
ConQAT
Basisdaten

Entwickler CQSE GmbH, Competence Center Software Maintenance (Technische Universität München)
Aktuelle Version 2015.2
Betriebssystem plattformunabhängig
Programmiersprache Java
Kategorie Entwicklungswerkzeug
Lizenz Apache-Lizenz
www.conqat.org

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.

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

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.[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 auf Quellcode und Modellen wird ConQAT mittlerweile von mehreren internationalen Forschergruppen als Basistechnologie verwendet.

Literatur

Weblinks

Quellen

  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.