Upload
carola-lilienthal
View
169
Download
1
Embed Size (px)
Citation preview
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG
Vom Pair Programming zur Mob-Architekturverbesserung
Dr. Carola Lilienthal, [email protected], @cairolali
www.wps.de
10.04.2017 //// Seite 4WPS - Workplace Solutions GmbH
Software-
Architektur
Anforderungs-
ermittlung
Leitstand und
Interaktion
Individual-
software
Business-Software,
die Spaß macht!
WPS – Workplace Solutions GmbH
10.04.2017 //// Seite 6WPS - Workplace Solutions GmbH
Dr. Carola Lilienthal
Geschäftsführerin
www.wps.de
+49 40 229 499-0
+49 40 229 499-299
+49 170 184 77 11
Diplom-Informatikerin
@cairolali
a @cairolali
www.llsa.de
10.04.2017 //// Seite 7WPS - Workplace Solutions GmbH
Software-Entwicklung/Einführung = Expedition
Entscheidungs-
spielraum
Projektbeginn Zu Projektbeginn
geplante Lösung
Anvisiertes Ziel der 1. Iteration
Unschärfe, im
Projektverlauf
abnehmend
Zwischenergebnisse
zum Überprüfen der
Richtung
Tatsächliche
Lösung am
Projektende
© Gernot Starke
10.04.2017 //// Seite 8WPS - Workplace Solutions GmbH
Aus klein wird groß, und jede Teillösung funktioniert!
© Frank Düsterbeck
10.04.2017 //// Seite 21WPS - Workplace Solutions GmbH
Mob Architecting – Architekturanalyse im Team
10.04.2017 //// Seite 22WPS - 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
10.04.2017 //// Seite 23WPS - Workplace Solutions GmbH
Architekturziele für Langlebigkeit
Architekturziel 1: Erweiterbarkeit
• schnelle Anpassungen
• schnelle Fehleranalyse
• Handlungssicherheit
• Stabilität
Architekturziel 2: Flexibilität
• Varianten von Geschäftsprozessen
• Geänderte Anforderungen
• Serviceorientierung und Skalierbarkeit
• Baukastenprinzip
10.04.2017 //// Seite 24WPS - Workplace Solutions GmbH
Ausmaß an
technischen Schulden
Funktionalität
pro ZeiteinheitArchitekturerneuerung Wartung und Erweiterung
hohe
Schulden
geringe
Schulden
Gleichbleibender
Aufwand für Wartung
10.04.2017 //// Seite 25WPS - Workplace Solutions GmbH
Ausmaß an
technischen Schulden
Funktionalität
pro ZeiteinheitArchitekturerneuerung
Architekturerosion
Wartung und Erweiterung
hohe
Schulden
geringe
Schulden
Gleichbleibender
Aufwand für Wartung
10.04.2017 //// Seite 26WPS - Workplace Solutions GmbH
Ausmaß an
technischen Schulden
Funktionalität
pro Zeiteinheit
Refactorings
Architekturerneuerung
Architekturerosion
Wartung und Erweiterung
hohe
Schulden
geringe
Schulden
Gleichbleibender
Aufwand für Wartung
10.04.2017 //// Seite 27WPS - Workplace Solutions GmbH
Ausmaß an
technischen Schulden
Funktionalität
pro Zeiteinheit
Refactorings
Architekturerneuerung
Architekturerosion
Wartung und Erweiterung
hohe
Schulden
geringe
Schulden
Gleichbleibender
Aufwand für Wartung
Hoher, unplanbarer
Aufwand für Wartung
10.04.2017 //// Seite 28WPS - Workplace Solutions GmbH
Ausmaß an
technischen Schulden
Funktionalität
pro Zeiteinheit
Refactorings
Architekturerneuerung
Architekturerosion
Wartung und Erweiterung
hohe
Schulden
geringe
Schulden
Gleichbleibender
Aufwand für Wartung
Hoher, unplanbarer
Aufwand für Wartung
10.04.2017 //// Seite 30WPS - Workplace Solutions GmbH
70%
20%
10%
Code verstehen
Problem lösen
Code schreiben
Womit verbringen wir unsere Zeit?
10.04.2017 //// Seite 33WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
HierarchienChunking
Aufbau von
Schemata
10.04.2017 //// Seite 37WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
HierarchienChunking
Aufbau von
Schemata
Einfache, einheitliche
Architektur
Modularität
10.04.2017 //// Seite 39WPS - Workplace Solutions GmbH
Modularität
Hohe Kohäsion und
lose Kopplung
Separation of Concerns
Single Responsibility Principle
10.04.2017 //// Seite 40WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
HierarchienChunking
Aufbau von
Schemata
Einfache, einheitliche
Architektur
Modularität
10.04.2017 //// Seite 43WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
HierarchienChunking
Aufbau von
Schemata
Einfache, einheitliche
Architektur
HierarchisierungModularität
10.04.2017 //// Seite 48WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
HierarchienChunking
Aufbau von
Schemata
Einfache, einheitliche
Architektur
HierarchisierungModularität Musterkonsistenz
10.04.2017 //// Seite 49WPS - Workplace Solutions GmbH
User Interface
Domain
Application
Hierarchien in Architekturebene: Schichten und Module
Fachliches
Modul B
Fachliches
Modul A
Fachliche Schichtung
Te
ch
nis
ch
e S
ch
ich
tun
gFachliches
Modul C
10.04.2017 //// Seite 50WPS - Workplace Solutions GmbH
Typische Architektur bei jungen Systemen
Gute technische Schichtung Unfertige fachliche Struktur
Technische Struktur
Fachliche Struktur ist unklar
10.04.2017 //// Seite 51WPS - 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
10.04.2017 //// Seite 53WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
HierarchienChunking
Aufbau von
Schemata
Einfache, einheitliche
Architektur
HierarchisierungModularität Musterkonsistenz
10.04.2017 //// Seite 55WPS - Workplace Solutions GmbH
Uneven Modules
Ein großer Monolith mit vielen kleinen Satelliten
950.860 LOC
84.808 LOC
10.04.2017 //// Seite 56WPS - Workplace Solutions GmbH
128 Build Units mit Anzahl Klassen
3 Mio von 9 Mio LOC
1/3 des Systems
10.04.2017 //// Seite 57WPS - Workplace Solutions GmbH
5.270 Klassen in einem Zyklus in einer BuildUnit
10.04.2017 //// Seite 61WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
HierarchienChunking
Aufbau von
Schemata
Einfache, einheitliche
Architektur
HierarchisierungModularität Musterkonsistenz
10.04.2017 //// Seite 65WPS - Workplace Solutions GmbH
Muster auf Klassenebene: Entwurfsmuster und Mustersprachen
User Interface
Domain
Application
Fachliches Modul
Window
GUI
Model
ViewControl
ValueObject
Service
BusinessObject
Sc
hic
htu
ng
du
rch
Mu
ste
r
10.04.2017 //// Seite 67WPS - Workplace Solutions GmbH
119 Klassen aus 4 Komponenten
+ 28 weitere Klassen
10.04.2017 //// Seite 68WPS - Workplace Solutions GmbH
Große Zyklen sichtbar machen
327 Klassen aus 8 Komponenten
brauchen sich gegenseitig
10.04.2017 //// Seite 74WPS - Workplace Solutions GmbH
Komplexe Strukturen verstehen = Zeitgewinn!
Kognitive Mechanismen
Bildung von
HierarchienChunking
Aufbau von
Schemata
HierarchisierungModularität Musterkonsistenz
Einheitliche und
durchgängige
Muster Zyklenfreiheit auf
allen Ebenen
Zuständigkeit
Kopplung
Größenverhältnisse
Schnittstellen
10.04.2017 //// Seite 75WPS - 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
• Degraph
• jQAssistant
10.04.2017 //// Seite 76WPS - 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
10.04.2017 //// Seite 78WPS - Workplace Solutions GmbH
Modularität von Softwarearchitekturen- Java, C#, C++, ABAP, PHP -
Modularität (0-10)
10.04.2017 //// Seite 81WPS - Workplace Solutions GmbH
Dr. Carola Lilienthal
Geschäftsführerin
www.wps.de
+49 40 229 499-0
+49 40 229 499-299
+49 170 184 77 11
Diplom-Informatikerin
@cairolali
a @cairolali
www.llsa.de
Vielen Dank für Ihre Aufmerksamkeit!