Technische Schulden in Architekturen erkennen und beseitigen

40
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Technische Schulden in Architekturen erkennen und beseitigen Dr. Carola Lilienthal [email protected], @cairolali www.wps.de

Transcript of Technische Schulden in Architekturen erkennen und beseitigen

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

Technische Schulden in Architekturen erkennen und beseitigen

Dr. Carola Lilienthal

[email protected], @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

HierarchienChunking

Aufbau von

Schemata

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

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von

HierarchienChunking

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

HierarchienChunking

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

HierarchienChunking

Aufbau von

Schemata

Einfache, einheitliche

Architektur

HierarchisierungModularität

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von

HierarchienChunking

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

Te

ch

nis

ch

e S

ch

ich

tun

gFachliches

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

HierarchienChunking

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

HierarchienChunking

Aufbau von

Schemata

Einfache, einheitliche

Architektur

HierarchisierungModularität Musterkonsistenz

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

Muster auf Architekturebene: Vier Module

Modul

GrünModul

LilaModul

OrangeModul

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

ViewControl

ValueObject

Service

BusinessObject

Sc

hic

htu

ng

du

rch

Mu

ste

r

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

ProcessesService

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

HierarchienChunking

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 LilienthalMitglied der

Geschäftsleitung

[email protected]

www.wps.de

+49 170 184 77 11

Diplom-Informatikerin

@cairolali