SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für...

73
the essence for your business. SOFTWARE-ARCHITEKTUREN IN DER PRAXIS Benjamin Schmid Stefan Becker Koblenz, 27.06.2017

Transcript of SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für...

Page 1: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

the essence for your business.

SOFTWARE-ARCHITEKTUREN IN DER PRAXIS

Benjamin Schmid Stefan Becker

Koblenz, 27.06.2017

Page 2: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

2

Einleitung

Architektur-Beschreibung

Architekturmuster

Architektur in der Praxis

Wege zu einer guten Architektur

Page 3: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

3

eXXcellent solutions

Die Referenten

Stefan Becker Software Engineer [email protected]

Benjamin Schmid Technology Advisor & Head of Division Darmstadt @bentolor

[email protected]

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 4: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

4

eXXcellent solutions

Wer sind wir?

4 Standorte

130 Mitarbeiter

16,0 Mio € Umsatz p.a.

DIN EN ISO 9001:2015 / 14001:2015

Darmstadt

Stuttgart

Ulm München

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 5: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Individuelle Software-Lösungen

Agil / Festpreis / Time & Material

„Kernprozesse von Unternehmen“

Java, Web & .NET, SAP HANA & Salesforce

5

Beratung & Consulting rund um IT-Lösungen

Business & Projekt Management

Technologie & Methodik

eXXcellent solutions

Was machen wir?

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 6: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Eine Softwarearchitektur ist eine Zerlegung eines

Systems in Bausteine und deren Beziehungen

zueinander und zur Umgebung sowie den

Richtlinien, die den Entwurf und die Evolution des

Systems bestimmen.

Grundlagen der Softwaretechnik 2016 Universität Koblenz, Prof. Jan Jürjens

6

Page 7: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

The highest-level breakdown of a system into its

parts; the decisions that are hard to change; there

are multiple architectures in a system; what is

architecturally significant can change over a

system's lifetime; and, in the end, architecture

boils down to whatever the important stuff is.

Martin Fowler

7

Page 8: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Warum ist Software-Architektur wichtig?

8

Zur Kommunikation zwischen Stakeholdern

Viele Akteure sind an der Entstehung von Software beteiligt

Jeder bringt einen anderen Hintergrund mit

Architektur schafft eine gemeinsame Sprache

Vermittelt einen Überblick zur Aufteilung

Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen

Software Architecture in Practice (2013) Bass, Len., Clements, Paul. und Kazman, Rick

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 9: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Warum ist Software-Architektur wichtig?

9

Als eine übertragbare Abstraktion eines Systems

Software-Architektur definiert ein Modell …

das beschreibt wie das System strukturiert ist

und wie die Komponenten zusammenarbeiten

Das Model kann auf andere Systeme mit ähnlichen funktionalen und nicht funktionalen Anforderungen übertragen werden

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Software Architecture in Practice (2013) Bass, Len., Clements, Paul. und Kazman, Rick

Page 10: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Warum ist Software-Architektur wichtig?

10

Um Anforderungen zu adressieren

Software muss Anforderungen genügen

Architektur plant Lösungsmuster für Probleme

Erlaubt so eine Verifizierung ob Anforderungen erfüllt sind

Software-Architektur alleine reicht nicht aus um alle Anforderungen zu erfüllen

Es muss aber mindestens sichergestellt sein, dass sie den Anforderungen nicht entgegen steht

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Software Architecture in Practice (2013) Bass, Len., Clements, Paul. und Kazman, Rick

Page 11: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

11

Einleitung

Architektur-Beschreibung

Architekturmuster

Architektur in der Praxis

Wege zu einer guten Architektur

Page 12: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Ist die Zielsetzung/Problemstellung präzise definiert?

Sind die zentraleren Lösungsansätze skizziert?

Gibt es einen abstrakten Gesamtüberblick?

Ist die Dokumentation für alle Beteiligten verständlich?

12

Was zeichnet eine gute Architektur-Dokumentation aus?

Für gute Dokumentation zählen die Inhalte …

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 13: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

13

Wichtige Inhalte einer Architektur-Dokumentation

Zielsetzung

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Die Zielsetzung muss klar verständlich in wenigen Sätzen oder Stichpunkten zusammengefasst sein.

Build a platform and service patterns that provide highly available services without requiring the application services, platform services or infrastructure to be highly available. Zielsetzung für die Netflix Cloud Architecture von Adrian Cockcroft

Page 14: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

14

