23
WPS - Workplace Solutions GmbH //// Hans-Henny-Jahnn-Weg 29 //// 22085 HAMBURG Dr. Carola Lilienthal [email protected] www.wps.de Langlebige Softwarearchitekturen

Langlebige Softwarearchitekturen - Der Umgang mit technischen Schulden

Embed Size (px)

Citation preview

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

Dr. Carola Lilienthal

[email protected]

www.wps.de

Langlebige Softwarearchitekturen

16.10.2015 //// Seite 2WPS - Workplace Solutions GmbH

Architekturziele für Langlebige Softwarearchitekturen

Architekturziel 1: Wartbarkeit

• Analysierbarkeit und Verständlichkeit

• schnelle Fehleranalyse

• schnelle Changes

• Reduktion von Komplexität

Architekturziel 2: Fachliche Flexibilität

• Geschäftsprozesse verschiedener Kunden unterstützen

• Anpassbarkeit an geänderte Anforderungen

• Baukastenprinzip

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

Technischen Schulden = Architektur-Erosion

Grad der

Wartbarkeit

Neue Funktionalität

pro Zeiteinheit

Korridor geringer

technischer Schulden

Refactorings

Regelmäßige Architektur-Erneuerung

Architektur-

Erosion

Wartung und Erweiterung

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

Maßnahmen gegen technische Schulden

Festlegen von verbindlichen Architekturzielen

Durchgängige Architekturprinzipien und Architekturstile

Automatisches Testen und Refactoring

Weiterbildung der Architekturen und Entwickler

Regelmäßige Architekturanalyse und -Erneuerung

16.10.2015 //// Seite 5WPS - 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

Directories

Packages

Namespaces

Subsysteme

Komponenten

Module

Schichten

16.10.2015 //// Seite 6WPS - Workplace Solutions GmbH

Erfahrungen und Erkenntnisse

Typische Eigenschaften der Architektur nach Größen und Sprache

Strukturelle Einfachheit und Einheitlichkeit ist der Schlüssel zum Erfolg

Ohne Architektur-Erneuerung sammeln sich technische Schulden an

Erkenntnisse

16.10.2015 //// Seite 7WPS - Workplace Solutions GmbH

Strukturelle Einfachheit der Architektur = Zeitgewinn!

Einfach, einheitliche

Architektur

HierarchieModularitätMuster-

konsistenz

16.10.2015 //// Seite 8WPS - Workplace Solutions GmbH

Strukturelle Einfachheit der Architektur = Zeitgewinn!

Einfach, einheitliche

Architektur

HierarchieModularitätMuster-

konsistenz

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

User Interface

Domain

Application

Muster in Architekturen: Schichten und Module

Fachliches

Modul B

Fachliches

Modul A

Fachliche Schichtung

Te

ch

nis

ch

e S

ch

ich

tun

gFachliches

Modul C

16.10.2015 //// Seite 10WPS - Workplace Solutions GmbH

Musterkonsistenz: Was finden wir?

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

16.10.2015 //// Seite 11WPS - 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

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

Fachliche Schichtung misslungen

Technische Schichtung Keine fachliche Schichtung

Wenige

Schichten-

verletzungen

Fast alle 90

fachlichen

Komponenten

brauchen sich

gegenseitig

16.10.2015 //// Seite 13WPS - Workplace Solutions GmbH

Uneven Modules

80% des Sourcecodes

9 Komponenten = 17 Subsysteme

16.10.2015 //// Seite 14WPS - Workplace Solutions GmbH

Muster in Architekturen: 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

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

Mustersprache

80% des Sourcecodes lässt sich den Mustern zuordnen

0,1% Verletzungen in den Mustern

Eventer

ProcessesService

16.10.2015 //// Seite 16WPS - Workplace Solutions GmbH

Mustersprache

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

4% Verletzungen in den Mustern

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

Grundregeln struktureller Einfachheit für Architektur

Architekturkomplexität

HierarchieModularitätMuster-

konsistenz

Architekturstil(e)

Einheitlich und

durchgängige

Zyklenfreiheit auf

allen Ebenen

Zuständigkeit

Kopplung

Größenverhältnisse

Schnittstellen

16.10.2015 //// Seite 18WPS - 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

16.10.2015 //// Seite 19WPS - 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

• Software-

Diagnostics

16.10.2015 //// Seite 20WPS - Workplace Solutions GmbH

Phase 1: Aufräumen

Schrittweise Weiterentwicklung der Architektur

Phase 2: Verbessern Phase 3: Erhalten

Phase 1: AufräumenAbgleich Soll-/Ist-Architektur

fehlende Architektur-

konzepte ergänzen

Phase 2: VerbessernArchitektur diskutieren

und verbessern

Architekturregeln

festlegen

Phase 3: ErhaltenIm Architekturkorridor

bleiben

Langlebigkeit fördern

Initialer

Workshop

Verletzungen

beheben

Strukturen einziehen

Analyse-

Workshop

Anpassungen an

neue Architektur-

Regeln

Nach-

sorge

kleinere

Reparaturen

16.10.2015 //// Seite 21WPS - 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

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

Langlebige Software-Architekturen

Dr. Carola Lilienthal

Mitglied der Geschäftsleitung

[email protected]

www.wps.de

+49 170 184 77 11

Diplom-Informatikerin

@cairolali

16.10.2015 //// Seite 23WPS - Workplace Solutions GmbH

Vielen Dank für Ihre Aufmerksamkeit. Fragen?