der agile software architekt - berlin-dose.de · presentation domain persistence definition einer...
Post on 28-Sep-2020
2 Views
Preview:
TRANSCRIPT
Der agile Software Architekt
2013-09-25
Ingmar Kellner
Agil == Beweglich == Zur Handlung Fähig
Gegebene Versprechen schränken meine Agilität ein!
© 2013, hello2morrow GmbH 2
Source: http://de.wiktionary.org/wiki/agil
Architektur
Architecture is the fundamental organization of a system embodied
in its components, their relationships to each other, and to the
environment, and the principles guiding its design and evolution.
[IEEE 1471]
© 2013, hello2morrow GmbH 3
Unser Problem: Strukturelle Erosion
Immobility
Opacity
Rigidity
Fragility
Viscosity
Source: Robert C. Martin
© 2013, hello2morrow GmbH 4
Ursachen
§§ Laws of Software Entropy
Zeitdruck
Fehlende Qualitätsregeln
Unschöne Schnittstellen
Fehlende automatische Überprüfung von Regeln
„Wen kümmert‘s???“ – Mentalität
…
© 2013, hello2morrow GmbH 5
Vertrauen ist gut, Kontrolle ist besser…
© 2013, hello2morrow GmbH 6
“You can’t manage what you can’t control, and you can’t control what
you don’t measure” [Tom DeMarco]
7
Messung des Kopplungsgrades [John Lakos]
Depends upon = Die Anzahl von Komponenten, von der eine
Komponente direkt oder indirekt abhängig ist (+1 für sich selbst)
ACD (Average Component Dependency) = Die Summe aller
“depends upon” Werte geteilt durch die Anzahl von
Komponenten
6
3 3
1 1 1
ACD = 15/6 = 2,5
© 2013, hello2morrow GmbH
3
1 1
2 3 2
Dependency Inversion:
ACD = 12/6 = 2
6
6 6
1 6 1
Zyklen:
ACD = 26/6 = 4,33
Einfluss von Zyklen auf Agilität
© 2013, hello2morrow GmbH 8
Element A
Element B
Element C
Element A
Element B
Element C
1
2
3
Level
Beispiel einer Package-Zyklengruppe
Zyklengruppe von 46 Packages
© 2013, hello2morrow GmbH 9
Auflösen eines Package Zyklus
© 2013, hello2morrow GmbH 10
Dependency Inversion via Callback Interface
© 2013, hello2morrow GmbH 11
Schnittstellen, Schnittstellen, Schnittstellen, …
© 2013, hello2morrow GmbH 12
Geringer
Kopplungsgrad
Mehr Wieder-
verwendung
Aussagekräftige
Schnittstellen Einhaltung von
Schnittstellen
Höhere
Entwicklungs-
geschwindigkeit
Wirtschaftlicher
Erfolg
Realisierung von
Innovationen
© 2013, hello2morrow GmbH 13
Presentation
Domain
Persistence
Definition einer Architektur Blaupause
Schritt 1: Definition von technischen Abstraktionen
Schritt 2: Definition von fachlichen Abstraktionen
Con
tract
Custo
me
r
User
Co
mm
on
Schritt 3: Definition von Schnittstellen
Software System
Schritt 4: Definition von Abhängigkeiten
Schritt 5: Verbindung zum Source Code
Qualitätsbewusstsein
Kontrolle der Abhängigkeiten
Definition von Regeln
Namenskonventionen
Automatisierte Überprüfung
Werkzeuge
Infrastruktur (z.B. OSGi)
© 2013, hello2morrow GmbH 14
Architektur in der Agilen Entwicklung
© 2013, hello2morrow GmbH 15
Definiert die Architektur,
Metriken + Schwellenwerte,
identifiziert „hot spots“
Implementiert Use Cases
unter Berücksichtigung
der Architektur und
Richtlinien
Überprüft kontinuierlich die
Einhaltung der Architektur
und Richtlinien
Rolle “Architekt” Rolle “Entwickler”
Build Server
Positive Effekte
Barry M. Horowitz, DoD Study
© 2013, hello2morrow GmbH 16
Weitere Informationen
Whitepapers, DZone RefCard, etc. auf unserer Web-Seite:
http://www.hello2morrow.com
i.kellner@hello2morrow.com
Referenzen:
Applying UML And Patterns, Craig Larman, Prentice Hall 2000
Agile Software Development, Robert C. Martin, Prentice Hall 2003
Large-Scale C++ Software Design, John Lakos, Addison-Wesley 1996
Design Patterns, Gamma et al., Addison-Wesley 1994
Controlling Software Projects: Management, Measurement, and Estimates, Tom DeMarco,
Prentice Hall, 1982
The Mythtical Man Month, Frederick P. Brooks, Addison-Wesley, 1975, 1995
The Pragmatic Programmer: From Journeyman to Master, Andrew Hunt, David Thomas,
Addison-Wesley, 1999
© 2013, hello2morrow GmbH 17
top related