Bei der Entwicklung von Programmen werden durch Entwickler regelmäßig Code-Clones durch das Kopieren von Quellcode erzeugt. In dieser Arbeit wird ein Ansatz zur automatisierten Messung dieses duplizierten Codes mit Hilfe von Clone-Detection-Tools über mehrere Versionen von verschiedenen Software-Produkten gezeigt. Anhand der Historien von Code-Clones werden Einflüsse auf die Redundanzen dieser Software empirisch gemessen. Damit wird eine Grundlage für den Beweis, dass die Entwicklung von Programmiersprachen zu einem dominanten Teil durch Redundanzreduzierung getrieben wird, geschaffen.:Inhaltsverzeichnis
Abstract I
Inhaltsverzeichnis II
1 Einleitung 1
1.1 Problemstellung 1
1.2 Zielsetzung 1
1.3 Vorgehensweise 3
2 Vorbetrachtung 5
2.1 Programmierkonzepte 5
2.1.1 Definition 5
2.1.2 Programmierkonzepte in Java 5
2.2 Treiber für die Entwicklung von Programmierkonzepten 8
2.2.1 Arten der Treiber von Programmierkonzepten 9
2.2.2 Reduzierung von Redundanz in Software 10
2.2.2.1 Arten von Redundanz in Software 10
2.2.2.2 Code-Clones 11
2.2.2.3 Folgen von Redundanz in Software 13
2.2.3 Ansätze für den Nachweis von Redundanzreduzierung als Treiber 14
2.3 Auswahl Software Repositories für die Analysen 16
2.3.1 Arten von Software Repositories 16
2.3.2 Anforderung an Software Repositories 17
3 Erhebungsprozess für die Analyse von Software auf Clones 20
3.1 Aufbau des Erhebungsprozesses 20
3.1.1 Lösungsansatz 20
3.1.2 Prozessteuerung 21
3.2 Umgang mit Versionierung 22
3.2.1 Allgemein 22
3.2.2 Commit-Filter 24
3.3 Clone-Detection 25
3.3.1 Arten und Vertreter 25
3.3.2 Eigene Verwendung 28
3.3.2.1 Simian 28
3.3.2.2 CCFinderX 29
3.3.3 Laufzeitproblem und Lösungsansätze 31
3.4 Datenaggregation 32
4 Auswertung der Messungen 35
4.1 Vorgehensweise der Auswertung 35
4.2 Betrachtung von Code-Clone-Historien 35
4.3 Vergleich unterschiedlicher Konfigurationen 41
4.3.1 Vergleich unterschiedlicher Clone-Detection-Tools 41
4.3.2 Vergleich unterschiedlicher Commit-Filter 45
4.3.3 Vergleich unterschiedlicher Schwellwerte für die Erkennung 46
4.4 Untersuchung verschiedener Interessenpunkte 48
5 Nachbetrachtung 53
5.1 Fehlerbetrachtung 53
5.2 Erweiterungsmöglichkeiten 55
5.3 Schlussbemerkung 57
Anhang V
Vorgehensweise der Literaturrecherchen V
Verwendete Computerkonfiguration IX
Beispiele für Dateien X
Beispiel für Detailausgabe von Simian X
Beispiel für Detailausgabe von CCFinderX XI
Beispiel für aggregierte Daten XII
Abbildungsverzeichnis XIII
Tabellenverzeichnis XIV
Programmtextverzeichnis XV
Abkürzungsverzeichnis XVI
Literaturverzeichnis XVII
Eidesstattliche Erklärung XXIII
Identifer | oai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:17153 |
Date | 12 February 2018 |
Creators | Harnisch, Björn Ole |
Contributors | Universität Leipzig |
Source Sets | Hochschulschriftenserver (HSSS) der SLUB Dresden |
Language | German |
Detected Language | German |
Type | info:eu-repo/semantics/updatedVersion, doc-type:masterThesis, info:eu-repo/semantics/masterThesis, doc-type:Text |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0025 seconds