Langlebige architekturen

43
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

Transcript of 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

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!

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

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

Technische Schulden ≠ Langlebigkeit

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

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

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

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

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

70%

20%

10%

Code verstehen

Problem lösen

Code schreiben

Womit verbringen wir unsere Zeit?

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

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

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

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

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

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

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

Hierarchien

� �

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

Einfache, einheitliche Architektur

HierarchisierungModularität

Komplexe Strukturen verstehen = Zeitgewinn!

Kognitive Mechanismen

Bildung von Hierarchien

ChunkingAufbau von Schemata

Einfache, einheitliche Architektur

HierarchisierungModularität Musterkonsistenz

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

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

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

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

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

Einfache Zyklengruppe

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

Schwierige Zyklengruppe

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

119 Klassen aus 4 Komponenten+ 28 weitere Klassen

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

Große Zyklen sichtbar machen

327 Klassen aus 8 Komponentenbrauchen sich gegenseitig

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

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

Uneven Modules

9 Komponenten = 17 Subsysteme

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

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“

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

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

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

Muster auf Architekturebene: Vier Module

Modul

Grün

Modul

LilaModul

Orange

Modul

Blau

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

Musterkonsistenz: Was finden wir?

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

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

Muster sinnvoll eingesetzt

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

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

�������

�����������

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

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

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

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

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

Vorgehen bei der Architekturanalyse und Verbesserung

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

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