SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
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
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!
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!
07.02.2016 //// Seite 4WPS - Workplace Solutions GmbH
Technische Schulden ≠ Langlebigkeit
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
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
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
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
07.02.2016 //// Seite 9WPS - Workplace Solutions GmbH
70%
20%
10%
Code verstehen
Problem lösen
Code schreiben
Womit verbringen wir unsere Zeit?
07.02.2016 //// Seite 11WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
Hierarchien
Chunking
Aufbau von
Schemata
07.02.2016 //// Seite 12WPS - Workplace Solutions GmbH
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
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
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
07.02.2016 //// Seite 18WPS - Workplace Solutions GmbH
Hierarchien
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
Hierarchien
Chunking
Aufbau von
Schemata
Einfache, einheitliche
Architektur
HierarchisierungModularität
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
Hierarchien
Chunking
Aufbau von
Schemata
Einfache, einheitliche
Architektur
HierarchisierungModularität Musterkonsistenz
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
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
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
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
07.02.2016 //// Seite 30WPS - Workplace Solutions GmbH
Einfache Zyklengruppe
07.02.2016 //// Seite 31WPS - Workplace Solutions GmbH
Schwierige Zyklengruppe
07.02.2016 //// Seite 34WPS - Workplace Solutions GmbH
119 Klassen aus 4 Komponenten
+ 28 weitere Klassen
07.02.2016 //// Seite 3WPS - Workplace Solutions GmbH
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
07.02.2016 //// Seite 37WPS - Workplace Solutions GmbH
Uneven Modules
9 Komponenten = 17 Subsysteme
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
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“
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
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
07.02.2016 //// Seite 44WPS - Workplace Solutions GmbH
Muster auf Architekturebene: Vier Module
Modul
Grün
Modul
Lila
Modul
Orange
Modul
Blau
07.02.2016 //// Seite 45WPS - Workplace Solutions GmbH
Musterkonsistenz: Was finden wir?
Ist die Abbildung der Architektur in der Struktur des Codes zu erkennen?
07.02.2016 //// Seite 46WPS - Workplace Solutions GmbH
Muster sinnvoll eingesetzt
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
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
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
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
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
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
07.02.2016 //// Seite 59WPS - Workplace Solutions GmbH
Vorgehen bei der Architekturanalyse und Verbesserung
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Automatisierung im DWH - Sich das Leben erleichern mit dem ODI
Automatisierung im DWH - Sich das Leben erleichern mit dem ODIAutomatisierung im DWH - Sich das Leben erleichern mit dem ODI
Automatisierung im DWH - Sich das Leben erleichern mit dem ODI
OPITZ CONSULTING Deutschland
 
BootsFaces and AngularFaces - Modern HTML5 for JSF developers
BootsFaces and AngularFaces - Modern HTML5 for JSF developers BootsFaces and AngularFaces - Modern HTML5 for JSF developers
BootsFaces and AngularFaces - Modern HTML5 for JSF developers
OPITZ CONSULTING Deutschland
 
Abayoo Netzwerkpartner AdaPro
Abayoo Netzwerkpartner AdaProAbayoo Netzwerkpartner AdaPro
Abayoo Netzwerkpartner AdaPro
AdaPro GmbH
 

Was ist angesagt? (13)

The joy of multiple models
The joy of multiple modelsThe joy of multiple models
The joy of multiple models
 
Automatisierung im DWH - Sich das Leben erleichern mit dem ODI
Automatisierung im DWH - Sich das Leben erleichern mit dem ODIAutomatisierung im DWH - Sich das Leben erleichern mit dem ODI
Automatisierung im DWH - Sich das Leben erleichern mit dem ODI
 
Bedeutung von Integrationsarchitekturen im Zeitalter von Mobile, IoT und Cloud
Bedeutung von Integrationsarchitekturen im Zeitalter von Mobile, IoT und CloudBedeutung von Integrationsarchitekturen im Zeitalter von Mobile, IoT und Cloud
Bedeutung von Integrationsarchitekturen im Zeitalter von Mobile, IoT und Cloud
 
Wünsch AG Vortrag mit der App ins Web oder wie man Notes modernisiert
Wünsch AG Vortrag mit der App ins Web oder wie man Notes modernisiertWünsch AG Vortrag mit der App ins Web oder wie man Notes modernisiert
Wünsch AG Vortrag mit der App ins Web oder wie man Notes modernisiert
 
Rasterpunkt GmbH: Schulungskalender Output Management Solutions
Rasterpunkt GmbH: Schulungskalender Output Management Solutions Rasterpunkt GmbH: Schulungskalender Output Management Solutions
Rasterpunkt GmbH: Schulungskalender Output Management Solutions
 
