Top Banner
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen Dr. Carola Lilienthal [email protected], @cairolali www.wps.de
43

Langlebige architekturen

Jan 09, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Langlebige architekturen

WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG

Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen

Dr. Carola [email protected], @cairolaliwww.wps.de

Page 2: Langlebige architekturen

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!

Page 3: Langlebige architekturen

07.02.2016 //// Seite 3WPS - Workplace Solutions GmbH

Page 4: Langlebige architekturen

07.02.2016 //// Seite 4WPS - Workplace Solutions GmbH

Technische Schulden ≠ Langlebigkeit

Page 5: Langlebige architekturen

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

Page 6: Langlebige architekturen

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

DirectoriesDirectoriesPackagesNamespaces

Subsysteme KomponentenModule

Schichten

Page 7: Langlebige architekturen

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

Page 8: Langlebige architekturen

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

Page 9: Langlebige architekturen

07.02.2016 //// Seite 9WPS - Workplace Solutions GmbH

70%

20%

10%

Code verstehen

Problem lösen

Code schreiben

Womit verbringen wir unsere Zeit?

Page 10: Langlebige architekturen

07.02.2016 //// Seite 11WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

Page 11: Langlebige architekturen

07.02.2016 //// Seite 12WPS - Workplace Solutions GmbH

Page 12: Langlebige architekturen

07.02.2016 //// Seite 15WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

Einfache, einheitliche Architektur

Modularität

Page 13: Langlebige architekturen

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

Page 14: Langlebige architekturen

07.02.2016 //// Seite 17WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

Einfache, einheitliche Architektur

Modularität

Page 15: Langlebige architekturen

07.02.2016 //// Seite 18WPS - Workplace Solutions GmbH

Hierarchien

� �

Page 16: Langlebige architekturen

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

Einfache, einheitliche Architektur

HierarchisierungModularität

Page 17: Langlebige architekturen

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

Einfache, einheitliche Architektur

HierarchisierungModularität Musterkonsistenz

Page 18: Langlebige architekturen

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

Tech

nis

che

Sch

ich

tun

gFachliches

Modul CFachliches

Modul C

Page 19: Langlebige architekturen

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

Page 20: Langlebige architekturen

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

Page 21: Langlebige architekturen

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

Page 22: Langlebige architekturen

07.02.2016 //// Seite 30WPS - Workplace Solutions GmbH

Einfache Zyklengruppe

Page 23: Langlebige architekturen

07.02.2016 //// Seite 31WPS - Workplace Solutions GmbH

Schwierige Zyklengruppe

Page 24: Langlebige architekturen

07.02.2016 //// Seite 34WPS - Workplace Solutions GmbH

119 Klassen aus 4 Komponenten+ 28 weitere Klassen

Page 25: Langlebige architekturen

07.02.2016 //// Seite 35WPS - Workplace Solutions GmbH

Große Zyklen sichtbar machen

327 Klassen aus 8 Komponentenbrauchen sich gegenseitig

Page 26: Langlebige architekturen

07.02.2016 //// Seite 36WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

Einfache, einheitliche Architektur

HierarchisierungModularität Musterkonsistenz

Page 27: Langlebige architekturen

07.02.2016 //// Seite 37WPS - Workplace Solutions GmbH

Uneven Modules

9 Komponenten = 17 Subsysteme

Page 28: Langlebige architekturen

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

Page 29: Langlebige architekturen

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“

Page 30: Langlebige architekturen

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

Page 31: Langlebige architekturen

07.02.2016 //// Seite 43WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

Einfache, einheitliche Architektur

HierarchisierungModularität Musterkonsistenz

Page 32: Langlebige architekturen

07.02.2016 //// Seite 44WPS - Workplace Solutions GmbH

Muster auf Architekturebene: Vier Module

Modul

Grün

Modul

LilaModul

Orange

Modul

Blau

Page 33: Langlebige architekturen

07.02.2016 //// Seite 45WPS - Workplace Solutions GmbH

Musterkonsistenz: Was finden wir?

� Ist die Abbildung der Architektur in der Struktur des Codes zu erkennen?

Page 34: Langlebige architekturen

07.02.2016 //// Seite 46WPS - Workplace Solutions GmbH

Muster sinnvoll eingesetzt

Page 35: Langlebige architekturen

07.02.2016 //// Seite 47WPS - Workplace Solutions GmbH

Muster auf Klassenebene: Entwurfsmuster und Mustersprachen

User Interface

Domain

Application

Fachliches ModulFachliches Modul

Window

GUI

Model

ViewControl

ValueObject

Service

BusinessObject

Sch

ich

tun

g d

urc

h M

ust

er

Page 36: Langlebige architekturen

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

�������

�����������

Page 37: Langlebige architekturen

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

Page 38: Langlebige architekturen

07.02.2016 //// Seite 50WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

HierarchisierungModularität Musterkonsistenz

� Einheitliche und durchgängige Muster

� Zyklenfreiheit auf allen Ebenen

� Zuständigkeit� Kopplung� Größenverhältnisse� Schnittstellen

Page 39: Langlebige architekturen

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

Page 40: Langlebige architekturen

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

Page 41: Langlebige architekturen

07.02.2016 //// Seite 59WPS - Workplace Solutions GmbH

Vorgehen bei der Architekturanalyse und Verbesserung

Page 42: Langlebige architekturen

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ächlichesProblem?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

Page 43: Langlebige architekturen

Vielen Dank für Ihre Aufmerksamkeit!

www.langlebige-softwarearchitektur.de

Dr. Carola LilienthalMitglied der

Geschäftsleitung

[email protected]

www.wps.de

+49 170 184 77 11

Diplom-Informatikerin

@cairolali