SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
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
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
11.03.2016 //// Seite 3WPS - Workplace Solutions GmbH
11.03.2016 //// Seite 4WPS - Workplace Solutions GmbH
Technische Schulden ≠ Langlebigkeit
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
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
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
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
11.03.2016 //// Seite 9WPS - Workplace Solutions GmbH
70%
20%
10%
Code verstehen
Problem lösen
Code schreiben
Womit verbringen wir unsere Zeit?
11.03.2016 //// Seite 11WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
Hierarchien
Chunking
Aufbau von
Schemata
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
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
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
11.03.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
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
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
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
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
11.03.2016 //// Seite 30WPS - Workplace Solutions GmbH
Einfache Zyklengruppe
11.03.2016 //// Seite 31WPS - Workplace Solutions GmbH
Schwierige Zyklengruppe
11.03.2016 //// Seite 34WPS - Workplace Solutions GmbH
119 Klassen aus 4 Komponenten
+ 28 weitere Klassen
11.03.2016 //// Seite 35WPS - Workplace Solutions GmbH
Große Zyklen sichtbar machen
327 Klassen aus 8 Komponenten
brauchen sich gegenseitig
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
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
11.03.2016 //// Seite 38WPS - Workplace Solutions GmbH
Uneven Modules
9 Komponenten = 17 Subsysteme
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
11.03.2016 //// Seite 44WPS - Workplace Solutions GmbH
Muster auf Architekturebene: Vier Module
Modul
Grün
Modul
Lila
Modul
Orange
Modul
Blau
11.03.2016 //// Seite 45WPS - Workplace Solutions GmbH
Musterkonsistenz: Was finden wir?
 Ist die Abbildung der Architektur in der Struktur des Codes zu erkennen?
11.03.2016 //// Seite 46WPS - Workplace Solutions GmbH
Muster sinnvoll eingesetzt
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
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
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
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
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
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
11.03.2016 //// Seite 59WPS - Workplace Solutions GmbH
Vorgehen bei der Architekturanalyse und Verbesserung
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
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

Contenu connexe

Tendances

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 modernisiertWünsch AG
 
Rasterpunkt GmbH: Schulungskalender Output Management Solutions
Rasterpunkt GmbH: Schulungskalender Output Management Solutions Rasterpunkt GmbH: Schulungskalender Output Management Solutions
Rasterpunkt GmbH: Schulungskalender Output Management Solutions RasterpunktGmbH
 
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 - WTC15die.agilen GmbH
 
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 ...bhoeck
 
Abayoo Netzwerkpartner AdaPro
Abayoo Netzwerkpartner AdaProAbayoo Netzwerkpartner AdaPro
Abayoo Netzwerkpartner AdaProAdaPro GmbH
 
Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsCollaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsBelsoft
 
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 VEAGeorg Eck
 

Tendances (8)

The joy of multiple models
The joy of multiple modelsThe joy of multiple models
The joy of multiple models
 
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
 
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
 
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 ...
 
Abayoo Netzwerkpartner AdaPro
Abayoo Netzwerkpartner AdaProAbayoo Netzwerkpartner AdaPro
Abayoo Netzwerkpartner AdaPro
 
Collaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - AppsCollaboration day 2016 - Connections - Apps
Collaboration day 2016 - Connections - Apps
 
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
 

En vedette

Große ziele kleine schritte
Große ziele kleine schritteGroße ziele kleine schritte
Große ziele kleine schritteCarola Lilienthal
 
Reducing technical debt in php
Reducing technical debt in phpReducing technical debt in php
Reducing technical debt in phpCarola Lilienthal
 
Kommunikation und Qualität - Java Forum Nord 2016
Kommunikation und Qualität - Java Forum Nord 2016Kommunikation und Qualität - Java Forum Nord 2016
Kommunikation und Qualität - Java Forum Nord 2016Sabine Wojcieszak
 
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?Julia Stoff
 
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013Andrea Heck
 
It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!Simon Ritter
 
Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?André Goliath
 
Java & low latency applications
Java & low latency applicationsJava & low latency applications
Java & low latency applicationsRuslan Shevchenko
 
