 |
 | |  |  | | Beschreibung |  | Die Suche nach Duplikaten stellt eine besondere Strukturanalyse dar, der in der Forschung größere Aufmerksamkeit geschenkt wurde. In großen Software-Systemen kann sehr häufig beobachtet werden, dass identische oder ähnliche Quellcode-Fragmente wiederholt an verschiedenen Stellen vorkommen. Folgende Situationen können zu Duplikaten im Code führen:
- Wiederverwendung von Code durch „Copy und Paste“
- „mentale Makros“, die immer wieder programmiert werden (z.B. Datenstrukturzugriff)
- beabsichtigte Wiederholung zur Leistungssteigerung (wenn ein Compiler z.B. kein Inlining beherrscht)
- konservative Erweiterung bestehender Systeme, wobei bestehender Code möglichst nicht verändert wird
- automatische Generierung ähnlicher Codefragmente ausgehend von einer gemeinsamen Basis
In der Folge führen die daraus resultierenden Duplikate jedoch zu erheblichen Problemen während der Wartung:
- Duplikate werden nicht als solche erkannt (was bereits Aufwand erfordert) und müssen mehrfach verstanden und getestet werden.
- Defekte werden meist nur in einem der Duplikate beseitigt und bleiben unter Umständen sonst unentdeckt
Für große Software-Systeme werden zwischen 5 und 10 Prozent dupliziertem Code angegeben. Die Beseitigung der Duplikate birgt somit großes Potenzial zur Verbesserung der Wartbarkeit.
Die Ergebnisse der Dulikatanalye können nicht nur verwendet werden, um drohende Wartbarkeitsrisiken durch Cut-and-Paste-Wiederverwendung abzustellen. Weitere konstruktive Anwendungen sind:
- Einführung generischer Konzepte (wenn Duplikate sich nur um einen "Parameter" unterscheiden )
- Bestehen verschiedene Varianten eines Produkts ist es ggf. sinnvoll, eine Produktlinien-Entwicklung (siehe Thema: Produktlinien - Einstieg) einzuführen. Dazu können mit Hilfe der Duplikatanalyse ausfaktorisierbare Gemeinsamkeiten in den Varianten gefunden werden.
- In der Lehre können durch die Duplikatanalyse Plagiate aufgedeckt werden.
|  |
 | |  |  | |  | |  | |  |  |  | | Zu dieser Seite wurden noch keine Kommentare oder Bewertungen abgegeben. |
|
|  | |  |  |   | Übergeordnet |  |  |  | |  |  |  |  |  | Duplikatanalyse |  |  |  |  |   | Untergeordnet |  |  |  | |  |  | |  |  |  |  | Weitere Themen |  |  |  | |  |  | |  |  |  |  |  |  |
|