@article{HerrmannHorkovicsKovatsSultanow, author = {Herrmann, Frank and Horkovics-Kovats, Robert and Sultanow, Eldar}, title = {Ein paralleler Algorithmus f{\"u}r API Mining von C\# Code}, series = {Anwendungen und Konzepte der Wirtschaftsinformatik}, volume = {16}, journal = {Anwendungen und Konzepte der Wirtschaftsinformatik}, publisher = {Technische Hochschule Wildau}, issn = {2296-4592}, doi = {10.26034/lu.akwi.2022.3454}, pages = {48 -- 56}, abstract = {Die Konformit{\"a}tsanalyse ist eine Technik der statischen Code-Analyse (SCA) zur Software-Qualit{\"a}tssicherung. Ihr Kernproblem ist, dass Werkzeuge nicht aus bereits eingetretenen Fehlern automatisiert dazulernen. Zur L{\"o}sung wurde in dieser Arbeit das maschinelle Lernen (ML) evaluiert, indem ein wissenschaftlich fundierter und praktisch erprobter Ansatz zur un{\"u}berwachten Lerntechnik angewandt und das Ergebnis analysiert wurde. Es wurde festgestellt, dass zur Anwendung auf verschiedene Programmiersprachen nur ein sprachspezifisches API Mining-Tool notwendig ist. Ein derartiges Tool durchsucht in parallelisierter Form Codezeilen und normalisiert sie f{\"u}r maschinelle Lernprozesse. Dieses System wurde f{\"u}r die Programmiersprache C\# implementiert, da viele Industrieprojekte in dieser Sprache entwickelt werden. Zur funktionalen Validierung wurde in einer Fallstudie gezeigt, dass Regeln mit einem positiven Effekt auf Software-Qualit{\"a}t gelernt wurden. Konkret wurde der Wartungsaufwand eines Code-Smells in einem Beispielprojekt durch das Auslagern einer gelernten Assoziation in eine gemeinsame Methode um den Faktor 30 reduziert. Die Laufzeit des Algorithmus wurde empirisch in acht open-source Repositorys evaluiert. Durch Parallelisierung kann eine durchschnittliche Laufzeitverbesserung von 45,16\% erwartet werden. Allerdings wurden bei der Anwendung auch Grenzen deutlich: Viele Assoziationen sind nutzlos, die Regelbewertung ist von einem subjektiven Faktor abh{\"a}ngig und die Wirtschaftlichkeit des Tools ist deshalb nicht transparent. Dennoch belegt diese Arbeit, dass ein ML-basiertes SCA-Tool als erg{\"a}nzende Qualit{\"a}tssicherungsmaßnahme im Software-Engineering m{\"o}glich ist.}, language = {de} }