Java Concurrency Quick Guide
Java Concurrency Quick GuideJava Concurrency Quick Guide
Java Concurrency Quick GuideAnton Shchastnyi
 
Presentation Erfolgreiche Software mit großartiger Dokumentation - Asciidoctor
Presentation Erfolgreiche Software mit großartiger Dokumentation - AsciidoctorPresentation Erfolgreiche Software mit großartiger Dokumentation - Asciidoctor
Presentation Erfolgreiche Software mit großartiger Dokumentation - AsciidoctorRobert Panzer
 
Robust and Scalable Concurrent Programming: Lesson from the Trenches
Robust and Scalable Concurrent Programming: Lesson from the TrenchesRobust and Scalable Concurrent Programming: Lesson from the Trenches
Robust and Scalable Concurrent Programming: Lesson from the TrenchesSangjin Lee
 
Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey J On The Beach
 
IBM Java PackedObjects
IBM Java PackedObjectsIBM Java PackedObjects
IBM Java PackedObjectsMarcel Mitran
 
Was jeder Java-Entwickler über Strings wissen sollte
Was jeder Java-Entwickler über Strings wissen sollteWas jeder Java-Entwickler über Strings wissen sollte
Was jeder Java-Entwickler über Strings wissen sollteberndmueller
 
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2Amazon Web Services
 
What are the Cool Kids Doing With Continuous Delivery?
What are the Cool Kids Doing With Continuous Delivery?What are the Cool Kids Doing With Continuous Delivery?
What are the Cool Kids Doing With Continuous Delivery?CA Technologies
 
Pitfalls of migrating projects to JDK 9
Pitfalls of migrating projects to JDK 9Pitfalls of migrating projects to JDK 9
Pitfalls of migrating projects to JDK 9Pavel Bucek
 
A Post-Apocalyptic sun.misc.Unsafe World
A Post-Apocalyptic sun.misc.Unsafe WorldA Post-Apocalyptic sun.misc.Unsafe World
A Post-Apocalyptic sun.misc.Unsafe WorldChristoph Engelbert
 

En vedette (20)

Große ziele kleine schritte
Große ziele kleine schritteGroße ziele kleine schritte
Große ziele kleine schritte
 
Reducing technical debt in php
Reducing technical debt in phpReducing technical debt in php
Reducing technical debt in php
 
Kommunikation und Qualität - Java Forum Nord 2016
Kommunikation und Qualität - Java Forum Nord 2016Kommunikation und Qualität - Java Forum Nord 2016
Kommunikation und Qualität - Java Forum Nord 2016
 
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?
 
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
Distributed Product Owner Team @ syngo - presented at ScanDev SDC 2013
 
It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!It's Java Jim, But Not As We Know It!
It's Java Jim, But Not As We Know It!
 
Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?
 
Java & low latency applications
Java & low latency applicationsJava & low latency applications
Java & low latency applications
 
Get Back in Control of your SQL
Get Back in Control of your SQLGet Back in Control of your SQL
Get Back in Control of your SQL
 
Java Concurrency Quick Guide
Java Concurrency Quick GuideJava Concurrency Quick Guide
Java Concurrency Quick Guide
 
Die Java Plattform Strategie
Die Java Plattform StrategieDie Java Plattform Strategie
Die Java Plattform Strategie
 
Presentation Erfolgreiche Software mit großartiger Dokumentation - Asciidoctor
Presentation Erfolgreiche Software mit großartiger Dokumentation - AsciidoctorPresentation Erfolgreiche Software mit großartiger Dokumentation - Asciidoctor
Presentation Erfolgreiche Software mit großartiger Dokumentation - Asciidoctor
 
Robust and Scalable Concurrent Programming: Lesson from the Trenches
Robust and Scalable Concurrent Programming: Lesson from the TrenchesRobust and Scalable Concurrent Programming: Lesson from the Trenches
Robust and Scalable Concurrent Programming: Lesson from the Trenches
 
Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey
 
IBM Java PackedObjects
IBM Java PackedObjectsIBM Java PackedObjects
IBM Java PackedObjects
 
