Zum Inhalt springen

ConQAT

aus Wikipedia, der freien Enzyklopädie
{{#if: | {{{Name}}} | {{#invoke:WLink|getArticleBase}} }}

{{#if: |

colspan="2" class="notheme" style="text-align:center; background:#Vorlage:Standardfarbe; color:#202122;" | |
 {{#if: {{#invoke:Wikidata|claim|P154}} | 
[[Datei:{{#invoke:Wikidata|claim|P154}}|150px]]
 }}

}}{{#if: |

{{#if: |
}}|

}}

Basisdaten

{{#if: |

Hauptentwickler
 {{#if: {{#invoke:Wikidata|claim|P126}} | 
Maintainer claim|P126|parameter=link|references=ja|list=, }}
 }}

}}{{#if: CQSE GmbH, Competence Center Software Maintenance (Technische Universität München) |

Entwickler CQSE GmbH, Competence Center Software Maintenance (Technische Universität München) |
 {{#if: {{#invoke:Wikidata|claim|P178}} | 
Entwickler claim|P178|parameter=link|references=ja|list=, }}
 }}

}}{{#if: |

Erscheinungsjahr
 {{#if: {{#invoke:Wikidata|claim|P577}} | 
Erscheinungsjahr claim|P577|references=ja|list=, }} |
   {{#if: {{#invoke:Wikidata|claim|P571}} | 
Erscheinungsjahr claim|P571|references=ja|list=, }}
   }}
 }}

}}{{#ifeq: 2015.2 | KEINE_ANGABE || {{#if: 2015.2 |

Aktuelle Version
({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
format | {{#timefl:now|date}}}} {{{2}}} | T._Monat JJJJ}} lang= {{#switch: -|=de #default=de-AT
            }}
   }}

}}) }}

 {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813}} | 
Aktuelle Version claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}} |
({{#invoke:Wikidata|claim|P348|P548|!Q3295609,Q51930650,Q2122918,Q21727724,Q1072356,Q6736813|qualifier=P577}}) }}}}}}

}}{{#ifeq: {{{AktuelleVorabVersion}}} | KEINE_ANGABE || {{#if: |

Aktuelle Vorabversion
({{#if: | Vorlage:Datum – die Form mit drei unbenannten Parametern oder anderen einzelnen Zeiteinheiten ist veraltet und wird nicht mehr unterstützt. Bitte gib das Datum einfach im Klartext an.
format {{{AktuelleVorabVersionFreigabeDatum}}} | {{#timefl:now|date}}}} {{{2}}} | T._Monat JJJJ}} lang= {{#switch: -|=de #default=de-AT
            }}
   }}

}}) }}

 {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724}} | 
