Langlebige architekturen

3.988 Aufrufe

Veröffentlicht am

Mein Talk auf der OOP in München mit einer Kurzfassung aus meinem Buch "Langlebige Softwarearchitekturen - Technische Schulden beherrschen und abbauen"

Veröffentlicht in: Software
1 Kommentar
4 Gefällt mir
Statistik
Notizen
  • Danke für das SlideShare und die sehr interessanten Informationen.
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
Keine Downloads
Aufrufe
Aufrufe insgesamt
3.988
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2.962
Aktionen
Geteilt
0
Downloads
31
Kommentare
1
Gefällt mir
4
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Langlebige architekturen

  1. 1. WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen Dr. Carola Lilienthal Carola.Lilienthal@wps.de, @cairolali www.wps.de
  2. 2. 07.02.2016 //// Seite 2WPS - Workplace Solutions GmbH Die WPS – Workplace Solutions GmbH Anwendungsorientierung Kompetenz Qualität Software- Architektur Anforderungs- ermittlung Leitstand und Interaktion Individual- software Business-Software, die Spaß macht!
  3. 3. 07.02.2016 //// Seite 2WPS - Workplace Solutions GmbH Die WPS – Workplace Solutions GmbH Anwendungsorientierung Kompetenz Qualität Software- Architektur Anforderungs- ermittlung Leitstand und Interaktion Individual- software Business-Software, die Spaß macht!
  4. 4. 07.02.2016 //// Seite 4WPS - Workplace Solutions GmbH Technische Schulden ≠ Langlebigkeit
  5. 5. 07.02.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. 07.02.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? Plan mit Klassen = Soll-Architektur Ist-Architektur ≠ Sourcecode DirectoriesDirectories Packages Namespaces Subsysteme Komponenten Module Schichten
  7. 7. 07.02.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. 07.02.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. 07.02.2016 //// Seite 9WPS - Workplace Solutions GmbH 70% 20% 10% Code verstehen Problem lösen Code schreiben Womit verbringen wir unsere Zeit?
  10. 10. 07.02.2016 //// Seite 11WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata
  11. 11. 07.02.2016 //// Seite 12WPS - Workplace Solutions GmbH
  12. 12. 07.02.2016 //// Seite 15WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur Modularität
  13. 13. 07.02.2016 //// Seite 16WPS - Workplace Solutions GmbH Modularität Hohe Kohäsion und lose Kopplung Responsibility Driven Design Separation of Concerns Single Responsibility Principle
  14. 14. 07.02.2016 //// Seite 17WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur Modularität
  15. 15. 07.02.2016 //// Seite 18WPS - Workplace Solutions GmbH Hierarchien
  16. 16. Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur HierarchisierungModularität
  17. 17. Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur HierarchisierungModularität Musterkonsistenz
  18. 18. 07.02.2016 //// Seite 26WPS - Workplace Solutions GmbH User Interface Domain Application Hierarchien in Architekturebene: Schichten und Module Fachliches Modul B Fachliches Modul B Fachliches Modul A Fachliches Modul A Fachliche Schichtung TechnischeSchichtung Fachliches Modul C Fachliches Modul C
  19. 19. 07.02.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
  20. 20. 07.02.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
  21. 21. 07.02.2016 //// Seite 29WPS - Workplace Solutions GmbH Hierarchien auf Klassenebene Auswirkung auf: Wartbarkeit Austauschbarkeit Testbarkeit Modularität Musterkonsistenz Hierarchien auf allen Ebenen einführen
  22. 22. 07.02.2016 //// Seite 30WPS - Workplace Solutions GmbH Einfache Zyklengruppe
  23. 23. 07.02.2016 //// Seite 31WPS - Workplace Solutions GmbH Schwierige Zyklengruppe
  24. 24. 07.02.2016 //// Seite 34WPS - Workplace Solutions GmbH 119 Klassen aus 4 Komponenten + 28 weitere Klassen
  25. 25. 07.02.2016 //// Seite 3WPS - Workplace Solutions GmbH
  26. 26. 07.02.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
  27. 27. 07.02.2016 //// Seite 37WPS - Workplace Solutions GmbH Uneven Modules 9 Komponenten = 17 Subsysteme
  28. 28. 07.02.2016 //// Seite 38WPS - 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
  29. 29. 07.02.2016 //// Seite 41WPS - Workplace Solutions GmbH Modularität: Ausgewogene Größenverhältnisse Typische Metriken: LOC pro Methode, Klasse, Package, Komponenten Duplizierter Code Zyklomatische Komplexität Ist das System auf den verschiedenen Ebenen ausgewogen? Welche Code-Abschnitte fallen durch ihre Größe besonders auf? Anti-Pattern „Godclass“
  30. 30. 07.02.2016 //// Seite 42WPS - Workplace Solutions GmbH Beispiel: Größenverhältnis und Kopplungsgrad Große Steuerungsklassen benutzen bis zu 100 – 500 andere Klassen Ausgewogene Größenverhältnisse führen zu geringerer Kopplung
  31. 31. 07.02.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
  32. 32. 07.02.2016 //// Seite 44WPS - Workplace Solutions GmbH Muster auf Architekturebene: Vier Module Modul Grün Modul Lila Modul Orange Modul Blau
  33. 33. 07.02.2016 //// Seite 45WPS - Workplace Solutions GmbH Musterkonsistenz: Was finden wir? Ist die Abbildung der Architektur in der Struktur des Codes zu erkennen?
  34. 34. 07.02.2016 //// Seite 46WPS - Workplace Solutions GmbH Muster sinnvoll eingesetzt
  35. 35. 07.02.2016 //// Seite 47WPS - Workplace Solutions GmbH Muster auf Klassenebene: Entwurfsmuster und Mustersprachen User Interface Domain Application Fachliches ModulFachliches Modul Window GUI Model View C o n t r o l ValueObject Service BusinessObject SchichtungdurchMuster
  36. 36. 07.02.2016 //// Seite 48WPS - Workplace Solutions GmbH Gute umgesetzte Mustersprache ☺ 90% des Sourcecodes lässt sich den Mustern zuordnen ☺ 0,1% Verletzungen in den Mustern
  37. 37. 07.02.2016 //// Seite 49WPS - Workplace Solutions GmbH Entdeckung einer Mustersprache ☺ 80% des Sourcecodes lässt sich den 23 Mustern zuordnen ☺ 4% Verletzungen in den Mustern
  38. 38. 07.02.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
  39. 39. 07.02.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
  40. 40. 07.02.2016 //// Seite 52WPS - Workplace Solutions GmbH Kommerzielle Produkte Axivion Bauhaus: Java, .Net, C/C++, Ada, VB und Cobol Lattix: Java, .Net, C/C++, Ada, Delphi und DB-Systeme Structure101: Java, C++, Ada SotoArc und Sonargraph: Java, .Net, C/C++, ABAP, PHP • Teamscale • Seerene
  41. 41. 07.02.2016 //// Seite 59WPS - Workplace Solutions GmbH Vorgehen bei der Architekturanalyse und Verbesserung
  42. 42. 07.02.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
  43. 43. 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

×