Wichtige Inhalte einer Architektur-Dokumentation

Beschreibung der Architekturziele, deren Motivation und Lösungsansätze

Architekturziel Motivation Lösungsansatz

Hohe Verfügbarkeit Weltweites Angebot, Erwartung der Kunden

Betrieb in der Cloud (AWS), Circut Break Pattern

Skalierbarkeit Mehr als 98 Millionen Nutzer, Lastspitzen

Microservice

Unterstützung verschiedener Endgeräten

Kunden sollen Fernseher, Laptop, Tablets usw. nutzen können

Netflix Client API

… … …

Die wichtigsten Architekturziele sollten zusammen mit Lösungsansätzen dokumentiert werden.

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 15: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

15

Wichtige Inhalte einer Architektur-Dokumentation

Big Picture das Bestandteile und Zusammenhänge darstellt

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

http://media.amazonwebservices.com/architecturecenter/AWS_ac_ra_media_02.pdf

Page 16: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

kann ganz unterschiedlich beschrieben sein:

Dokument

Foliensatz

Wiki/Portal

Architektur-Flyer

Projekt-Wand

16

Was zeichnet eine gute Architektur-Dokumentation aus?

Eine gute Dokumentation …

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 17: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

17

Einleitung

Architektur-Beschreibung

Architekturmuster

Architektur in der Praxis

Wege zu einer guten Architektur

Page 18: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

18

Architekturmuster

Was ist eine Schichten-Architektur?

Die Schichten-Architektur ist ein verbreitetes Strukturierungsprinzip für Software-Systeme

Es gelten folgende Regeln:

Schichten erfüllen eine spezifische Art von Funktion

Zwischen den Schichten gibt es eine definierte Reinfolge

Schichten greifen nur auf direkt darunterliegende Schichten zu

Layer n+2

Layer n+1

Layer n

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 19: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

19

Architekturmuster

Was sind die Vorteile und Nachteile von Schichten-Architektur?

– Code-Abhängigkeiten werden reduziert

– Grundfunktionalität ist sauber strukturiert

– Schichten-Architektur bietet wenig Führung

– Saubere Trennung erfordert Planung und Disziplin

– Daten über mehrere Schichten hinweg auszutauschen kann sich negativ auf die Performance auswirken

– Vorteile – Nachteile

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 20: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

20

Architekturmuster

Was sind die Vorteile und Nachteile von Schichten-Architektur?

– Informationsfluss entgegen Schichtung erfordert Benachrichtigungsmechanismen, um Abhängigkeiten zu vermeiden

– Nach Möglichkeit sollte der korrekte Zugriff technisch sichergestellt werden

– Praktische Anwendung

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 21: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

21

Architekturmuster

Mein System™

Microservices sind eine Ausprägung einer verteilten Architektur bei der ein System in viele sehr kleine Services unterteilt wird.

Charakteristik von Microservices:

Ein Service kapselt genau eine fachliche Funktion

Die Services laufen jeweils in einem eigenen Prozess

Kommunikation über leichtgewichtige Mechanismen

Service

Service

Service

Service

Microservices

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 22: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

22

Page 23: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

23

Architekturmuster

Was sind die Vorteile und Nachteile von Microservices?

– Services können einzeln

l entwickelt

l und deployed werden

– Hoher Freiheitsgrad bei Technologieauswahl

– Gezielte Skalierung von Fachlichkeit

– Immenser Kommunikations-Overhead

– Verteilte Systeme führen zu zusätzlicher Komplexität

l Entwicklung

l Testing

l Betrieb

– Teilweise redundante Datenspeicherung

– Vorteile – Nachteile

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 24: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

24

Architekturmuster

Was sind die Vorteile und Nachteile von Microservices?

- Unglaublich Hipp und in aller Munde

- Unabhängiges Deployment ist nur dann möglich wenn sich die Fachlichkeit nur innerhalb eines Services ändert, Schnittstellen und auszutauschende Daten müssen gleich bleiben

- Der technische und organisatorische Overhead rentiert sich nur für (sehr) große Organisationen und Softwaresysteme

– Praktische Anwendung

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 25: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

25

Architekturmuster

Was ist ein Monolith?

Mein System™

Eine monolithische Architektur ist ein Architekturstil bei dem das gebaute System aus einer deploybaren Einheit besteht.

Das bedeutet allerdings nicht, dass das System intern nicht sinnvoll unterteilt ist!

Monolith

Service

Service Service

Service

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 26: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

26

