Clone Detection & Management für Architektinnen und Architekten
Abstract
Thu 9:50 - 10:35 Uhr | 2023
Copy & Paste-Programmierung ist seit Jahrzehnten als Code-Smell verschrien. Das hat nicht verhindert, dass in quasi allen größeren Systemen viele durch Copy & Paste entstandene Klone vorkommen. In einigen Systemen kommt mehr als die Hälfte aller Zeilen in Kopie an anderen Stellen auch vor. Das schafft in der Weiterentwicklung viele Probleme, da Änderungen an mehreren Stellen durchgeführt werden müssen, Code-Reviews aufwändiger werden, Fehler oft bei Fixes in Kopien übersehen werden etc.
Clone Detection, also statische Code-Analyse, die solche Duplikate automatisiert erkennen kann, ist inzwischen in einigen IDEs enthalten. Allerdings zeigt die Erfahrung, dass es wenig nützt, eine Liste mit 100.000 Klonen zu erzeugen.
Die Herausforderung ist nicht das Finden, sondern Clone-Management: der sinnvolle Umgamg mit existierenden Klonen.
Welcher Umgang mit Klonen der richtige ist, hängt vom eigenen Kontext ab: Wieviel Copy&Paste-Programmierung kommt im eigenen System vor, und wie wirkt sich das auf die Kosten aus? Welche Fehler wurden nicht in allen Kopien behoben? Gibt es “Copy & Paste im Großen” zwischen verschiedenen Anwendungen in der Unternehmensarchitektur? Welche Klone sollten wir in wiederverwendbare Module / Bibliotheken herausziehen, bei welchen lohnt es nicht? In welchen Bereichen wollen wir Duplikation eventuell bewußt, um z.B. Microservices unabhängig voneinander weiterentwickeln zu können? Und wie stellen wir dabei sicher, dass wir Fehler in Kopien trotzdem konsistent beheben?
Im Vortrag stelle ich Clone Detection und Management-Techniken vor. Ich zeige Kostenmodelle, um die Kosten von Klonen zu quantifizieren und gehe auf Erfahrungen ein, die wir mit Clone Management in den letzten 10 Jahren bei verschiedenen Kunden gesammelt haben. Außerdem zeige ich, wie man eine Bestandsaufnahme im eigenen System machen kann, um diese Fragen als Architekt für das eigene System oder die eigene Anwendungslandschaft zu beantworten.
Vortragsimpressionen
Dr. Elmar Juergens hat über statische Codeanalyse promoviert und für seine Doktorarbeit den Software-Engineering-Preis der Ernst Denert-Stiftung erhalten. Er ist Mitgründer der CQSE GmbH und begleitet seit zehn Jahren Teams bei der Verbesserung ihrer Qualitätssicherungs- und Testprozesse. Juergens spricht regelmäßig auf Forschungs- und Industriekonferenzen und wurde für seine Vorträge mehrfach ausgezeichnet. Elmar Jürgens wurde 2015 zum Junior Fellow der Gesellschaft für Informatik ernannt und 2019 in die Hall of Fame des Java Forum Stuttgarts aufgenommen.