reclaim your architecture

Download Reclaim Your Architecture

Post on 15-Feb-2017

109 views

Category:

Software

1 download

Embed Size (px)

TRANSCRIPT

  • RECLAIM YOURARCHITECTURE!

    Tools und Techniken um deine Software Architektur zurckzu erobern!

  • BegriffsdenitionDie Feinde der ArchitekturUnsere Waffen (aka Tools und Techniken)Beispiele und Code

  • Rational Unied 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 signicant

    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.

    Bewute Entscheidung!

  • Entropie (phys.)

    Tendenz in der unbelebten Welt zu immergrerer Unordnung.

    Unbewute Entwicklung!

  • SYMPTOME DER ENTROPIE

  • SCHLECHT ZU WARTEN

  • SCHWER ZU ERWEITERN

  • MANGELNDE WIEDERVERWENDBARKEIT

  • SCHWER ZU TESTEN

  • ZUNEHMENDE UNVERSTNDLICHKEIT

  • URSACHEN

  • ZIRKULRE ABHNGIGKEITENZwischen Klasse, Packages, Modulen etc.

  • FEHLENDE ABSTRAKTIONKlassen, Packages, Module haben sehr viele Abhngigkeiten

  • KEINE ODER MANGELHAFTE UMSETZUNG VONARCHITEKTURREGELNUnerlaubte Abhngigkeiten

  • NIEDRIGE KOHSION, HOHE KOPPLUNGKohsion bezeichnet den Zusammenhalt innerhalb einer

    Komponente, Kopplung die uere Bindung

  • CODE SMELLSZyklomatische Komplexitt, Duplizierter Code, Groe

    Klassen / Methoden, ...

  • FIGHT BACK!

  • SCHRITT 1: BESTANDSAUFNAHMEIf you can't measure it, you can't manage it.

  • Bestehende Architektur ermittelnDependency Structure Matrix (DSM) AnalyseZirkulre Abhngigkeiten aufdeckenMetriken sammeln

  • SCHRITT 2: DEFINITION DER ZIELPARAMETER

  • Zielarchitektur bestimmenZiel-Code-Coverage denierenRealistische Boundaries fr Metriken denieren

  • SCHRITT 3: ZIELPARAMETER KONTINUIERLICHBERPRFEN

  • Degraph (oder JDepend)Jenkins + SonarQubeStructure101

  • LINKS UND WEITERFHRENDE 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