Aktuelle Vorabversion claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|references=ja}} {{#if: {{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}} |
({{#invoke:Wikidata|claim|P348|P548|Q1072356,Q51930650,Q3295609,Q2122918,Q21727724|qualifier=P577}}) }}}}}}

}}{{#if: |

Ausführungsumgebung
 {{#if: plattformunabhängig | 
Betriebssystem plattformunabhängig |
   {{#if: {{#invoke:Wikidata|claim|P306}} | 
Betriebssystem claim|P306|parameter=link|references=ja|list=, }}
   }}
 }}

}}{{#if: Java |

Programmier­sprache Java |
 {{#if: {{#invoke:Wikidata|claim|P277}} | 
Programmier­sprache claim|P277|parameter=link|references=ja|list=, }}
 }}

}}{{#if: Entwicklungswerkzeug |

Kategorie Entwicklungswerkzeug

}}{{#if: Apache-Lizenz |

Lizenz Apache-Lizenz |
 {{#if: {{#invoke:Wikidata|claim|P275}} | 
Lizenz claim|P275|parameter=link|references=ja|list=, }}
 }}

}}{{#if: |

deutschsprachig faculty|}} | ja | nein }}

}}{{#if: |

Sonstiges {{{Sonstiges}}}Vorlage:Infobox Software/Wartung/Sonstiges

}}{{#if: www.conqat.org |

www.conqat.org |
 {{#if: {{#invoke:Wikidata|claim|P856|notdeprecated=1}} | 
{{#invoke: WLink | formatURL | {{#invoke:Wikidata|claim|P856|parameter=link|notdeprecated=1}}}}
 }}

}}{{#if: |

Dateien [[c:Category:Created with {{{Dateien}}}|{{{Dateien}}}]]

}}

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. Die Entwicklung von ConQAT wurde zugunsten des ebenfalls von CQSE entwickelten Tools Teamscale im Juli 2018 eingestellt.<ref>{{#if:|{{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}| |}}}}{{#if:|{{{autor}}}: }}{{#if:|{{#if:ConQAT end of life|[{{#invoke:Vorlage:Internetquelle|archivURL|1={{#invoke:URLutil|getNormalized|1={{{archiv-url}}}}}}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=ConQAT end of life}}]{{#if:| ({{{format}}})}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}|{{#if:https://teamscale.com/blog/en/news/blog/conqat-end-of-life%7C{{#if:{{#invoke:TemplUtl%7Cfaculty%7C}}%7C{{#invoke:Vorlage:Internetquelle%7CTitelFormat%7Ctitel={{#invoke:WLink%7CgetEscapedTitle%7C1=ConQAT end of life}}}}|[{{#invoke:URLutil|getNormalized|1=https://teamscale.com/blog/en/news/blog/conqat-end-of-life}} {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{#invoke:WLink|getEscapedTitle|1=ConQAT end of life}}}}]}}{{#if:| ({{{format}}}{{#if:TeamScale Blog{{#if: 2025-05-13 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}

          | )
          | {{#if:{{#ifeq:de|de||{{#if:|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:https://teamscale.com/blog/en/news/blog/conqat-end-of-life%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=https://teamscale.com/blog/en/news/blog/conqat-end-of-life}}%7C%7C}}}}{{#if:ConQAT end of life|{{#if:{{#invoke:WLink|isValidLinktext|1=ConQAT end of life|lines=0}}||}}}}{{#if: | In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel={{{werk}}}}}}}{{#if: TeamScale Blog| TeamScale Blog{{#if: |,|{{#if: 2025-05-13 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | {{#if:{{#invoke:DateTime|format|{{{datum}}}|noerror=1}}
            |{{#invoke:DateTime|format|{{{datum}}}|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum={{{datum}}}|class=Zitationswartung}} }}{{#if: |,|{{#if: 2025-05-13 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: |,|{{#if: 2025-05-13 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: {{#invoke:TemplUtl|faculty|}}| {{#if:TeamScale Blog|{{#if:|archiviert|ehemals}}|{{#if:|Archiviert|Ehemals}}}} {{#if:|vom|im}} Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|}}| (nicht mehr online verfügbar)}}{{#if: | am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|{{{archiv-datum}}}{{#if:1888160||(?)}}}}}}{{#if: 2025-05-13|;}}}}{{#if: 2025-05-13| {{#if:TeamScale Blog{{#invoke:TemplUtl|faculty|}}|abgerufen|Abgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2025-05-13 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2025-05-13|class=Zitationswartung}} }} {{#invoke:DateTime|format|2025-05-13|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:de|de||{{#if:|1}}}}|{{#if:TeamScale Blog{{#if: 2025-05-13 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:de|de|de}}|de||
          {{#invoke:Multilingual|format|{{{sprache}}}|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:de|de|de}}|de||, }}{{{kommentar}}}}})}}{{#if: {{#if: 2025-05-13 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|}}|{{#if:||{{#ifeq: | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: https://teamscale.com/blog/en/news/blog/conqat-end-of-life
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://teamscale.com/blog/en/news/blog/conqat-end-of-life
      | {{#if:{{#invoke:URLutil|isWebURL|https://teamscale.com/blog/en/news/blog/conqat-end-of-life}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://teamscale.com/blog/en/news/blog/conqat-end-of-life Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://teamscale.com/blog/en/news/blog/conqat-end-of-life
       | {{#if:{{#invoke:URLutil|isWebURL|https://teamscale.com/blog/en/news/blog/conqat-end-of-life}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://teamscale.com/blog/en/news/blog/conqat-end-of-life }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: https://teamscale.com/blog/en/news/blog/conqat-end-of-life
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: https://teamscale.com/blog/en/news/blog/conqat-end-of-life
      | {{#if:{{#invoke:URLutil|isWebURL|https://teamscale.com/blog/en/news/blog/conqat-end-of-life}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=https://teamscale.com/blog/en/news/blog/conqat-end-of-life Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: https://teamscale.com/blog/en/news/blog/conqat-end-of-life
       | {{#if:{{#invoke:URLutil|isWebURL|https://teamscale.com/blog/en/news/blog/conqat-end-of-life}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[https://teamscale.com/blog/en/news/blog/conqat-end-of-life }} }}}}}}}}}}{{#if:|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp={{{archiv-bot}}}|text={{#if:|Vorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>

Datei:ConQAT-Block.png
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.<ref>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.</ref><ref>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</ref><ref>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.</ref><ref>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.</ref> 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

  • {{#invoke:Vorlage:Literatur|f}}

Weblinks

Quellen

<references />