reclaim your architecture

28
RECLAIM YOUR ARCHITECTURE! Tools und Techniken um deine Software Architektur zurück zu erobern!

Upload: daniel-rosowski

Post on 15-Feb-2017

113 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Reclaim Your Architecture

RECLAIM YOURARCHITECTURE!

Tools und Techniken um deine Software Architektur zurückzu erobern!

Page 2: Reclaim Your Architecture

Begriffsde�nitionDie Feinde der ArchitekturUnsere Waffen (aka Tools und Techniken)Beispiele und Code

Page 3: Reclaim Your Architecture

Rational Uni�ed Process, 1999

“the highest level concept of a system in itsenvironment. The architecture of a software

system (at a given point in time) is itsorganization or structure of signi�cant

components interacting through interfaces,those components being composed ofsuccessively smaller components and

interfaces“

Page 4: Reclaim Your Architecture

Martin Fowler, 2003

“Stuff that's hard to change later“

Page 5: Reclaim Your Architecture

KNOW YOUR ENEMY!

Page 6: Reclaim Your Architecture

Technische Schuld

“doing things the quick and dirty way sets usup with a technical debt, which is similar to a

�nancial debt. Like a �nancial debt, thetechnical debt incurs interest payments,

which come in the form of the extra effort thatwe have to do in future development because

of the quick and dirty design choice.“

Bewußte Entscheidung!

Page 7: Reclaim Your Architecture

Entropie (phys.)

“Tendenz in der unbelebten Welt zu immergrößerer Unordnung.“

Unbewußte Entwicklung!

Page 8: Reclaim Your Architecture

SYMPTOME DER ENTROPIE

Page 9: Reclaim Your Architecture

SCHLECHT ZU WARTEN

Page 10: Reclaim Your Architecture

SCHWER ZU ERWEITERN

Page 11: Reclaim Your Architecture

MANGELNDE WIEDERVERWENDBARKEIT

Page 12: Reclaim Your Architecture

SCHWER ZU TESTEN

Page 13: Reclaim Your Architecture

ZUNEHMENDE UNVERSTÄNDLICHKEIT

Page 14: Reclaim Your Architecture

URSACHEN

Page 15: Reclaim Your Architecture

ZIRKULÄRE ABHÄNGIGKEITENZwischen Klasse, Packages, Modulen etc.

Page 16: Reclaim Your Architecture

FEHLENDE ABSTRAKTIONKlassen, Packages, Module haben sehr viele Abhängigkeiten

Page 17: Reclaim Your Architecture

KEINE ODER MANGELHAFTE UMSETZUNG VONARCHITEKTURREGELNUnerlaubte Abhängigkeiten

Page 18: Reclaim Your Architecture

NIEDRIGE KOHÄSION, HOHE KOPPLUNGKohäsion bezeichnet den Zusammenhalt innerhalb einer

Komponente, Kopplung die äußere Bindung

Page 19: Reclaim Your Architecture

CODE SMELLSZyklomatische Komplexität, Duplizierter Code, Große

Klassen / Methoden, ...

Page 20: Reclaim Your Architecture

FIGHT BACK!

Page 21: Reclaim Your Architecture

SCHRITT 1: BESTANDSAUFNAHME“If you can't measure it, you can't manage it.“

Page 22: Reclaim Your Architecture

Bestehende Architektur ermittelnDependency Structure Matrix (DSM) AnalyseZirkuläre Abhängigkeiten aufdeckenMetriken sammeln

Page 23: Reclaim Your Architecture
Page 24: Reclaim Your Architecture

SCHRITT 2: DEFINITION DER ZIELPARAMETER

Page 25: Reclaim Your Architecture

Zielarchitektur bestimmenZiel-Code-Coverage de�nierenRealistische Boundaries für Metriken de�nieren

Page 26: Reclaim Your Architecture

SCHRITT 3: ZIELPARAMETER KONTINUIERLICHÜBERPRÜFEN

Page 27: Reclaim Your Architecture

Degraph (oder JDepend)Jenkins + SonarQubeStructure101

Page 28: Reclaim Your Architecture

LINKS UND WEITERFÜHRENDE INFORMATIONENhttp://schauder.github.io/degraph/http://docs.sonarqube.org/display/HOME/Spaghetti+Designhttp://erik.doernenburg.com/2010/04/dependency-structure-matrix/http://www.ndepend.com/docs/dependency-structure-matrix-dsmhttp://structure101.com/resources/http://www.martinfowler.com/ieeeSoftware/coupling.pdfJava Application Architecture, Kirk Knoernschild