-
BEREICH DER ERFINDUNG
-
Die vorliegende Offenlegung bezieht sich auf Data Mining und insbesondere auf ein auf Software-Evolution basierendes Aspekt-Mining-System für Data Mining.
-
HINTERGRUND
-
Aspect Mining ist die Suche nach Kandidatenaspekten in bestehenden Systemen und deren Isolierung aus dem System in separat beschriebene Aspekte. Die derzeit verfügbaren Aspect-Mining-Techniken führen eine statische oder dynamische Analyse des Quellcodes durch, um die in Frage kommenden Aspekte zu identifizieren. Das historisch basierte Aspect Mining basiert auf Mining-Methoden, die im Laufe der Softwareentwicklung eingefügt wurden. Beim Aspekt-Mining wird davon ausgegangen, dass übergreifende Belange im Laufe der Zeit eingeführt werden und nicht von Anfang an existieren. Die übergreifenden Belange können jedoch von Anfang an im System vorhanden sein. Querschnittsthemen sind eine wichtige Quelle für Probleme beim Programmverständnis und bei der Softwarewartung.
-
Es wurden Anstrengungen unternommen, um dieses Problem anzugehen. Bruntink et al. beziehen sich auf die Verwendung von Clone Detection for Identifying Crosscutting Concern Code (M. Bruntink, V.A. Deursen, R. V.Engelen, and T. Tourwe, , IEEE Trans. Software Engineering, vol. 31, no. 10, 2005, pp. 804-818. doi:10.1109/TSE.2005.114). Breu et al. enthüllten Mining-Aspekte aus der Versionsgeschichte (S. Breu und T. Zimmermann, Proc. 21st IEEE/ACM International Conference on Automated Software Engineering, S. 221-230, 2006, doi: 10.1109/ASE.2006.50). Diese Offenlegungen stoßen jedoch an ihre Grenzen, da sie nur eine einzige Programmversion berücksichtigen.
-
Daher besteht die Notwendigkeit, ein System bereitzustellen, das effizientes Data Mining ermöglicht, das bei der Steuerung des Software-Wartungsprozesses nützlich ist und die Wartbarkeit von Software verbessert. Die vorliegende Offenbarung überwindet das oben genannte Problem, das mit dem traditionell verfügbaren System verbunden ist. Die vorliegende Offenlegung bietet ein auf Software-Evolution basierendes Aspekt-Mining-System für Data Mining. Im Gegensatz zu anderen Aspekt-Mining-Techniken, die eine einzelne Programmversion betrachten, ermittelt das hier beschriebene System die Aspekte aus der Versionsgeschichte.
-
Alle hierin enthaltenen Veröffentlichungen werden durch Bezugnahme in demselben Umfang einbezogen, als ob jede Veröffentlichung ausdrücklich und einzeln als durch Bezugnahme einbezogen angegeben wäre. Wenn eine Definition oder die Verwendung eines Begriffs in einer einbezogenen Referenz nicht mit der hier angegebenen Definition dieses Begriffs übereinstimmt oder im Widerspruch dazu steht, gilt die hier angegebene Definition dieses Begriffs. Dementsprechend sind die in der schriftlichen Beschreibung und den beigefügten Ansprüchen angegebenen numerischen Parameter bei einigen Ausführungsformen Näherungswerte, die je nach den gewünschten Eigenschaften, die mit einer bestimmten Ausführungsform erreicht werden sollen, variieren können.
-
GEGENSTAND DER ERFINDUNG
-
Ein Ziel der Erfindung ist es, ein auf Software-Evolution basierendes Aspekt-Mining-System für Data Mining bereitzustellen.
-
Ein Ziel der Erfindung ist es, ein System zur Verfügung zu stellen, das die Technik des maschinellen Lernens mit häufigen Mustern zur Visualisierung der strukturellen Beziehungen zwischen Dateien nutzt.
-
Ein weiteres Ziel der Erfindung ist es, ein System bereitzustellen, das leicht für jedes Projekt mit Versionsarchiven/-historie in Form von Concurrent Versions Systems (CVS) und Apache Subversion (SVN) Versionierungssystem verwendet werden kann.
-
Ein weiteres Ziel der Erfindung ist es, ein System bereitzustellen, das bei der Steuerung des Software-Wartungsprozesses nützlich ist und die Wartbarkeit von Software verbessert.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die vorliegende Erfindung offenbart ein auf Software-Evolution basierendes Aspekt-Mining-System für Data Mining. Das auf Software-Evolution basierende Aspekt-Mining-System umfasst ein Datensammelmodul zum Sammeln von Daten aus Versionsarchiven; ein Datenvorverarbeitungsmodul zum Vorverarbeiten von Daten für das Mapping; ein Mapping-Modul zum Mapping der Daten aus dem Versionsarchiv; und ein Mining-Modul zum Mining von Daten aus den Versionsarchiven.
-
In einem Aspekt der vorliegenden Offenbarung werden die Versionsarchive aus Open-Source-Software entnommen.
-
In einem Aspekt der vorliegenden Offenbarung stammen die Versionsarchive aus Open-Source-Software, ausgewählt aus JHotDraw und Weka, geschrieben in Java.
-
In einem Aspekt der vorliegenden Offenbarung werden die Versionsarchive von JHotDraw und Weka unter Verwendung des Concurrent Versions Systems (CVS) und des Apache Subversion (SVN) Versionierungssystems gepflegt.
-
In einem Aspekt der vorliegenden Offenbarung bildet das Mapping-Modul die Daten aus dem Versionsarchiv in Form von Transaktionen ab.
-
In einem Aspekt der vorliegenden Offenbarung verwendet das Mapping-Modul eine Technik des maschinellen Lernens nach häufigen Mustern.
-
In einem Aspekt der vorliegenden Offenbarung ist die Technik des maschinellen Lernens nach häufigen Mustern in Java implementiert.
-
In einem Aspekt der vorliegenden Offenbarung verwendet das Mining-Modul das SPMF-Tool zum Mining häufiger Muster unter Verwendung des FPGrowth-Algorithmus.
-
In einem Aspekt der vorliegenden Offenbarung ist SPMF eine in Java geschriebene Open-Source-Bibliothek für Data-Mining, die für das Pattern-Mining verwendet wird.
-
Man sollte verstehen, dass, obwohl die vorliegende Offenbarung in Bezug auf einen definierten Satz von Funktionsmodulen erläutert wurde, jedes andere Modul oder jeder Satz von Modulen hinzugefügt/gelöscht/geändert/kombiniert werden kann und alle derartigen Änderungen in der Architektur/Konstruktion des vorgeschlagenen Systems vollständig im Rahmen der vorliegenden Offenbarung liegen. Jedes Modul kann auch in ein oder mehrere funktionale Untermodule unterteilt werden, die alle ebenfalls vollständig in den Anwendungsbereich der vorliegenden Offenbarung fallen.
-
Verschiedene Objekte, Merkmale, Aspekte und Vorteile des Erfindungsgegenstandes werden aus der folgenden detaillierten Beschreibung der bevorzugten Ausführungsformen deutlicher werden.
-
KURZBESCHREIBUNG DER ZEICHNUNG
-
Die beigefügte Zeichnung dient dem weiteren Verständnis der vorliegenden Offenbarung und ist Bestandteil dieser Beschreibung. Die Zeichnung veranschaulicht beispielhafte Ausführungsformen der vorliegenden Offenbarung und dient zusammen mit der Beschreibung zur Erläuterung der Grundsätze der vorliegenden Offenbarung.
- zeigt ein Blockdiagramm eines auf Software-Evolution basierenden Aspekt-Mining-Systems (100) für Data Mining gemäß einer Ausführungsform der vorliegenden Erfindung.
-
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
-
Aspekte der vorliegenden Offenbarung beziehen sich auf ein auf Software-Evolution basierendes Aspekt-Mining-System für Data Mining.
-
Die Erfindung wird nun unter Bezugnahme auf die beigefügte Zeichnung beschrieben, die beispielhaft und nicht einschränkend bevorzugte Ausführungsformen dieser Erfindung veranschaulicht.
-
In einer Ausführungsform der vorliegenden Offenbarung zeigt ein Blockdiagramm eines auf Software-Evolution basierenden Aspekt-Mining-Systems (100) für Data Mining. Das auf Software-Evolution basierende Aspekt-Mining-System (100) umfasst ein Datensammelmodul (101) zum Sammeln von Daten aus Versionsarchiven; ein Datenvorverarbeitungsmodul (102) zum Vorverarbeiten von Daten für das Mapping; ein Mapping-Modul (103) zum Mapping der Daten aus dem Versionsarchiv; und ein Mining-Modul (104) zum Mining von Daten aus den Versionsarchiven.
-
In einer Ausführungsform der vorliegenden Offenlegung werden die Versionsarchive aus Open-Source-Software entnommen. Die Versionsarchive stammen aus Open-Source-Software, ausgewählt aus JHotDraw und Weka, geschrieben in Java. Die Versionsarchive von JHotDraw und Weka werden mit Hilfe des Concurrent Versions Systems (CVS) und des Apache Subversion (SVN) Versionierungssystems verwaltet.
-
In einer Ausführungsform der vorliegenden Offenlegung bildet das Mapping-Modul (103) die Daten aus dem Versionsarchiv in Form von Transaktionen ab. Das Mapping-Modul (103) nutzt die Technik des maschinellen Lernens nach häufigen Mustern. Die Technik des maschinellen Lernens nach häufigen Mustern ist in Java implementiert. Die Technik ist nützlich, wenn der Benutzer verschiedene Data-Mining-Techniken für das Mining von Versionsarchiven anwenden möchte.
-
In einer Ausführungsform der vorliegenden Offenlegung verwendet das Mining-Modul (104) das SPMF-Tool zum Mining häufiger Muster unter Verwendung des FPGrowth-Algorithmus. SPMF ist eine in Java geschriebene Open-Source-Data-Mining-Bibliothek, die für das Pattern-Mining verwendet wird.
-
Die Data-Mining-Technik wird zum Extrahieren von änderungsanfälligen Dateien aus den Versionsarchiven/der Versionsgeschichte von Software verwendet. Diese werden extrahiert, um die am häufigsten geänderten Codeteile zu identifizieren. Diese Dateien können überarbeitet werden, um mehr entwicklungsfähige Codemodule zu erhalten. Der Versionsverlauf/die Versionshistorie von Software wird für die Extraktion von änderungsabhängigen Dateien oder von Dateien, die sich gemeinsam ändern, verwendet. Häufige Muster werden auf der Grundlage der Anzahl der Dateien in den häufigen Mustern visualisiert, um die Beziehungen zwischen den Dateien zu bestimmen, die mit Änderungen gekoppelt sind.
-
Die Ergebnisse des auf Software-Evolution basierenden Aspekt-Mining-Systems (100) für Data Mining zeigen, dass das System äußerst nützlich ist, um den Software-Wartungsprozess zu steuern und die Wartbarkeit von Software zu verbessern. Die Ergebnisse zeigen, dass das System leicht für jedes Projekt mit Versionsarchiven/-historie in Form von Concurrent Versions Systems (CVS) und Apache Subversion (SVN) Versionierungssystem verwendet werden kann.
-
Während das Vorstehende verschiedene Ausführungsformen der Erfindung beschreibt, können andere und weitere Ausführungsformen der Erfindung entwickelt werden, ohne vom grundlegenden Anwendungsbereich der Erfindung abzuweichen. Der Umfang der Erfindung wird durch die folgenden Ansprüche bestimmt. Die Erfindung ist nicht auf die beschriebenen Ausführungsformen, Varianten oder Beispiele beschränkt, die enthalten sind, um eine Person mit gewöhnlichem Fachwissen auf dem Gebiet der Technik in die Lage zu versetzen, die Erfindung herzustellen und zu verwenden, wenn sie mit Informationen und Wissen kombiniert wird, die der Person mit gewöhnlichem Fachwissen auf dem Gebiet der Technik zur Verfügung stehen.
-
BEZUGSZEICHENLISTE
-
- 100
- auf Software-Evolution basierendes Aspekt-Mining-System
- 101
- Datensammelmodul
- 102
- Datenvorverarbeitungsmodul
- 103
- Mapping-Modul
- 104
- Mining-Modul