ConQAT
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.
Architektur
[Bearbeiten | Quelltext bearbeiten]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
[Bearbeiten | Quelltext bearbeiten]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
[Bearbeiten | Quelltext bearbeiten]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
[Bearbeiten | Quelltext bearbeiten]- F. Deissenboeck, E. Juergens, B. Hummel, S. Wagner, B. Mas y Parareda, M. Pizka: Tool Support for Continuous Quality Control. In: IEEE Software. Band 25, Nr. 5, September 2008, ISSN 0740-7459, S. 60–67, doi:10.1109/MS.2008.129 (englisch).
Weblinks
[Bearbeiten | Quelltext bearbeiten]Quellen
[Bearbeiten | Quelltext bearbeiten]- ↑ 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.
- ↑ 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
- ↑ 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.
- ↑ 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.