Was jeder Java-Entwickler über Strings wissen sollte
Was jeder Java-Entwickler über Strings wissen sollteWas jeder Java-Entwickler über Strings wissen sollte
Was jeder Java-Entwickler über Strings wissen sollte
 
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
(GAM404) Hunting Monsters in a Low-Latency Multiplayer Game on EC2
 
What are the Cool Kids Doing With Continuous Delivery?
What are the Cool Kids Doing With Continuous Delivery?What are the Cool Kids Doing With Continuous Delivery?
What are the Cool Kids Doing With Continuous Delivery?
 
Pitfalls of migrating projects to JDK 9
Pitfalls of migrating projects to JDK 9Pitfalls of migrating projects to JDK 9
Pitfalls of migrating projects to JDK 9
 
A Post-Apocalyptic sun.misc.Unsafe World
A Post-Apocalyptic sun.misc.Unsafe WorldA Post-Apocalyptic sun.misc.Unsafe World
A Post-Apocalyptic sun.misc.Unsafe World
 

Similaire à Technische Schulden in Architekturen erkennen und beseitigen

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 Excelsolutiontogo
 
05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beansklickandbau
 
Agenda 6. Jahrestagung Variantenmanagement
Agenda 6. Jahrestagung Variantenmanagement Agenda 6. Jahrestagung Variantenmanagement
Agenda 6. Jahrestagung Variantenmanagement Sascha Rauhe
 
IT-Ringvorlesung - Präsentation Unister
IT-Ringvorlesung - Präsentation UnisterIT-Ringvorlesung - Präsentation Unister
IT-Ringvorlesung - Präsentation UnisterEmpfehlungsbund
 
Authoring Management
Authoring ManagementAuthoring Management
Authoring Managementvzimmermann
 
Webcast: Vorlagenmanagement - Best Practices 2015
Webcast: Vorlagenmanagement - Best Practices 2015Webcast: Vorlagenmanagement - Best Practices 2015
Webcast: Vorlagenmanagement - Best Practices 2015COC AG
 
DNUG 36 2012_Konferenzbroschuere
DNUG 36 2012_KonferenzbroschuereDNUG 36 2012_Konferenzbroschuere
DNUG 36 2012_KonferenzbroschuereFriedel Jonker
 
Tätigkeits- und Beraterprofil Klaus Einecke
Tätigkeits-  und Beraterprofil Klaus EineckeTätigkeits-  und Beraterprofil Klaus Einecke
Tätigkeits- und Beraterprofil Klaus EineckeKlaus Einecke
 
Architektur = Kommunikation
Architektur = KommunikationArchitektur = Kommunikation
Architektur = KommunikationMatthias Bohlen
 
Community Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareCommunity Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareFranziska Hauck
 
Openstack im unternehmerischen Einsatz
Openstack im unternehmerischen EinsatzOpenstack im unternehmerischen Einsatz
Openstack im unternehmerischen EinsatzB1 Systems GmbH
 
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]Martin Gaedke
 
Fonda: Erfolgsfaktor Benutzeroberfläche
Fonda: Erfolgsfaktor BenutzeroberflächeFonda: Erfolgsfaktor Benutzeroberfläche
Fonda: Erfolgsfaktor BenutzeroberflächeFonda Wien
 
Maschinenbau: Design Baukasten als vorteilhafte Module
Maschinenbau: Design Baukasten als vorteilhafte ModuleMaschinenbau: Design Baukasten als vorteilhafte Module
Maschinenbau: Design Baukasten als vorteilhafte Moduleolik88
 
SAP_Basis_Klassisch.pdf
SAP_Basis_Klassisch.pdfSAP_Basis_Klassisch.pdf
SAP_Basis_Klassisch.pdfCazLP
 
GraphTalks Stuttgart - semantic data management – der Weg zu einer nachhaltig...
GraphTalks Stuttgart - semantic data management – der Weg zu einer nachhaltig...GraphTalks Stuttgart - semantic data management – der Weg zu einer nachhaltig...
GraphTalks Stuttgart - semantic data management – der Weg zu einer nachhaltig...Neo4j
 

Similaire à Technische Schulden in Architekturen erkennen und beseitigen (20)

