Durch Redundanz im Quellcode kommt es zur Einschränkung wichtiger Faktoren wie der
Lesbarkeit oder Wartbarkeit des Codes. Damit einhergehend kann Fehlverhalten im
Programmablauf entstehen, wenn Code-Fragmente gezielt dupliziert werden, anstatt sie
wiederzuverwenden. Für die frühzeitige Erkennung solcher Probleme ist es daher nötig,
die Redundanz in ihren verschiedenen Formen aufzuschlüsseln.
Das Ziel dieser Arbeit war es zu untersuchen, wodurch sich diese Formen beziehungsweise
Arten der Redundanz unterscheiden, wie diese zusammenhängen und auf welche Weise
man Redundanz mit dem Begriff Code-Clone zusammenführen kann. Zu diesem Zweck
wurde eine Literaturstudie durchgeführt, um den aktuellen Forschungsstand zu erfassen.
Dabei wurden neben der Redundanz auch die Themen Code-Clones und Ähnlichkeit
betrachtet. Die Ergebnisse der Literaturstudie wurden anhand der Arten der Redundanz
gegliedert und durch Code-Clone-Beispiele verdeutlicht.
Die Literaturstudie ergab, dass Redundanz vorwiegend durch Duplikation von Code-
Fragmenten entsteht, wodurch sich mithilfe von Code-Clones ein Großteil der Redundanz
abbilden lässt. Des Weiteren sind die Arten der Redundanz nicht disjunkt, wodurch sich
eine hundertprozentige Untergliederung nicht durchführen lässt.:Gliederung
AbbildungsverzeichnisI
Quellcode-Listing
1. Einleitung
1.1 Motivation
1.2 Zielstellung
1.3 Aufbau der Arbeit
2. Definitionen
3.Vorgehen
3.1Methodisches Vorgehen
3.2 Planung
3.3 Selektion
3.4 Extraktion
3.5 Ausführung
4. Ergebnisse
4.1 Negative Software Redundanz
4.2 Textuelle Redundanzen
4.3 Funktionelle Redundanz
4.4 Boilerplate-Code
4.5 Entstehungsgrund-basierte Redundanzen
4.5.1 Gezwungene Redundanz
4.5.2 Zufällige Redundanz
4.6 Abgrenzung der Redundanzarten voneinander
5. Fazit
6. Ausblick
Quellen
Identifer | oai:union.ndltd.org:DRESDEN/oai:qucosa:de:qucosa:32218 |
Date | 19 November 2018 |
Creators | Willert, Nico |
Contributors | Universität Leipzig |
Source Sets | Hochschulschriftenserver (HSSS) der SLUB Dresden |
Language | German |
Detected Language | German |
Type | info:eu-repo/semantics/publishedVersion, doc-type:bachelorThesis, info:eu-repo/semantics/bachelorThesis, doc-type:Text |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0018 seconds