Talklet

Codeballast über Bord?!

Erfahrungen aus der Identifikation von totem Code und dem Umgang damit

23. September 2022 | 17:00 Uhr - 19:00 Uhr

Zur Anmeldung/Tickets

Viele historisch gewachsene Systeme sammeln über die Jahre Code an, den niemand mehr braucht und der deshalb nutzlos ist. Ein Grund dafür ist beispielsweise, dass bereits implementierte Anforderungen obsolet werden und der Code, der diese Anforderungen implementiert, in der Codebasis verbleibt. Da meist unbekannt ist, welcher Code nutzlos ist, verursacht er oft Kosten ohne Wert zu stiften: Er erhöht Wartungsaufwände, da er bei querschnittlichen Änderungen unnötig mitgewartet wird. Und er verteuert Migrationen wenn er migriert aber nicht gebraucht wird. Deshalb ist es wünschenswert, nutzlosen Code zu kennen und diese unnützen Aufwände einzusparen.

In diesem Vortrag stellen wir drei statische und dynamische Analyseansätze vor, die wir in den letzten Jahren bei der Analyse von Kundensystemen und im Rahmen von Forschungsarbeiten entwickelt haben: Wir haben basierend auf statischer Unerreichbarkeit nicht ausführbare und damit nutzlose Programme identifiziert; basierend auf den statischen Codeeigenschaften Stabilität und Dezentralität nutzlose Klassen erkannt; und basierend auf der Aufzeichnung von Codeausführung auf mehreren Produktivsystemen Code gefunden, der mehrere Jahre nicht ausgeführt wurde. Jeder Analyseansatz wurde an einer oder mehreren realen Anwendungen erprobt und die Analyseergebnisse zusammen mit dem Entwicklungsteam evaluiert. Wir stellen die Ergebnisse im Vortrag vor. Da keine der Analysen nutzlosen Code zweifelsfrei erkennen kann, skizzieren wir wie mit dieser Unsicherheit in der Praxis umgegangen werden kann und wie Herausforderungen bei der Interpretation der Analyseergebnisse adressiert werden können. Schließlich beschreiben wir konkrete Handlungsoptionen zum Umgang mit nutzlosem Code bei Migration und Wartung.

Codeballast_ueber_Bord.pdf

Referent: Tobias Röhm

Dr. Tobias Röhm hat als Freelancer mehrere Jahre ERP-Software entwickelt, über Programmverstehen und Softwareanalysen promoviert und ist seit sieben Jahren Berater für Softwarequalität bei der CQSE. Zusammen mit seinem Team unterstützt er Kunden dabei, bessere Software zu entwickeln sowie Software besser zu entwickeln. Dies geschieht in der Regel durch die Einführung von Softwareanalysewerkzeugen und die Integration derselben in Entwicklungs- und QS-Prozesse um langfristigen Mehrwert aus diesen zu ziehen. Er spricht regelmäßig auf (inter-) nationalen Konferenzen wie OOP, JFS, Code Days, ICSE, ICSME und SANER.