Built To Last - Nachhaltige Software-Entwicklung
Built To Last - Nachhaltige Software-EntwicklungBuilt To Last - Nachhaltige Software-Entwicklung
Built To Last - Nachhaltige Software-Entwicklung
 
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
 
05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans
 
Agenda 6. Jahrestagung Variantenmanagement
Agenda 6. Jahrestagung Variantenmanagement Agenda 6. Jahrestagung Variantenmanagement
Agenda 6. Jahrestagung Variantenmanagement
 
IT-Ringvorlesung - Präsentation Unister
IT-Ringvorlesung - Präsentation UnisterIT-Ringvorlesung - Präsentation Unister
IT-Ringvorlesung - Präsentation Unister
 
Authoring Management
Authoring ManagementAuthoring Management
Authoring Management
 
Webcast: Vorlagenmanagement - Best Practices 2015
Webcast: Vorlagenmanagement - Best Practices 2015Webcast: Vorlagenmanagement - Best Practices 2015
Webcast: Vorlagenmanagement - Best Practices 2015
 
DNUG 36 2012_Konferenzbroschuere
DNUG 36 2012_KonferenzbroschuereDNUG 36 2012_Konferenzbroschuere
DNUG 36 2012_Konferenzbroschuere
 
Tätigkeits- und Beraterprofil Klaus Einecke
Tätigkeits-  und Beraterprofil Klaus EineckeTätigkeits-  und Beraterprofil Klaus Einecke
Tätigkeits- und Beraterprofil Klaus Einecke
 
Architektur = Kommunikation
Architektur = KommunikationArchitektur = Kommunikation
Architektur = Kommunikation
 
2011 05 11 12-15 untersee_11.24 monitore und cockpits
2011 05 11 12-15 untersee_11.24 monitore und cockpits2011 05 11 12-15 untersee_11.24 monitore und cockpits
2011 05 11 12-15 untersee_11.24 monitore und cockpits
 
Community Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige ForensoftwareCommunity Camp 2016: Die richtige Forensoftware
Community Camp 2016: Die richtige Forensoftware
 
Openstack im unternehmerischen Einsatz
Openstack im unternehmerischen EinsatzOpenstack im unternehmerischen Einsatz
Openstack im unternehmerischen Einsatz
 
Webinar - Maschine kaputt - finde den Fehler!
Webinar - Maschine kaputt - finde den Fehler!Webinar - Maschine kaputt - finde den Fehler!
Webinar - Maschine kaputt - finde den Fehler!
 
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]
 
Fonda: Erfolgsfaktor Benutzeroberfläche
Fonda: Erfolgsfaktor BenutzeroberflächeFonda: Erfolgsfaktor Benutzeroberfläche
Fonda: Erfolgsfaktor Benutzeroberfläche
 
[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
 
Maschinenbau: Design Baukasten als vorteilhafte Module
Maschinenbau: Design Baukasten als vorteilhafte ModuleMaschinenbau: Design Baukasten als vorteilhafte Module
Maschinenbau: Design Baukasten als vorteilhafte Module
 
SAP_Basis_Klassisch.pdf
SAP_Basis_Klassisch.pdfSAP_Basis_Klassisch.pdf
SAP_Basis_Klassisch.pdf
 
GraphTalks Stuttgart - semantic data management – der Weg zu einer nachhaltig...
GraphTalks Stuttgart - semantic data management – der Weg zu einer nachhaltig...GraphTalks Stuttgart - semantic data management – der Weg zu einer nachhaltig...
GraphTalks Stuttgart - semantic data management – der Weg zu einer nachhaltig...
 

Plus de Carola Lilienthal

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...Carola Lilienthal
 
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...Carola Lilienthal
 
Resolving technical debt in software architecture
Resolving technical debt in software architectureResolving technical debt in software architecture
Resolving technical debt in software architectureCarola Lilienthal
 
DDD Foundation: Improving legacy
DDD Foundation: Improving legacyDDD Foundation: Improving legacy
DDD Foundation: Improving legacyCarola Lilienthal
 
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 englCarola Lilienthal
 

Plus de Carola Lilienthal (6)

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
 

Technische Schulden in Architekturen erkennen und beseitigen

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