ConQAT

From WikiAlpha
Jump to: navigation, search
The below content is licensed according to Creative Commons Attribution-ShareAlike License contrary to the public domain logo at the foot of the page. It originally appeared on http://en.wikipedia.org. The original article might still be accessible here. You may be able to find a list of the article's previous contributors on the talk page.

ConQAT
Developer(s) TU Munich CQSE
Stable release 2011.9 / Template:Release date
Development status Active
Written in Java
Operating system Cross-platform
Type Software Analytics quality
License Apache Licence
Website http://www.conqat.org
The Continuous Quality Assessment Toolkit (ConQAT) is a highly configurable software quality analysis engine. ConQAT is based on a pipes and filters architecture that enable to configure complex analysis configurations in a flexible way using a graphical configuration language. This architecture differs from other analysis tools that usually have a fixed data model and hard-wired analysis logics.
File:ConQAT-Block.png
A ConQAT analysis block that has been created using the graphical configuration language.

Architecture

ConQAT's underlying pipes and filters architecture manifests in its analysis configuration, so called ConQAT-blocks. These blocks contain a network of ConQAT processors or additional blocks. This allows configuring analyses that can be adapted to the context of the system to be analyzed with a high degree of flexibility. For example, different kinds of source code (manual written code, generated code, test code) could be treated in different ways. Furthermore, this architecture enable the reuse of blocks and processors in different contexts. Thus, for example, graph metrics can be calculated using the same blocks for dependency or control-flow graph of a program or a revision graph from a version management system.

Functionality

ConQAT analyses are usually executed on a command line in batch mode. Beside the application in software quality audits it is also often used integrated into a nightly build of a system. ConQAT implements prozessors (so called Scopes) to read data from different sources, such as souce code or binary code files as well as from issue trackers or version management systems. For a lot of languages (like Java, C#, C/C++, ABAP etc.) Lexer prozessord and other preprocessing operations are available. ConQAT implements algorithma for detecting redundancy, architecture analysis etc. in own prozessors/blocks. Furthermore, it integrates established tools, like FindBugs, FxCop etc. using prozessors that read their output formats. Although ConQAT supports different output formats (e.g. XML), usually generated HTML filesare used, to present the analysis results. Visualizations like different types of diagrams, treemaps, architecture diagrams etc.

Background

ConQAT is developed since 2007 at the Technische Universität München and reached some high profile due to several scientific publications on its architecture as well as analysis techniques for detecting redundancy (clone detection) or architecture conformance analyses.[1][2][3][4] Since 2009, ConQAT is maintained and further extended in a partnership of TU Munich and CQSE GmbH, a spin-off company from the usual group of researchers, as an open-source project. Especially in the research area on detecting redundancy (clone detection) on source code and models, ConQAT is used by several international research groups.

References

  1. Flexible Architecture Conformance Assessment with ConQAT. (PDF) by 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) by 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) by 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) by E. Juergens, F. Deissenboeck, B. Hummel, S. Wagner: Proceedings of the 31st International Conference on Software Engineering (ICSE’09), 2009.
  • Comparison of Clone Detection Tools: CONQAT and SolidSDD by Prabhjot Kaur, Harpreet Kaur, Rupinder Kaur, International Journal of Advanced Research in Computer Science and Software Engineering, pdf, Volume 2, Issue 5, May 2012
  • Using clone detection to identify bugs in concurrent software by Jabier Martinez, Anil Kumar Thurimella, IEEE Explore, IEEE International Conference on Software Maintenance (ICSM), 2010, ISSN 1063-6773
  • Type 2 Clone Detection On ASCET Models by Francesco Gerardi, Jochen Quante, University Singen Softwaretechnik-Trends, 2012, Springer
  • Using mutation analysis for a model-clone detector comparison framework by Matthew Stephan, Manar H. Alalfi, Andrew Stevenson, James R. Cordy, ACM Digital Library, Proceedings of the 2013 International Conference on Software Engineering, Pages 1261-1264, IEEE Press