Architekturmuster

Was sind die Vorteile und Nachteile von Monolithen?

– Gemeinsame, konsistente Datenbasis

– Refactoring ist einfacher, da keine Nachbarsysteme betroffen sind

– Aufrufe innerhalb eines Prozess sind sehr günstig

– Änderungen innerhalb des System erfordern ein vollständiges Deployment

– Wenig technologische Freiräume innerhalb des Systems

– Vorteile – Nachteile

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 27: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Architekturmuster

Wie skalieren Microservices und Monolithen?

Server 1

Service

Service

Service

Service

Service

Service Service

Service

Server 2

Service

Server 3

Service

Service

Service

Service

Server 4

Service

Service

Service

Service

Server 1

Monolith

Service

Service Service

Service

Server 2

Monolith

Service

Service Service

Service

Server 3

Monolith

Service

Service Service

Service

Server 4

Monolith

Service

Service Service

Service

Page 28: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

28

Einleitung

Architektur-Beschreibung

Architekturmuster

Architektur in der Praxis

Wege zu einer guten Architektur

Page 29: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

29

Architektur in der Praxis

Lösungsmuster / Patterns – Beispiel: Schichtenarchitektur

Layer n+2

Layer n+1

Layer n

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 30: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

UI Layer

Service Layer

Persistence Layer

30

Architektur in der Praxis

Lösungsmuster / Patterns – Beispiel: Schichtenarchitektur

Mein System™

Page 31: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

UI Layer

Service Layer

Persistence Layer

Der „Archetyp“ der IT-Architektur Prevalenz:

gefühlt >90% der Projekte

In der Theorie:

sehr grobe Leitlinien

gibt nur wenig Antworten

In der Praxis:

31

Architektur in der Praxis

Lösungsmuster / Patterns – Beispiel: Schichtenarchitektur

Mein System™

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 32: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Service Layer

UI Layer

32

Architektur in der Praxis

Schichtenarchitektur – Die Praxis

Mein System™

Persistence Layer

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 33: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

… ist ein wesentlicher Erfolgsfaktor für:

ein gemeinsames Verständnis

die Reduktion der Komplexität

Ein guter Architektur-Schnitt ermöglicht:

gute Projektorganisation

leistungsfähige Lösungen

Wiederverwendung

gute Anpassbarkeit & Evolution

33

Architektur in der Praxis

Eine gute Software-Architektur …

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 34: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Architekturmuster

Schichtenarchitektur / 3-Schicht

Pipes & Filter Peer-to-Peer (P2P)

Command Query Responsibility Segregation (CRQS)

Entwurfsmuster

GoF: Proxy, Observer, Singleton

MapReduce

Inversion of Control

34

Architektur in der Praxis

Lösungsmuster / Patterns

grob Granularität fein

…bewährte Lösungen für wiederkehrende Entwurfsprobleme

…beschreiben Kontext und Anwendbarkeit der Lösung

Pattern-Oriented Software Architecture: A System of Patterns by Buschmann F.; Meunier R.; Rohnert H.; Sommerlad P.; Stal M. (1996). Design Patterns: Elements of Reusable Object-Oriented Software by: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (1994)

Model-View-Viewmodel (MVVM)

MapReduce

Data Transfer Objects (DTO)

Inversion of Control

Page 35: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

35

Architektur in der Praxis

Module & Softwareevolution

Benutzerverwaltung

Bestellungen

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 36: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

36

Architektur in der Praxis

Module & Softwareevolution

Benutzerverwaltung

Bestellungen

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 37: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

37

Architektur in der Praxis

Module & Softwareevolution

Benutzerverwaltung

Bestellungen

Session

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 38: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

38

Architektur in der Praxis

Module & Softwareevolution

Benutzerverwaltung

Authentifizierung Bestellungen

Session

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 39: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

39

Architektur in der Praxis

Module & Softwareevolution

Benutzerverwaltung

Authentifizierung Bestellungen

Session

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 40: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

40

Architektur in der Praxis

Module & Softwareevolution

Benutzerverwaltung Textfield

Authentifizierung Bestellungen

Session

Manager

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 41: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

41

Architektur in der Praxis

Module & Softwareevolution

„GUI“

Hans „Stammdaten“

Franziska

Benutzerverwaltung Textfield

Authentifizierung Bestellungen

Session

Manager

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Stefan

Page 42: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

… ist ein wesentlicher Erfolgsfaktor für:

ein gemeinsames Verständnis

