29
17.01.2017 1 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

Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

1

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

Page 2: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

2

„Business-Software

die Spaß macht“

Page 3: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

3

Page 4: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

4

„Business-Software

die Spaß macht“

Page 6: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

6

Page 7: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

7

Page 8: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

8

17.01.2017 //// Seite 21WPS - Workplace Solutions GmbH

Dr. Carola Lilienthal

Geschäftsführerin

[email protected]

www.wps.de

+49 40 229 499-0

+49 40 229 499-299

+49 170 184 77 11

Diplom-Informatikerin

@cairolali

a @cairolali

[email protected]

www.llsa.de

Page 9: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

9

17.01.2017 //// Seite 22WPS - Workplace Solutions GmbH

Expertise zu Architekturanalyse

17.01.2017 //// Seite 24WPS - Workplace Solutions GmbH

Page 10: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

10

17.01.2017 //// Seite 29WPS - 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

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

Architekturziele für Langlebigkeit

Architekturziel 1: Wartbarkeit

• schnelle Fehleranalyse

• schnelle Anpassungen

• Handlungssicherheit

• Stabilität

Architekturziel 2: Flexibilität

• Varianten von Geschäftsprozessen

• Geänderte Anforderungen

• Serviceorientierung und Skalierbarkeit

• Baukastenprinzip

Page 11: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

11

17.01.2017 //// Seite 32WPS - 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

17.01.2017 //// Seite 33WPS - Workplace Solutions GmbH

Mob Architecting – Architekturanalyse im Team

Page 12: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

12

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

70%

20%

10%

Code verstehen

Problem lösen

Code schreiben

Womit verbringen wir unsere Zeit? - revisited

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

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von

HierarchienChunking

Aufbau von

Schemata

Page 13: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

13

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

17.01.2017 //// Seite 40WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von

HierarchienChunking

Aufbau von

Schemata

Einfache, einheitliche

Architektur

Modularität

Page 14: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

14

17.01.2017 //// Seite 42WPS - Workplace Solutions GmbH

Modularität

Hohe Kohäsion und

lose Kopplung

Separation of Concerns

Single Responsibility Principle

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

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von

HierarchienChunking

Aufbau von

Schemata

Einfache, einheitliche

Architektur

Modularität

Page 15: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

15

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

Hierarchien

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

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von

HierarchienChunking

Aufbau von

Schemata

Einfache, einheitliche

Architektur

HierarchisierungModularität

Page 16: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

16

17.01.2017 //// Seite 51WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von

HierarchienChunking

Aufbau von

Schemata

Einfache, einheitliche

Architektur

HierarchisierungModularität Musterkonsistenz

17.01.2017 //// Seite 52WPS - Workplace Solutions GmbH

User Interface

Domain

Application

Hierarchien in Architekturebene: Schichten und Module

Fachliches

Modul B

Fachliches

Modul A

Fachliche Schichtung

Tech

nis

ch

e S

ch

ich

tun

g

Fachliches

Modul C

Page 17: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

17

17.01.2017 //// Seite 53WPS - 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

17.01.2017 //// Seite 54WPS - Workplace Solutions GmbH

Fachliche Schichtung misslungen

Technische Schichtung Keine fachliche Schichtung

Wenige

Schichten-

verletzungen

Fast alle 90

fachlichen

Komponenten

brauchen sich

gegenseitig

Page 18: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

18

17.01.2017 //// Seite 55WPS - Workplace Solutions GmbH

Hierarchien auf Klassenebene

Auswirkung auf:

Wartbarkeit

Austauschbarkeit

Testbarkeit

Modularität

Musterkonsistenz

Hierarchien auf allen Ebenen einführen

17.01.2017 //// Seite 60WPS - Workplace Solutions GmbH

119 Klassen aus 4 Komponenten

+ 28 weitere Klassen

Page 19: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

19

17.01.2017 //// Seite 61WPS - Workplace Solutions GmbH

