Hinweis: Die aktuelle OOP-Konferenz finden Sie hier!

SOFTWARE MEETS BUSINESS:
Die Konferenz für Software-Architektur
03. - 05. Juli 2023

menu

Konferenzprogramm

Clone Detection & Management für Architekten

Copy & Paste ist seit Jahrzehnten als Code-Smell verschrien. Trotzdem kommen in allen größeren Systemen viele Klone vor. Das schafft Probleme.

Clone Detection – die automatisierte Erkennung solcher Duplikate – ist inzwischen in vielen IDEs enthalten. Allerdings nützt es wenig, eine Liste mit 100k Klonen zu erzeugen. Die Herausforderung ist der sinnvolle Umgang mit bestehenden Klonen. Im Vortrag stelle ich Clone Detection und Management-Techniken vor. Außerdem zeige ich, wie man als Architekt eine Bestandsaufnahme im eigenen System machen kann.

Zielpublikum: Architekt:innen und Entwickler:innen
Voraussetzungen: Grundlegende Programmiererfahrung.
Schwierigkeitsgrad: Anfänger 

Extended Abstract:
Copy & Paste-Programmierung ist seit Jahrzehnten als Code-Smell verschrien. Das hat nicht verhindert, dass quasi in 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 Umgang mit existierenden Klonen.

Welcher Umgang mit Klonen der richtige ist, hängt vom eigenen Kontext ab: Wie viel 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 bewusst, 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.

Dr. Elmar Jürgens 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 Teams bei der Verbesserung ihrer Qualitätssicherungs- und Testprozesse. Jürgens spricht regelmäßig auf Forschungs- und Industriekonferenzen und wurde für seine Vorträge mehrfach ausgezeichnet. Er wurde 2015 zum Junior Fellow der Gesellschaft für Informatik ernannt.

Elmar Juergens
14:15 - 15:15
Vortrag: Di 1.3

Vortrag Teilen