die Reduktion der Komplexität

Ein guter Architektur-Schnitt ermöglicht:

gute Projektorganisation

leistungsfähige Lösungen

Wiederverwendung

gute Anpassbarkeit & Evolution

… denn sie zeichnet sich dadurch aus, dass:

1. kleine Änderungen auch nur kleine, lokale Systemänderungen erfordern

2. konzeptionell schlüssig ist & bleibt:

Klarheit

Einfachheit, Eleganz

Praktikabilität

Anforderungserfüllung

42

Architektur in der Praxis

Eine gute Software-Architektur …

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 43: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

WORAN ERKENNE ICH EINEN GUTEN ENTWURF?

Preisfrage

43

Page 44: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

A good modular, componentized design

means minimizing the knowledge and

dependency one part of the system has to

have about another.

Rolf Howarth

44

Page 45: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

45

Architektur in der Praxis

Module & Softwareevolution

Modul

Modul

Modul

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 46: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

46

Architektur in der Praxis

Woran erkenne ich einen guten Entwurf?

Daumennagelproben

Kennt jedes Team-Mitglied die Ziel-Architektur?

Kann jeder intuitiv und sofort beantworten „wo“ ein bestimmter Teil zu suchen ist?

Versteht jeder sofort, „wie“ eine bestimmte Funktionalität realisiert/zerlegt wird?

Gibt es wenige & unidirektionale Abhängigkeiten?

Beantwortet meine Architektur sowohl grundsätzliche als auch täglichen Detailfragen?

Kommunik.

Klarheit

Zerlegung

Abtraktions- Ebenen

Page 47: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

47

Microservices to the rescue!

Page 48: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Martin‘s Life Pro-Tipp

I've noticed a common pattern:

1. Almost all the successful microservice stories have started

with a monolith that got too big and was broken up

2. Almost all the cases where I've heard of a system that was

built as a microservice system from scratch, it has ended

up in serious trouble.

This pattern has led many of my colleagues to argue that …

48

Page 49: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Martin‘s Life Pro-Tipp

[…] you shouldn't start a new project

with microservices, even if you're

sure your application will be big

enough to make it worthwhile.

Martin Fowler

https://martinfowler.com/bliki/MonolithFirst.html

49

Page 50: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

50

Einleitung

Architektur-Beschreibung

Architekturmuster

Architektur in der Praxis

Wege zu einer guten Architektur

Page 51: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

51

Wege zu einer guten Architektur

Der Weg (Plan)

Problemstellung identifizieren

Lösungsstrategie entwickeln

Software-Design Lösungs-

architektur

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 52: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

52

Wege zu einer guten Architektur

Der Weg (Realität)

Problemstellung identifizieren

Lösungsstrategie entwickeln

Evolution des Software-Design

Lösungs- architektur

Neue Probleme/ Details/Anforderungen

Design-Refactoring

(Entwickler-Alltag!)

Große, neue Probleme/ Details/Anforderungen

Architektur-Refactoring

(ouch!)

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Software-Design

Page 53: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Produktfunktionen

Funktionen die das System erfüllen können muss/soll, z.B. beschrieben über Use Cases

Technische Randbedingungen

Verfügbare Hard-/Software

Organisatorische Randbedingungen

Termine, Budgets, Schnitt der Abteilungen, Team, Kompetenz

Ziele & Risiken

Produktattribute (~illities)

Eigenschaften die das System besitzen muss

z.B. Scalability, Reliability, Flexibility, Usability, …

Funktionale Anforderungen Nicht-funktionale Anforderungen Randbedingungen

Wege zu einer guten Architektur

Rückschau: Wichtige Einflussfaktoren für eine Architektur

Grady Booch: Objektorientierte Analyse und Design. 1994, ISBN 978-3-89319-673-9, S. 291 f.

53

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 54: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Wege zu einer guten Architektur

54

Das passenden Werkzeug!

ATAM (Architecture Trade-Off Analysis Method)

Eine Evaluationsmethode entwickelt in den ’90er an der Carnegie Mellon University

Zweck: Konsequenzen von Architektur- entscheidungen anhand von Qualitäts- eigenschaften bewerten

Hilft bei der Abschätzung wie eine Architekturentscheidung zentrale Eigenschaften beeinflusst

Qualitätsattribute werden über Szenarien der Stakeholder erarbeitet

Validierung des Architekturentwurf (Muster & Stil) über diese Szenarien & Qualitätsattribute

