Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Technische Schulden in Architekturen erkennen und beseitigen

1.147 Aufrufe

Veröffentlicht am

Beim Entwurf der Softwarearchitektur zu Beginn eines Projekts bringen die Architekten i.d.R. all ihre Erfahrung und ihr Knowhow ein und stellen eine Architektur-Blaupause für die Entwicklung bereit. Aber während der Implementierung weichen die Entwickler ungewollt mehr und mehr von diesen Vorgaben ab: Einerseits macht der Projektdruck Abweichungen notwendig, andererseits entstehen die Abweichungen ungewollt und unbemerkt. Die Architektur des Systems erodiert und es werden Schritt für Schritt technische Schulden aufgebaut. Wartung und Erweiterung der Software werden immer teurer bis zu dem Punkt, an dem jede Änderung zu einer schmerzhaften Anstrengung wird.

In diesem Vortrag berichte ich von meinen Erfahrungen der letzten zehn Jahre mit der Analyse von Softwarearchitekturen in Java (60 Systeme), C# (10 Systeme), C++(6 Systeme): Die Zuhörer wissen nach meinem Vortrag, welche Fehler sie in ihren Softwareprojekten bei der Umsetzung der Architektur nicht machen sollten, welche Prinzipien Sie einhalten sollen, um technische Schulden nicht entstehen zu lassen, welche Tools helfen, technische Schulden aufzuspüren, und wie technische Schulden abgebaut werden können.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