Forms 12c und der Oracle SB
Forms 12c und der Oracle SBForms 12c und der Oracle SB
Forms 12c und der Oracle SB
 
BootsFaces and AngularFaces - Modern HTML5 for JSF developers
BootsFaces and AngularFaces - Modern HTML5 for JSF developers BootsFaces and AngularFaces - Modern HTML5 for JSF developers
BootsFaces and AngularFaces - Modern HTML5 for JSF developers
 
tekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEA
tekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEAtekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEA
tekom/tcworld 2013 – T1: 3D-PDF-Tools von Tetra4D im Vergleich mit SAP VEA
 
[DE] Staffware Process Suite – Delivering the Process of Business | Dr. Ulric...
[DE] Staffware Process Suite – Delivering the Process of Business | Dr. Ulric...[DE] Staffware Process Suite – Delivering the Process of Business | Dr. Ulric...
[DE] Staffware Process Suite – Delivering the Process of Business | Dr. Ulric...
 
Telefonie und Meetings: Net at Work führt mit Workshops in das Universum von ...
Telefonie und Meetings: Net at Work führt mit Workshops in das Universum von ...Telefonie und Meetings: Net at Work führt mit Workshops in das Universum von ...
Telefonie und Meetings: Net at Work führt mit Workshops in das Universum von ...
 
Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsCollaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - Apps
 
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
Atomic Design – Die Einheit von Frontend und Design im RWD-Zeitalter - WTC15
 
Abayoo Netzwerkpartner AdaPro
Abayoo Netzwerkpartner AdaProAbayoo Netzwerkpartner AdaPro
Abayoo Netzwerkpartner AdaPro
 

Ähnlich wie Langlebige architekturen

Projektkrisen Vortrag OOP 2011
Projektkrisen Vortrag OOP 2011Projektkrisen Vortrag OOP 2011
Projektkrisen Vortrag OOP 2011
KEGON AG
 
Tätigkeits- und Beraterprofil Klaus Einecke
Tätigkeits-  und Beraterprofil Klaus EineckeTätigkeits-  und Beraterprofil Klaus Einecke
Tätigkeits- und Beraterprofil Klaus Einecke
Klaus Einecke
 

Ähnlich wie Langlebige architekturen (20)

Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS ExcelSolutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
Solutiontogo webinar top 5 tricks und templates für die Planung mit MS Excel
 
DNUG 36 2012_Konferenzbroschuere
DNUG 36 2012_KonferenzbroschuereDNUG 36 2012_Konferenzbroschuere
DNUG 36 2012_Konferenzbroschuere
 
Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - AnwendungsmodernisierungDev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
Dev Day 2021 - Stephan Pirnbaum - Anwendungsmodernisierung
 
Maschinenbau: Design Baukasten als vorteilhafte Module
Maschinenbau: Design Baukasten als vorteilhafte ModuleMaschinenbau: Design Baukasten als vorteilhafte Module
Maschinenbau: Design Baukasten als vorteilhafte Module
 
Projektkrisen Vortrag OOP 2011
Projektkrisen Vortrag OOP 2011Projektkrisen Vortrag OOP 2011
Projektkrisen Vortrag OOP 2011
 
Built To Last - Nachhaltige Software-Entwicklung
Built To Last - Nachhaltige Software-EntwicklungBuilt To Last - Nachhaltige Software-Entwicklung
Built To Last - Nachhaltige Software-Entwicklung
 
Agile (Software-) Prozesse - Quo Vadis? [in German]
Agile (Software-) Prozesse - Quo Vadis? [in German]Agile (Software-) Prozesse - Quo Vadis? [in German]
Agile (Software-) Prozesse - Quo Vadis? [in German]
 
Agenda 6. Jahrestagung Variantenmanagement
Agenda 6. Jahrestagung Variantenmanagement Agenda 6. Jahrestagung Variantenmanagement
Agenda 6. Jahrestagung Variantenmanagement
 
05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans
 
Architektur = Kommunikation
Architektur = KommunikationArchitektur = Kommunikation
Architektur = Kommunikation
 
Authoring Management
Authoring ManagementAuthoring Management
Authoring Management
 
[DE] Trends für ECM 2010 | Dr. Ulrich Kampffmeyer | Keynote für COI | 2009
[DE] Trends für ECM 2010 | Dr. Ulrich Kampffmeyer | Keynote für COI | 2009[DE] Trends für ECM 2010 | Dr. Ulrich Kampffmeyer | Keynote für COI | 2009
[DE] Trends für ECM 2010 | Dr. Ulrich Kampffmeyer | Keynote für COI | 2009
 
Tätigkeits- und Beraterprofil Klaus Einecke
Tätigkeits-  und Beraterprofil Klaus EineckeTätigkeits-  und Beraterprofil Klaus Einecke
Tätigkeits- und Beraterprofil Klaus Einecke
 