"ATAM: Method for Architecture Evaluation“ by Rick Kazman; Mark Klein; Paul Clements, 2000 https://www.sei.cmu.edu/reports/00tr004.pdf

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 55: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

55

Risiken

Kritische Punkte, die zentrale Produktattribute/ -funktionen in Frage stellen

Nicht-Risiken

Helfen bei Qualität & Zielerreichungsgrad

Schmerzpunkte

Neuralgische Bereiche die zentrale Qualitäten bedrohen

Tradeoffs

Abwägungen bei Ziel-Konflikten

Lenkt den Prozess um die richtigen Fragen an die Stakeholder zu stellen und regt den gegenseitigen Austausch an

Strukturierte, präzise und für die Stakeholder transparente Entscheidungsbasis mittels abgestimmten Qualitätsbaum und Szenarien

Tradeoffs werden identifiziert, benannt, mit den Stakeholdern abgestimmt und dokumentiert

Dokumentiert die Architekturentscheidungen & verworfene Architekturansätze

Konzepte Vorteile

Wege zu einer guten Architektur

ATAM - Übersicht

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 56: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Wege zu einer guten Architektur

ATAM - Überblick

Geschäftsziele

Software-Architektur

Architektur- Ansätze

Qualitäts- Attribute

Szenarien

Architektur- Entscheidungen

Analyse

Tradeoffs

Sensitive Points

Nicht-Risiken

Risiken Risiko-

Kategorien

56

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 57: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

57

Wege zu einer guten Architektur

Mit ATAM zum Ziel

9 SCHRITTE

2 PHASEN

Page 58: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Wege zu einer guten Architektur

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

ATAM – Vorstellung ATAM-Prozess V

ors

tell

un

g

An

aly

se

Te

st

Ko

mm

.

58

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 59: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

59

Wege zu einer guten Architektur

ATAM – Vorstellung ATAM-Prozess

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

Vo

rste

llu

ng

A

na

lyse

T

est

K

om

m.

Der ATAM-Prozess wird allen Beteiligten vorgestellt.

Ziel: Alle Beteiligte verstehen seinen Ablauf & Funktionsweise.

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 60: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

60

Wege zu einer guten Architektur

ATAM – Vorstellung ATAM-Prozess

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

Vo

rste

llu

ng

A

na

lyse

T

est

K

om

m.

Die Stakeholder (Fachabteilungen) präsentieren Motivation und Geschäftsziele.

Damit werden auch die zentralen Treiber für die Systementwicklung benannt.

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 61: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

61

Wege zu einer guten Architektur

ATAM – Vorstellung ATAM-Prozess

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

Vo

rste

llu

ng

A

na

lyse

T

est

K

om

m.

Allen Beteiligten (Manager, Fachabteilung, …) wird im angemessenem Detailgrad der Architekturentwurf präsentiert.

Schwerpunkt liegt dabei darauf, wie dieser Entwurf die zentralen Anforderungen und Geschäftsziele erfüllt bzw. nicht erfüllt.

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 62: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

62

Wege zu einer guten Architektur

ATAM – Vorstellung ATAM-Prozess

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

Vo

rste

llu

ng

A

na

lyse

T

est

K

om

m.

Die verschiedene verschiedenen Architektur-Ansätze werden im Architekten-Team diskutiert, ohne sie aber im Detail zu analysieren.

Hier geht es um ein gemeinsames Bild der wesentlichen Eckpunkte der Ansätze zu erhalten.

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 63: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

63

Wege zu einer guten Architektur

ATAM – Vorstellung ATAM-Prozess

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

Vo

rste

llu

ng

A

na

lyse

T

est

K

om

m.

In kleiner Runde werden mit den Stakeholdern die zentrale Qualitätsattribute erarbeitet und in einen Qualitätsbaum einsortiert

Dabei konkretisieren die Stakeholder über ausformulierte Szenarien ihre Anforderungen (Beschreibung: Stimulus und Reaktion).

Die identifizierten Qualitätsattribute werden der Ziel-Architektur gegenübergestellt.

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 64: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Wege zu einer guten Architektur

Beispiel für ATAM-Szenarien

Ein vollständiger Datenimport darf max. 4h dauern.

Login über Twitter in 2 Tagen implementierbar.

Jederzeit möglich, Bestellungen aufzugeben.

Bei Stromausfall dürfen keine Daten verloren gehen.

64

Page 65: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Wege zu einer guten Architektur

Beispiel für ATAM-Szenarien

