agile architektur - oio · 2020. 8. 27. · agiles manifest = individuen und interaktionen mehr als...
Post on 05-Sep-2020
1 Views
Preview:
TRANSCRIPT
1
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
www.oio.deinfo@oio.deVersion:
Agile Architektur
1.0
Agile Architektur© Orientation in Objects GmbH
Abstract
2
Eine gut geplante Softwarearchitektur stellt das Grundgerüst jederwartbaren Software dar. Das steht in einem scheinbaren Widerspruch zuagilen Softwareprozessen, bei denen langfristige Planungenweitestgehend vermieden werden.
Die Session zeigt anhand zahlreicher konkreter Beispiele, wie man dieErstellung einer Softwarearchitektur in einzelne Aufgabenpaketeunterteilt, dokumentiert und regelmäßig durch Reviews undautomatisierte Architekturtests verifiziert. Das Ziel ist es, auch in einemiterativen Prozess eine langfristig tragfähige Architektur entstehen zulassen.
2
Agile Architektur© Orientation in Objects GmbH
Ihre Sprecher
Trainer, Berater, Entwickler
3
Thorsten Maier, Falk Sippach
@ThorstenMaier @sippsack
Agile Architektur© Orientation in Objects GmbH 4
Agiles Manifest=
Individuen und Interaktionen mehr als Prozesse und Werkzeuge
Funktionierende Software mehr als umfassende Dokumentation
Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
Reagieren auf Veränderung mehr als das Befolgen eines Plans
3
Agile Architektur© Orientation in Objects GmbH 5
Architektur
"Strukturen eines Softwaresystems:
Softwareteile, die Beziehungen zwischen
diesen und die Eigenschaften der
Softwareteile und ihrer Beziehungen"
(Paul Clements)
Agile Architektur© Orientation in Objects GmbH 6
Architektur in eigenen Worten:
fundamentale Strukturen,
Konzepte,
Entscheidungen
und Lösungsansätze
... die man nicht mehr leicht los bekommt!
4
Agile Architektur© Orientation in Objects GmbH 7
Agile Architektur
Widerspruch?
Agile Architektur© Orientation in Objects GmbH 8
Unsere These
Eine gute Architektur kann iterativ in kleinen
Aufgabenpaketen entstehen.
5
Agile Architektur© Orientation in Objects GmbH 9
Agiles Manifest
Die BESTEN Architekturen […] entstehen
durch selbstorganisierte Teams.
(11. Prinzip der agilen Softwareentwicklung)
Agile Architektur© Orientation in Objects GmbH 10
6
Agile Architektur© Orientation in Objects GmbH 11
Herausforderung in einem agilen Prozess
Architekturarbeit aufteilen
Darum geht es heute
15 konkrete Arbeitspakete
Agile Architektur© Orientation in Objects GmbH 12
ArchitekturArchitekturArchitekturArchitektur
entwerfenentwerfenentwerfenentwerfen
ArchitekturArchitekturArchitekturArchitektur
umsetzenumsetzenumsetzenumsetzen
automatischautomatischautomatischautomatisch
prüfenprüfenprüfenprüfen
Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur
verbessernverbessernverbessernverbessern
7
Agile Architektur© Orientation in Objects GmbH
1
13
Nicht-funktionale
Anforderungen konkretisieren
� Software-Architektur
Agile Architektur© Orientation in Objects GmbH 14
„Benutzerfreundlich“
„Schnell“
„Wartbar“
8
Agile Architektur© Orientation in Objects GmbH 15
Nicht-funktionale Anforderungen
müssen prüfbar sein
Agile Architektur© Orientation in Objects GmbH 16
„Benutzerfreundlich“
=
Nachbearbeitung eines Inkasso-Anrufes
darf maximal 30 Sekunden dauern und muss
nach 3 Klicks abgeschlossen sein.
9
Agile Architektur© Orientation in Objects GmbH 17
„Schnell“
=
Synchrone Anfragen < 1000ms
Benachrichtigung bei asynchronen Anfragen
Falls Anfrage > 200ms � Ladeanimation
Agile Architektur© Orientation in Objects GmbH 18
„Wartbar“
=
Ein neues Krankenversicherungsprodukt lässt
sich mit einem durchschnittlichen Aufwand von
28 Personentagen in die Anwendung integrieren.
10
Agile Architektur© Orientation in Objects GmbH
Leitung Entwicklung
19
Marketing
Leitung WartungKunde
Endbenutzer
Stakeholder
bewusst machen
2
Agile Architektur© Orientation in Objects GmbH
Leitung Entwicklung
20
Marketing
Leitung WartungKunde
Endbenutzer
Wartbarkeit
Geringe Kosten,
geringe Fluktuation
Geringe Kosten,
pünktliche Lieferung
Neue Feature
Time-to-market
Schnell,
benutzerfreundlich
Agiles Team
11
Agile Architektur© Orientation in Objects GmbH 21
Bausteine und deren
Beziehungen entwerfen
3
Agile Architektur© Orientation in Objects GmbH 22
Fachliche
Spezifikation
Randbedingungen
Qualitätsziele
Architektur
Bau-
steineSpezial-
konzepte
Techno-
logien
Lösungsstrategie
Risi-
ken
12
Agile Architektur© Orientation in Objects GmbH 23
Architektur bewerten
4
Agile Architektur© Orientation in Objects GmbH 24
Theorie:
Architekturen früh vergleichbar
Praxis:
Analyse wird während Schadensbegrenzung
spät im Projekt durchgeführt
13
Agile Architektur© Orientation in Objects GmbH 25
Szenariobasierte
Architekturbewertung
SAAM – Software architecture analysis method
ATAM – Architecture tradeoff analysis method
ACDM – Architecture-centric design method
Agile Architektur© Orientation in Objects GmbH 26
(1) Szenarien erheben und priorisieren
(2) Erstellen der Architektur(en)
(3) Bewertung aus dem Blickwinkel der Szenarien
14
Agile Architektur© Orientation in Objects GmbH 27
Architektur 1 Architektur 2
Neues Krankenversicherungsprodukt
DHL statt Hermes
…
Ergebnis
Komponenten Aufwand Komponenten Aufwand
3 28d 2 20d
- - 4 12d
3 28d 6 32d
Stakeholder
Agile Architektur© Orientation in Objects GmbH 28
Architektur dokumentieren
5
15
Agile Architektur© Orientation in Objects GmbH 29
Ansicht
Schnitt
Grundriss
Agile Architektur© Orientation in Objects GmbH 30
Kontextsichten
Laufzeitsichten Bausteinsichten Verteilungssichten
16
Agile Architektur© Orientation in Objects GmbH 31
Lev
el
0Le
ve
l 1
Lev
el
2
Nicht zu detailliert,
sondern pragmatisch
und effizient!
Agile Architektur© Orientation in Objects GmbH 32
Templates für:
Microsoft Word
Confluence
Markdown, AsciiDoc
Latex, DocBook
HTML, EPUB
Textile
17
Agile Architektur© Orientation in Objects GmbH 33
Continuous
Documentation
Documentation
as Code
REPO
Agile Architektur© Orientation in Objects GmbH 34
HTML,
PDF, …
Leser
EntwicklerDokumentation als
Plain Text
18
Agile Architektur© Orientation in Objects GmbH 35
Architektur kommunizieren
6
Agile Architektur© Orientation in Objects GmbH 36
"Man glaubt nur so lange, dass
ein Entwurf perfekt ist, bis man ihn
jemand anderem gezeigt hat."
(Software Architecture Documentation in Practice von Bachmann, Bass)
19
Agile Architektur© Orientation in Objects GmbH 37
vs.
ԪԬ
$€!!!!
?
Agile Architektur© Orientation in Objects GmbH 38
Wenn man die Architektur
nicht erklären kann,
ist sie zu kompliziert!
20
Agile Architektur© Orientation in Objects GmbH 39
Agile Architektur© Orientation in Objects GmbH 40
ArchitekturArchitekturArchitekturArchitektur
entwerfenentwerfenentwerfenentwerfen
ArchitekturArchitekturArchitekturArchitektur
umsetzenumsetzenumsetzenumsetzen
automatischautomatischautomatischautomatisch
prüfenprüfenprüfenprüfen
Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur
verbessernverbessernverbessernverbessern
21
Agile Architektur© Orientation in Objects GmbH 41
Abstraktionen entwerfen
7
Agile Architektur© Orientation in Objects GmbH 42
UserController
22
Agile Architektur© Orientation in Objects GmbH 43
CRUDController
UserController …
Agile Architektur© Orientation in Objects GmbH 44
CRUDController
UserController
ReadController
…
…
23
Agile Architektur© Orientation in Objects GmbH 45
CRUDController
UserController
ReadController
CRUDButNotDeleteController
…
…
Agile Architektur© Orientation in Objects GmbH 46
UserCreateController
CreateController
UserReadController
ReadController
UserUpdateController
UpdateController
24
Agile Architektur© Orientation in Objects GmbH 47
Querschnittsaspekte behandeln
8
Agile Architektur© Orientation in Objects GmbH 48
Logging
Security
Transaktionen
Monitoring
8a
8b
8c
8dSpezialkonzept
25
Agile Architektur© Orientation in Objects GmbH 49
Dokumentation generieren
9
Agile Architektur© Orientation in Objects GmbH
interface DemoService {String foobar();
}
class DemoServiceImpl implements DemoService {@Overridepublic String foobar() {
return "demo";}
}
enum State {NEW, OPEN, APPROVED, IN_PROGRESS, FIXED
}
50
PlantUML +
AsciiDoc
generieren
Quellcode
DB-Schema
UML-Modell
Konfiguration
@startuml
interface DemoServiceDemoService <|-- DemoServiceImpl
enum State {NEWOPENAPPROVEDIN_PROGRESSFIXED
}
@enduml
# Werte von State
* NEW* OPEN* APPROVED* IN_PROGRESS* FIXED
26
Agile Architektur© Orientation in Objects GmbH 51
Generate
automatisiert
validieren!
Agile Architektur© Orientation in Objects GmbH 52
ArchitekturArchitekturArchitekturArchitektur
entwerfenentwerfenentwerfenentwerfen
ArchitekturArchitekturArchitekturArchitektur
umsetzenumsetzenumsetzenumsetzen
automatischautomatischautomatischautomatisch
prüfenprüfenprüfenprüfen
Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur
verbessernverbessernverbessernverbessern
27
Agile Architektur© Orientation in Objects GmbH 53
Automatisierte
Architekturchecks
10
Agile Architektur© Orientation in Objects GmbH 54
28
Agile Architektur© Orientation in Objects GmbH 55
Controller
ServiceImpl
Agile Architektur© Orientation in Objects GmbH 56
https://github.com/thorstenmaier/architecture-layer-check/
Controller
ServiceImpl
DaoImpl
29
Agile Architektur© Orientation in Objects GmbH 57
Agile Architektur© Orientation in Objects GmbH 58
(Service) - [DEPENDS_ON] -> (Controller)
30
Agile Architektur© Orientation in Objects GmbH 59
MATCH (s:Service)-[:DEPENDS_ON]->(c:Controller) return s,c
Agile Architektur© Orientation in Objects GmbH 60
31
Agile Architektur© Orientation in Objects GmbH 61
Dokumentation ausführen
11
Agile Architektur© Orientation in Objects GmbH 62
32
Agile Architektur© Orientation in Objects GmbH 63
Agile Architektur© Orientation in Objects GmbH 64
Living Documentation
33
Agile Architektur© Orientation in Objects GmbH 65
Architektur-
definition
in PlantUML
Generierte
Cypher-
Regel
[[architecture:DefinedDependencies][plantuml,role=concept]----[artifactId:xo.impl] as impl <<:Maven:Project>>[artifactId:xo.api] as api <<:Maven:Project>>[artifactId:xo.spi] as spi <<:Maven:Project>>
impl -> api : Defines Dependencyimpl -> spi : Defines Dependencyspi -> api : Defines Dependency----
[[architecture:UndefinedDependencies[source,cypher,role=constraint,requiresConceptsThere must not be dependencies between Maven project which have not been defined.----MATCH(p1:Maven:Project)-[:CREATES]-(p2:Maven:Project)-[:CREATES]-(t2)-[:DEPENDS_ON]->(t1)
WHERE NOT(p1)-[:DEFINES_DEPENDENCY
RETURN*
----
Agile Architektur© Orientation in Objects GmbH 66
Code Reviews
12
34
Agile Architektur© Orientation in Objects GmbH 67
Kennen Sie das?
„Das ist historisch
gewachsen.“
Agile Architektur© Orientation in Objects GmbH 68
…noch ein Klassiker
„Thomas ist leider gerade
im Urlaub“
35
Agile Architektur© Orientation in Objects GmbH 69
Neben den automatisierten Checks benötigen
wir auch menschliche Checks
Code-Reviewsals kontinuierliche QS-Maßnahme
Agile Architektur© Orientation in Objects GmbH 70
Bugs finden
36
Agile Architektur© Orientation in Objects GmbH 71
Wissen
Agile Architektur© Orientation in Objects GmbH 72
100 105
15
0
20
40
60
80
100
120
ohne Code-Review mit Code-Review
En
twic
klu
ng
sko
ste
n i
n %
Code-Review
Entwicklung
37
Agile Architektur© Orientation in Objects GmbH 73
ohne Code-Review mit Code-Review
Bugfixing
Code-Review
EntwicklungWissen
Agile Architektur© Orientation in Objects GmbH 74
Jeder mit jedem!
38
Agile Architektur© Orientation in Objects GmbH 75
200 – 400 Zeilen
1 – 2 Stunden
http://support.smartbear.com/resources/cc/book/code-review-cisco-case-study.pdf
Dauer des Reviews
Gefundene
Fehler
Agile Architektur© Orientation in Objects GmbH 76
39
Agile Architektur© Orientation in Objects GmbH 77
ArchitekturArchitekturArchitekturArchitektur
entwerfenentwerfenentwerfenentwerfen
ArchitekturArchitekturArchitekturArchitektur
umsetzenumsetzenumsetzenumsetzen
automatischautomatischautomatischautomatisch
prüfenprüfenprüfenprüfen
Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur
verbessernverbessernverbessernverbessern
Agile Architektur© Orientation in Objects GmbH 78
Retrospektive
durchführen
13
40
Agile Architektur© Orientation in Objects GmbH 79
Entwicklungsteam Management KundeArchitektur
Agile Architektur© Orientation in Objects GmbH 80
Verbesserungen einplanen
14
41
Agile Architektur© Orientation in Objects GmbH 81
Arbeitspakete
aus Retrospektive
Agile Architektur© Orientation in Objects GmbH 82
Verbesserungen
vorantreiben
15
42
Agile Architektur© Orientation in Objects GmbH 83
Something that's
everybody's responsibility
is no one's responsibility.
Agile Architektur© Orientation in Objects GmbH 84
Mitentwickelnder
Kümmerer/
Koordinator
43
Agile Architektur© Orientation in Objects GmbH 85
ArchitekturArchitekturArchitekturArchitektur
entwerfenentwerfenentwerfenentwerfen
ArchitekturArchitekturArchitekturArchitektur
umsetzenumsetzenumsetzenumsetzen
automatischautomatischautomatischautomatisch
prüfenprüfenprüfenprüfen
Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur
verbessernverbessernverbessernverbessern
Nicht-funktionale
Anforderungen
konkretisieren
Stakeholder
bewusst machen
Bausteine und deren
Beziehungen
entwerfen Bewerten
Dokumentieren
Kommunizieren
Querschnittsaspekte
behandeln
Automatisierte
Architekturtests
Code
Reviews
Retrospektive
durchführen
Verbesserungen
einplanen
Verbesserungen
vorantreiben
Abstraktionen
entwerfen
Dokumentation
generieren
Dokumentation
ausführen
Agile Architektur© Orientation in Objects GmbH 86
ArchitekturArchitekturArchitekturArchitektur
entwerfenentwerfenentwerfenentwerfen
ArchitekturArchitekturArchitekturArchitektur
umsetzenumsetzenumsetzenumsetzen
automatischautomatischautomatischautomatisch
prüfenprüfenprüfenprüfen
Prozess & ArchitekturProzess & ArchitekturProzess & ArchitekturProzess & Architektur
verbessernverbessernverbessernverbessern
Nicht-funktionale
Anforderungen
konkretisieren
Stakeholder
bewusst machen
Bausteine und deren
Beziehungen
entwerfen Bewerten
Dokumentieren
Kommunizieren
Querschnittsaspekte
behandeln
Automatisierte
Architekturtests
Code
Reviews
Retrospektive
durchführen
Verbesserungen
einplanen
Verbesserungen
vorantreiben
Abstraktionen
entwerfen
Dokumentation
generieren
Dokumentation
ausführen
Thorsten
ThorstenThorsten
Thorsten
Thorsten
Thorsten
Thorsten
Thorsten
Falk
Falk
Falk
Falk
Falk
Falk
Falk
44
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
www.oio.deinfo@oio.de
Vielen Dank für Ihre Aufmerksamkeit!
top related