Team Foundation Server
Team Foundation ServerTeam Foundation Server
Team Foundation Server
 
Community Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareCommunity Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige Forensoftware
 
Artikel im Swiss IT Magazine: Marktuebersicht Web-Agenturen
Artikel im Swiss IT Magazine: Marktuebersicht Web-AgenturenArtikel im Swiss IT Magazine: Marktuebersicht Web-Agenturen
Artikel im Swiss IT Magazine: Marktuebersicht Web-Agenturen
 
BASTA Spring 2018: User Interface, quo vadis? Überlebensstrategien eines Soft...
BASTA Spring 2018: User Interface, quo vadis? Überlebensstrategien eines Soft...BASTA Spring 2018: User Interface, quo vadis? Überlebensstrategien eines Soft...
BASTA Spring 2018: User Interface, quo vadis? Überlebensstrategien eines Soft...
 
Große agile Teams - Zu viele Entwickler verderben den Brei?
Große agile Teams - Zu viele Entwickler verderben den Brei?Große agile Teams - Zu viele Entwickler verderben den Brei?
Große agile Teams - Zu viele Entwickler verderben den Brei?
 
IT-Ringvorlesung - Präsentation Unister
IT-Ringvorlesung - Präsentation UnisterIT-Ringvorlesung - Präsentation Unister
IT-Ringvorlesung - Präsentation Unister
 
onSelect
onSelectonSelect
onSelect
 

Mehr von Carola Lilienthal

Mehr von Carola Lilienthal (8)

its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...its all about the domain honey! Experiences from 15 years of Domain-Driven De...
its all about the domain honey! Experiences from 15 years of Domain-Driven De...
 
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
its all about the domain, honey! Experiences from 15 years of Domain-Driven D...
 
Improving legacy
Improving legacyImproving legacy
Improving legacy
 
Resolving technical debt in software architecture
Resolving technical debt in software architectureResolving technical debt in software architecture
Resolving technical debt in software architecture
 
DDD Foundation: Improving legacy
DDD Foundation: Improving legacyDDD Foundation: Improving legacy
DDD Foundation: Improving legacy
 
Its all about the domain honey engl
Its all about the domain honey englIts all about the domain honey engl
Its all about the domain honey engl
 
Reducing technical debt in php
Reducing technical debt in phpReducing technical debt in php
Reducing technical debt in php
 
Große ziele kleine schritte
Große ziele kleine schritteGroße ziele kleine schritte
Große ziele kleine schritte
 

Langlebige architekturen

  • 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. 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. 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. 07.02.2016 //// Seite 4WPS - Workplace Solutions GmbH Technische Schulden ≠ Langlebigkeit
  • 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. 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. 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. 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. 07.02.2016 //// Seite 9WPS - Workplace Solutions GmbH 70% 20% 10% Code verstehen Problem lösen Code schreiben Womit verbringen wir unsere Zeit?
  • 10. 07.02.2016 //// Seite 11WPS - Workplace Solutions GmbH Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata
  • 11. 07.02.2016 //// Seite 12WPS - Workplace Solutions GmbH
  • 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. 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. 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. 07.02.2016 //// Seite 18WPS - Workplace Solutions GmbH Hierarchien
  • 16. Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur HierarchisierungModularität
  • 17. Komplexe Strukturen verstehen = Zeitgewinn! Kognitive Mechanismen Bildung von Hierarchien Chunking Aufbau von Schemata Einfache, einheitliche Architektur HierarchisierungModularität Musterkonsistenz
  • 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. 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. 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. 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. 07.02.2016 //// Seite 30WPS - Workplace Solutions GmbH Einfache Zyklengruppe
  • 23. 07.02.2016 //// Seite 31WPS - Workplace Solutions GmbH Schwierige Zyklengruppe
  • 24. 07.02.2016 //// Seite 34WPS - Workplace Solutions GmbH 119 Klassen aus 4 Komponenten + 28 weitere Klassen
  • 25. 07.02.2016 //// Seite 3WPS - Workplace Solutions GmbH
  • 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. 07.02.2016 //// Seite 37WPS - Workplace Solutions GmbH Uneven Modules 9 Komponenten = 17 Subsysteme
  • 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. 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. 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. 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. 07.02.2016 //// Seite 44WPS - Workplace Solutions GmbH Muster auf Architekturebene: Vier Module Modul Grün Modul Lila Modul Orange Modul Blau
  • 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. 07.02.2016 //// Seite 46WPS - Workplace Solutions GmbH Muster sinnvoll eingesetzt
  • 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. 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. 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. 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. 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. 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. 07.02.2016 //// Seite 59WPS - Workplace Solutions GmbH Vorgehen bei der Architekturanalyse und Verbesserung
  • 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. 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