Ein vollständiger Datenimport darf max. 4h dauern.

Login über Twitter in 2 Tagen implementierbar.

Jederzeit möglich, Bestellungen aufzugeben.

Bei Stromausfall dürfen keine Daten verloren gehen.

65

Performance > Durchsatz

Erweiterbarkeit

Verfügbarkeit

Unerwartete Ereignisse

Page 66: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Wege zu einer guten Architektur

66

ATAM Qualitätsbaum („utility tree“)

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 67: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

Wege zu einer guten Architektur

67

ATAM Qualitätsbaum („utility tree“)

Kritikalität Priorität

High / Middle /Low

1) Qualität

3) Szenario Kontext und Umgebung Stimulus & Reaktion

2) Qualitätsattribut

Page 68: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

68

Wege zu einer guten Architektur

ATAM – Vorstellung ATAM-Prozess

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

Vo

rste

llu

ng

A

na

lyse

T

est

K

om

m.

Die Architekten suchen nun einen Architektur- entwurf, welcher den Qualitätskriterien gerecht wird.

Dabei wird für jede einzelne Szenario/Qualitätsattribut dokumentiert:

Umgebung, Auslöser & Reaktion

resultierende Architekturentscheidung mit Risiko, Sensitivität, Tradeoff

Begründung

Diese kann von theoretischen Überlegungen bis zu evaluatorischen Prototypen reichen.

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 69: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

69

Wege zu einer guten Architektur

ATAM – Vorstellung ATAM-Prozess

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

Vo

rste

llu

ng

A

na

lyse

T

est

K

om

m.

In größerer Runde wird jedes Szenario erneut einzeln betrachtet.

Diese werden ggf. angepasst / ergänzt, so dass sie möglichst gut den Erwartungen der Stakeholder entsprechen:

Anwendungs-Szenarien (Use Cases)

Änderungs-Szenarien (Wachstum, Störung)

Über z.B. eine Wahl werden alle Szenarien/Attribute abschließend priorisiert.

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 70: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

70

Wege zu einer guten Architektur

ATAM – Vorstellung ATAM-Prozess

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

Vo

rste

llu

ng

A

na

lyse

T

est

K

om

m.

Wiederholt im Kern Schritt #6, ergänzt um das neue Detailwissen & Prioritäten alle Stakeholdern.

Idealerweise wird hier nur der Entwurf aus #6 umfangreicher belegt & bestätigt. Im Bedarfsfall nachgebessert.

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 71: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

71

Wege zu einer guten Architektur

ATAM – Vorstellung ATAM-Prozess

1. Vorstellung ATAM-Prozess

2. Vorstellung Geschäftsziele

3. Vorstellung Architekturentwurf

4. Architekturansätze

5. Erstellung Qualitätsbaum

6. Analyse der Architekturansätze

7. Szenarien: Analyse & Priorisierung

8. Analyse des Architekturentwurfs

9. Präsentation der Ergebnisse

Vo

rste

llu

ng

A

na

lyse

T

est

K

om

m.

Es werden alle Ergebnisse und erarbeiteten Dokumente allen Stakeholdern präsentiert:

Architekturentwurf & verworfene Ansätze

Qualitätsbaum

Szenarien

spezifische Fragen & Antworten zu einzelnen Qualitätskriterien/Szenarien

Risiken

Schmerzpunkte

getroffene Tradeoffs & Begründungen

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 72: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

1. Übergang zwischen „Software-Architektur“ und „Software-Design“ ist fließend

2. Verständlichkeit / Kommunizierbarkeit einer Architektur ist entscheidend

3. Ein weiterer Schlüsselaspekt ist die praktische Tauglichkeit der Architektur

4. Strukturierte Planung (ATAM) zahlt sich aus

Architektur in der Praxis

Fazit: Details matter!

72

Einleitung Architektur-Beschreibung Architekturmuster Architektur in der Praxis Wege zu einer guten Architektur

Page 73: SOFTWARE-ARCHITEKTUREN IN DER PRAXIS - exxcellent.de · Architektur bildet die Grundlage für gemeinsame Diskussionen, Abstimmungen und Entscheidungen Software Architecture in Practice

the essence for your business.

eXXcellent solutions

We are hiring!

Softwareentwickler / Business Analysten / Abschlussarbeiten / Praktikanten https://www.exxcellent.de/karriere/

https://www.kununu.com/de/exxcellentsolutions

Darmstadt

Stuttgart

Ulm München