Technische Schulden in Architekturen erkennen und beseitigen

  1. 1. WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Technische Schulden in Architekturen erkennen und beseitigen Dr. Carola Lilienthal Carola.Lilienthal@wps.de, @cairolali www.wps.de
  2. 2. 11.03.2016 //// Seite 2WPS - Workplace Solutions GmbH Software- Architektur Anforderungs- ermittlung Leitstand und Interaktion Individual- software Business-Software, die Spaß macht! WPS – Workplace Solutions GmbH
  3. 3. 11.03.2016 //// Seite 3WPS - Workplace Solutions GmbH
  4. 4. 11.03.2016 //// Seite 4WPS - Workplace Solutions GmbH Technische Schulden ≠ Langlebigkeit
  5. 5. 11.03.2016 //// Seite 5WPS - Workplace Solutions GmbH Maßnahmen gegen technische Schulden  Kontinuierliche Architekturdiskussion  Weiterbildung der Architekturen und Entwickler  Automatisches Testen und Refactoring  Regelmäßige Architekturanalyse und -Erneuerung
  6. 6. 11.03.2016 //// Seite 6WPS - Workplace Solutions GmbH Architekturanalyse: Was ist das? Findet sich die geplante Architektur (Soll-Architektur) in der Strukturen der implementierten Software (Ist-Architektur) wieder? Soll-Architektur Ist-Architektur ≠ Sourcecode Plan mit Klassen = Directories Packages Namespaces Subsysteme Komponenten Module Schichten
  7. 7. 11.03.2016 //// Seite 7WPS - Workplace Solutions GmbH Zwei Architekturziele für Langlebigkeit Architekturziel 1: Wartbarkeit • schnelle Fehleranalyse • schnelle Anpassungen • Analysierbarkeit und Verständlichkeit • Reduktion von Komplexität Architekturziel 2: Flexibilität • Varianten von Geschäftsprozessen • Geänderte Anforderungen • Serviceorientierung und Skalierbarkeit • Baukastenprinzip
  8. 8. 11.03.2016 //// Seite 8WPS - Workplace Solutions GmbH Expertise zu Architekturanalyse  Architektur-Review und Bewertungen mit Qualitätsgutachten  Analyse und Priorisierung von technischen Schulden  Beratung zu Architekturverbesserung und Refactorings  Einführung und Weiterentwicklung von Architekturstile Unsere Dienstleistungen
  9. 9. 11.03.2016 //// Seite 9WPS - Workplace Solutions GmbH 70% 20% 10% Code verstehen Problem lösen Code schreiben Womit verbringen wir unsere Zeit?
  10. 10. 11.03.2016 //// Seite 11WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata
  11. 11. 11.03.2016 //// Seite 15WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur Modularität
  12. 12. 11.03.2016 //// Seite 16WPS - Workplace Solutions GmbH Modularität Hohe Kohäsion und lose Kopplung Responsibility Driven Design Separation of Concerns Single Responsibility Principle
  13. 13. 11.03.2016 //// Seite 17WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur Modularität
  14. 14. 11.03.2016 //// Seite 18WPS - Workplace Solutions GmbH Hierarchien  
  15. 15. Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur HierarchisierungModularität
  16. 16. Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur HierarchisierungModularität Musterkonsistenz
  17. 17. 11.03.2016 //// Seite 26WPS - Workplace Solutions GmbH User Interface Domain Application Hierarchien in Architekturebene: Schichten und Module Fachliches Modul B Fachliches Modul A Fachliche Schichtung TechnischeSchichtung Fachliches Modul C
  18. 18. 11.03.2016 //// Seite 27WPS - Workplace Solutions GmbH Zwei Dimensionen einer Architektur Technische Schichtung Fachliche Schichtung Leicht zu behebende Verletzungen Schwer zu behebende Verletzungen Eine Komponente verursacht die Probleme Eine Komponente verursacht die Probleme
  19. 19. 11.03.2016 //// Seite 28WPS - Workplace Solutions GmbH Fachliche Schichtung misslungen Technische Schichtung Keine fachliche Schichtung Wenige Schichten- verletzungen Fast alle 90 fachlichen Komponenten brauchen sich gegenseitig
  20. 20. 11.03.2016 //// Seite 29WPS - Workplace Solutions GmbH Hierarchien auf Klassenebene Auswirkung auf:  Wartbarkeit  Austauschbarkeit  Testbarkeit  Modularität  Musterkonsistenz  Hierarchien auf allen Ebenen einführen
  21. 21. 11.03.2016 //// Seite 30WPS - Workplace Solutions GmbH Einfache Zyklengruppe
  22. 22. 11.03.2016 //// Seite 31WPS - Workplace Solutions GmbH Schwierige Zyklengruppe
  23. 23. 11.03.2016 //// Seite 34WPS - Workplace Solutions GmbH 119 Klassen aus 4 Komponenten + 28 weitere Klassen
  24. 24. 11.03.2016 //// Seite 35WPS - Workplace Solutions GmbH Große Zyklen sichtbar machen 327 Klassen aus 8 Komponenten brauchen sich gegenseitig
  25. 25. 11.03.2016 //// Seite 36WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur HierarchisierungModularität Musterkonsistenz
  26. 26. 11.03.2016 //// Seite 37WPS - Workplace Solutions GmbH Uneven Modules Ein großer Monolith mit vielen kleinen Satelliten 950.860 LOC 84.808 LOC Häufige Ursache: Build-System, das Zyklen verbietet
  27. 27. 11.03.2016 //// Seite 38WPS - Workplace Solutions GmbH Uneven Modules 9 Komponenten = 17 Subsysteme
  28. 28. 11.03.2016 //// Seite 43WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur HierarchisierungModularität Musterkonsistenz
  29. 29. 11.03.2016 //// Seite 44WPS - Workplace Solutions GmbH Muster auf Architekturebene: Vier Module Modul Grün Modul Lila Modul Orange Modul Blau
  30. 30. 11.03.2016 //// Seite 45WPS - Workplace Solutions GmbH Musterkonsistenz: Was finden wir?  Ist die Abbildung der Architektur in der Struktur des Codes zu erkennen?
  31. 31. 11.03.2016 //// Seite 46WPS - Workplace Solutions GmbH Muster sinnvoll eingesetzt
  32. 32. 11.03.2016 //// Seite 47WPS - Workplace Solutions GmbH Muster auf Klassenebene: Entwurfsmuster und Mustersprachen User Interface Domain Application Fachliches Modul Window GUI Model View C o n t r o l ValueObject Service BusinessObject SchichtungdurchMuster
  33. 33. 11.03.2016 //// Seite 48WPS - Workplace Solutions GmbH Gute umgesetzte Mustersprache  90% des Sourcecodes lässt sich den Mustern zuordnen  0,1% Verletzungen in den Mustern Eventer Processes Service
  34. 34. 11.03.2016 //// Seite 49WPS - Workplace Solutions GmbH Entdeckung einer Mustersprache  80% des Sourcecodes lässt sich den 23 Mustern zuordnen  4% Verletzungen in den Mustern
  35. 35. 11.03.2016 //// Seite 50WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata HierarchisierungModularität Musterkonsistenz  Einheitliche und durchgängige Muster  Zyklenfreiheit auf allen Ebenen  Zuständigkeit  Kopplung  Größenverhältnisse  Schnittstellen
  36. 36. 11.03.2016 //// Seite 51WPS - Workplace Solutions GmbH Kostenfreie Werkzeuge • SonarQube: • Leitstand für Qualitätsmetriken • Plattform für vielfältige Plugins • JDepend: • wenige Metriken • einfache Abhängigkeitsanalyse • JDepend + Google Architecture Rules: • einfache Architekturbeschreibung • Ndepend/CDepend: • Metriken • Abhängigkeitsanalyse • XRadar: • Analyse von Java-Projekten via maven • Reports bezüglich Komplexität und Architekturverletzungen • Moose • Code City
  37. 37. 11.03.2016 //// Seite 52WPS - Workplace Solutions GmbH Kommerzielle Produkte  Axivion Bauhaus: Java, C#, C/C++, Ada, VB und Cobol  Lattix: Java, .Net, C/C++, Ada, Delphi und DB-Systeme  Structure101: Java, C++, Ada  SotoArc und Sonargraph: Java, C#, C/C++, ABAP, PHP  Teamscale: C#, Java  Seerene: Java, C#, C/C++, ABAP
  38. 38. 11.03.2016 //// Seite 59WPS - Workplace Solutions GmbH Vorgehen bei der Architekturanalyse und Verbesserung
  39. 39. 11.03.2016 //// Seite 63WPS - Workplace Solutions GmbH Leitstand für Verbesserungen im laufenden Betrieb  Die Architekturziele sind im ganzen Team präsent und werden verfolgt.  Softwarewartung und –Änderung ist einfacher und kostengünstig.  Die Software ist stabil, flexibel und langlebig.  Neue Mitarbeiter können nach kurzer Zeit produktiv mitentwickeln. Ergebnis Tatsächliches Problem?24% 34% 44% 54% 64% 74% 84% 94% v1.0 v1.1_b1 v1.1_b2 v1.1_b3 v1.1 v1.2_b1 v1.2 v2.0_b1 v2.0_b2 v2.0 Architekturqualität Feinentwurfsqualität Implementierungsqualität Testabdeckung
  40. 40. Vielen Dank für Ihre Aufmerksamkeit! www.langlebige-softwarearchitektur.de Dr. Carola Lilienthal Mitglied der Geschäftsleitung cl@wps.de www.wps.de +49 170 184 77 11 Diplom-Informatikerin @cairolali

×