Zu Beginn eines Projekts stellen die Architekten eine Architektur-Blaupause für die Entwicklung bereit. Während der Implementierung weichen die Entwickler ungewollt mehr und mehr von diesen Vorgaben ab: Einerseits macht der Projektdruck Abweichungen notwendig, andererseits entstehen die Abweichungen ungewollt und unbemerkt.
Die Architektur des Systems erodiert und weicht immer mehr von der geplanten Nutzung des Frameworks ab. Die Komplexität nimmt zu und es werden Schritt für Schritt technische Schulden aufgebaut.
In diesem Vortrag berichte ich von meinen Erfahrungen der letzten zehn Jahre: Die Zuhörer erfahren, welche Fehler sie in ihren Softwareprojekten bei der Umsetzung der Architektur nicht machen sollten, welche Prinzipien Sie einhalten sollen, um ein langlebige Architekturen zu entwerfen, welche Tools helfen, technische Schulden aufzuspüren, und wie technische Schulden abgebaut werden können.
2. 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
3. 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
4. 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
5. 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
6. 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
9. 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
TechnischeSchichtung Fachliches
Modul C
10. 16.10.2015 //// Seite 10WPS - Workplace Solutions GmbH
Musterkonsistenz: Was finden wir?
Ist die Abbildung der Architektur in der Struktur des Codes zu erkennen?
11. 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
12. 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
13. 16.10.2015 //// Seite 13WPS - Workplace Solutions GmbH
Uneven Modules
80% des Sourcecodes
9 Komponenten = 17 Subsysteme
14. 16.10.2015 //// Seite 14WPS - Workplace Solutions GmbH
Muster in Architekturen: Entwurfsmuster und Mustersprachen
User Interface
Domain
Application
Fachliches Modul
Window
GUI
Model
View
C
o
n
t
r
o
l
ValueObject
Service
BusinessObject
SchichtungdurchMuster
15. 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
Processes
Service
16. 16.10.2015 //// Seite 16WPS - Workplace Solutions GmbH
Mustersprache
80% des Sourcecodes lässt sich den 23 Mustern zuordnen
4% Verletzungen in den Mustern
17. 16.10.2015 //// Seite 17WPS - Workplace Solutions GmbH
Grundregeln struktureller Einfachheit für Architektur
Architekturkomplexität
HierarchieModularität
Muster-
konsistenz
Architekturstil(e)
Einheitlich und
durchgängige
Zyklenfreiheit auf
allen Ebenen
Zuständigkeit
Kopplung
Größenverhältnisse
Schnittstellen
18. 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
19. 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
21. 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
22. 16.10.2015 //// Seite 22WPS - Workplace Solutions GmbH
Langlebige Software-Architekturen
Dr. Carola Lilienthal
Mitglied der Geschäftsleitung
cl@wps.de
www.wps.de
+49 170 184 77 11
Diplom-Informatikerin
@cairolali
23. 16.10.2015 //// Seite 23WPS - Workplace Solutions GmbH
Vielen Dank für Ihre Aufmerksamkeit. Fragen?