Große Zyklen sichtbar machen

327 Klassen aus 8 Komponenten

brauchen sich gegenseitig

17.01.2017 //// Seite 62WPS - Workplace Solutions GmbH

Page 20: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

20

17.01.2017 //// Seite 63WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von

HierarchienChunking

Aufbau von

Schemata

Einfache, einheitliche

Architektur

HierarchisierungModularität Musterkonsistenz

17.01.2017 //// Seite 64WPS - Workplace Solutions GmbH

Uneven Modules

9 Komponenten = 17 Subsysteme

Page 21: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

21

17.01.2017 //// Seite 65WPS - 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

17.01.2017 //// Seite 66WPS - Workplace Solutions GmbH

128 Build Units mit Anzahl Klassen

3 Mio von 9 Mio LOC

1/3 des Systems

Page 22: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

22

17.01.2017 //// Seite 67WPS - Workplace Solutions GmbH

5.270 Klassen in einem Zyklus in einer BuildUnit

17.01.2017 //// Seite 68WPS - 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 23: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

23

17.01.2017 //// Seite 70WPS - Workplace Solutions GmbH

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von

HierarchienChunking

Aufbau von

Schemata

Einfache, einheitliche

Architektur

HierarchisierungModularität Musterkonsistenz

17.01.2017 //// Seite 71WPS - Workplace Solutions GmbH

Muster auf Architekturebene: Vier Module

Modul

GrünModul

LilaModul

OrangeModul

Blau

Page 24: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

24

17.01.2017 //// Seite 72WPS - Workplace Solutions GmbH

Musterkonsistenz: Was finden wir?

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

17.01.2017 //// Seite 73WPS - Workplace Solutions GmbH

Muster sinnvoll eingesetzt

Page 25: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

25

17.01.2017 //// Seite 74WPS - Workplace Solutions GmbH

Muster auf Klassenebene: Entwurfsmuster und Mustersprachen

User Interface

Domain

Application

Fachliches Modul

Window

GUI

Model

ViewControl

ValueObject

Service

BusinessObject

Sch

ich

tun

g d

urc

h M

uste

r

17.01.2017 //// Seite 75WPS - Workplace Solutions GmbH

Gute umgesetzte Mustersprache

90% des Sourcecodes lässt sich den Mustern zuordnen

0,1% Verletzungen in den Mustern

Eventer

ProcessesService

Page 26: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

26

17.01.2017 //// Seite 77WPS - Workplace Solutions GmbH

Entdeckung einer Mustersprache

80% des Sourcecodes lässt sich den 23 Mustern zuordnen

4% Verletzungen in den Mustern

17.01.2017 //// Seite 78WPS - Workplace Solutions GmbH

Fehlende und unbekannte Muster

Fachliches Modul

Model

View

Control

ValueObject

Service

BusinessObject

SelectionSupporter??

?

Page 27: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

27

17.01.2017 //// Seite 79WPS - 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

17.01.2017 //// Seite 80WPS - 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 28: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

28

17.01.2017 //// Seite 81WPS - 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

17.01.2017 //// Seite 83WPS - Workplace Solutions GmbH

Qualität von Softwarearchitekturen- Java, C#, C++, ABAP, PHP -

Page 29: Langlebige Softwarearchitekturen - technische Schulden ...st.inf.tu-dresden.de › files › teaching › ws16 › ring › Langlebige SWA.pdf · Langlebige Softwarearchitekturen

17.01.2017

29

17.01.2017 //// Seite 85WPS - Workplace Solutions GmbH

Dr. Carola Lilienthal

Geschäftsführerin

[email protected]

www.wps.de

+49 40 229 499-0

+49 40 229 499-299

+49 170 184 77 11

Diplom-Informatikerin

@cairolali

a @cairolali

[email protected]

www.llsa.de

Schulungen zu

Architektur und Domain-Driven Design

wps.de/schulung