Reclaim Your Architecture
-
Upload
daniel-rosowski -
Category
Software
-
view
112 -
download
2
Transcript of Reclaim Your Architecture
RECLAIM YOURARCHITECTURE!
Tools und Techniken um deine Software Architektur zurückzu erobern!
Begriffsde�nitionDie Feinde der ArchitekturUnsere Waffen (aka Tools und Techniken)Beispiele und Code
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“
Martin Fowler, 2003
“Stuff that's hard to change later“
KNOW YOUR ENEMY!
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!
Entropie (phys.)
“Tendenz in der unbelebten Welt zu immergrößerer Unordnung.“
Unbewußte Entwicklung!
SYMPTOME DER ENTROPIE
SCHLECHT ZU WARTEN
SCHWER ZU ERWEITERN
MANGELNDE WIEDERVERWENDBARKEIT
SCHWER ZU TESTEN
ZUNEHMENDE UNVERSTÄNDLICHKEIT
URSACHEN
ZIRKULÄRE ABHÄNGIGKEITENZwischen Klasse, Packages, Modulen etc.
FEHLENDE ABSTRAKTIONKlassen, Packages, Module haben sehr viele Abhängigkeiten
KEINE ODER MANGELHAFTE UMSETZUNG VONARCHITEKTURREGELNUnerlaubte Abhängigkeiten
NIEDRIGE KOHÄSION, HOHE KOPPLUNGKohäsion bezeichnet den Zusammenhalt innerhalb einer
Komponente, Kopplung die äußere Bindung
CODE SMELLSZyklomatische Komplexität, Duplizierter Code, Große
Klassen / Methoden, ...
FIGHT BACK!
SCHRITT 1: BESTANDSAUFNAHME“If you can't measure it, you can't manage it.“
Bestehende Architektur ermittelnDependency Structure Matrix (DSM) AnalyseZirkuläre Abhängigkeiten aufdeckenMetriken sammeln
SCHRITT 2: DEFINITION DER ZIELPARAMETER
Zielarchitektur bestimmenZiel-Code-Coverage de�nierenRealistische Boundaries für Metriken de�nieren
SCHRITT 3: ZIELPARAMETER KONTINUIERLICHÜBERPRÜFEN
Degraph (oder JDepend)Jenkins + SonarQubeStructure101
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