AI Flashcards

1
Q

Was sind Ziele der Softwarearchitektur Vorlesung?

A
  • Was ist Softwarearchitektur?
  • Große Systeme gut aufbauen und entwickeln.
  • Wie dokumentiert man und bewertet man Architekturen?
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind keine Ziele der Softwarearchitektur Vorlesung?

A
  • Die perfekte Architektur festzulegen.
  • Sich in technische Details von Frameworks zu verlieren.
  • Noch mehr UML Vorlesungen zu halten.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Woher stammt der Begriff Architektur und wofür steht er?

A

Architektur stammt ausdem Mittelalter und steht für die Baukunst.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welches Ziel verfolgt Architektur?

A
  • Ordnung und Strukturierung von Produkten des Bauwesens
  • Erfahrungen und Wissen der Baukunst verallgemeinern.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welchen Zweck hat Architektur in der Baukunst?

A

Verschiedene:

  • Macht demonstrieren
  • Verteidigen
  • Verkehr lenken
  • Mobil sein
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was sind Definitionen von Softwarearchitektur?

A
  • Softwarearchitektur ist ein Gerüst aus Komponenten und Beschreibungen aus Software mit Ingenieurs Prinzipien
  • Softwarearchitektur ist durch die Aspekte bestimmt, welche man am schwersten im nachhinein ändern kann
  • Es geht darum eine Lösung für Anforderungen zu erstellen
  • Softwarearchitektur ist das WAS WIE WARUM
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

In welcher Reihenfolge entsteht eine Softwarearchitektur im Idealfall?

A
  • Vorwärts und nicht rückwärts durch Reverse-Engineering
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Woraus besteht Softwarearchitektur?

A
  • Nacheinander getroffene, weitreichende Entwurfsentscheidungen
  • Besteht aus Strukturen (Bausteine, Eigenschafte dieser Komponenten und Beziehungen der Komponenten untereinander)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Ist mit der Erstellung der Architektur für Software bereits der Job getan?

A
  • Nein, denn die Architektur sorgt nur für die Grundpläne.
  • Erst die Implementierung der Schnittstellen und Komponenten erschafft ein echtes System.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Auf welchen Entwurfsentscheidungen basiert Softwarearchitektur?

A
  • Entscheidungen über Entwürfe der Komponenten
  • Entscheidungen über benutzte Technologien
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Sind die Konsequenzen bei Entscheidungen in Softwarearchitektur leicht abschätzbar?

A
  • Nein, die Konsequenzen werden erst während der Umsetzungen bewusst.
  • Getroffene Konsequenzen schränken die Möglichkeiten immer weiter ein.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Sollte man Entscheidungen in der Softwarearchitektur auch nach dem besten Gewissen treffen?

A

Ja, da man Entscheidungen oftmals nicht komplett abschätzen kann.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Laufen heutige Softwaresysteme eher isoliert?

A

Nein, viele haben Abhängigkeiten zu Drittsysteme oder müssen bestimmte Anforderungen liefern.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welche Sicht beschreibt das Zusammenspiel eines Softwaresystems?

A

Die Laufzeitsicht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welche Sicht beschreibt die Zusammenhänge eines Softwaresystems?

A

Die Bausteinsicht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Welche Sicht beschreibt die ob ein Softwaresystem zentral oder dezentral aufgebaut ist?

A

Die Verteilungssicht

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Warum ist eine Dokumentation einer Softwarearchitektur wichtig?

A
  • Remotearbeiter müssen auch informiert sein
  • Wartungsteams bekommen später das System vorgesetzt und sollen es aktualisieren oder performanter machen, was nur mit Planen geht
  • Der Betreiber möchte auch wissen was auf welchem System läuft
  • Dokumentation entscheidet ob ein System weiterentwickelbar ist oder nicht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Was muss alles dokumentiert werden?

A
  • Alles was man benötigt um das System zu verstehen
  • Alles andere kann auch weggelassen werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Für was ist Softwarearchitektur der Übergang?

A

Es ist der Übergang von der Analyse zur Architektur zur technischen Realisierung

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Dokumentiert eine Architektur ein gesamtes System?

A

Nein, eine Architektur dokumentiert immer sehr spezifische einzelne Aspekte eines Gesamtsystems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Ist eine dokumentierte Architektur für jeden Stakeholder interessant?

A

Nein, je nach Dokumentationsart/Sicht ist diese für einen anderen Stakeholder mit verschiedenen Anforderungen interessant.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Was stellt das Nutzen von Softwarearchitektur sicher?

A
  • Flexibilität
  • Erweiterbarkeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Warum ist Softwarearchitektur Abstraktion?

A
  • Weil ganz bewusst nicht benötigte Informationen weggelassen werden
  • Informationen müssen lesbar und nachvollziehbar sein
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Gibt es eine All-In-One Architekturlösung?

A

Nein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Was zeichnet die Qualität eines Systems aus?
Die Summe seiner nicht-funktionalen (schwierigen) Eigenschaften wie: * Performance * Verständlichkeit * Flexibilität * Wartbarkeit
26
Wie sieht die Grenze zwischen Entfurf/Design und Architektur aus?
Sehr fließend, man wird auch Designentscheidungen treffen, welche die Architektur einschränken.
27
Was ist NICHT Architektur?
Nur ein Diagramm. ("Das hier ist unsere Architektur") Denn das sind nur Striche und Buchstaben, welche Dutzende Fragen aufkommen lassen.
28
Welche Fragen lassen Diagramme zur Architektur aufkommen?
Welche Verbindungen zwischen den Komponenten gibt es? Welche Richtungen haben diese? Warum machen sie es so? Was ist der Vertrag oder die Schnittstelle zwischen diesen?(Bei REST wichtig!)
29
Welche Entscheidungen trifft ein Architekt?
* Brauche ich ein Framework und wenn ja welches? * Nach System in Komponenten gebrochen -\> Baut man es selber oder kauft man es ein? Oder kann man etwas Open-Source bestehendes nutzen? (Mittelweg) * Wer arbeitet woran? * Naming (Namen sind schnell vergeben aber extrem wichtig) *
30
Was hat es mit den Konsequenzen aus Entscheidungen mit sich?
* Oftmals werden sie erst Monate oder Jahre später bekannt * Oftmals sind Frameworks/Technologien unbekannt und die Auswirkungen nicht abschätzbar *
31
Wie sollte man mit Entscheidungen bei der Architektur verantwortungsvoll umgehen?
* Die Entscheidungen iterativ treffen * Entscheidungen mit großer Tragweite sehr gut dokumentieren
32
Wie garantieren Architekten die Machbarkeit von Anforderungen?
* Durch Prototypen (PoC), Framework testen, Performancetests * Dafür sorgen das funktionale und nichtfunktionale Anforderungen eingehalten werden * Einen angemessenen Kostenrahmen einhalten (Lizenzen)
33
Wen beraten Architekten?
* Management und Auftraggeber für Planung/Organisation * Auftraggeber zu Machbarkeit, Kosten, Realisierung, Betrieb * Projektleiter bei Steuerung des Implementierungsteams * Implementierungsteam bei Umsetzung * Qualitätssicherung zu Testbarkeit und Bewertung
34
Sollten Architekten Kosten für ein Projekt genau abschätzen können?
Nein, aber zumindest eine Größenordnung oder Hausnummer sollte planbar sein.
35
Woran sollte das Ausmaß einer Dokumentation gemessen sein?
Wer es lesen soll. * Manchmal reicht eine Skizze am Kaffeetisch * Manchmal eine ausführliche API Dokumentation
36
Was sollten Projekte immer bleiben?
* Agil * Flexibel * Kurzfristig wandelbar (Architekten sind verantwortlich ob dies möglich ist)
37
Was sind die Anforderungen an ein Projekt?
Anforderungen müssen immer abgewägt werden. (Performance gegen Wartbarkeit etc) Es gibt keine Architektur die sehr günstig, performant, flexibel und wartbar ist.
38
Wie müssen Architekten kommunizieren?
* Architekturen für verschiedene Stakeholder unterschiedlich aufbereiten * Stakeholder das Konzept verkaufen * Team coachen
39
Was sind die Werkzeuge eines Architekten?
* Modelle: Zeigen nie das große Ganze in allen Details (Alle Modelle sind falsch, aber meist hilfreich) * System-Dokumentationen * Erfahrungen, Regeln * Muster (Lösungen zu bestimmten Problemen) * Partition und Aggretation von Problemen * Iteratives Vorgehen (Sehr wichtig!) Nicht nur wasserfallmäßig linear arbeiten *
40
Was ist Conways Law?
Das Gesetz von Conway basiert auf der Überlegung, dass für die Definition der Schnittstellen zwischen getrennten Softwaremodulen zwischenmenschliche Kommunikation notwendig ist. Daher haben die Kommunikationsstrukturen der Organisationen einen großen Einfluss auf die Strukturen dieser Schnittstellen
41
Wie sieht ein Architekten-Team am besten aus?
* Ein eher kleines Team (Nicht alleine) * Erfahrungen in Softwareentwicklung vorhanden * Erfahrungen in Fachbereich vorhanden!
42
Wie sieht ein iterativer Ansatz in der Softwarearchitektur aus?
* Man trifft immer wieder eine Entscheidung und driftet in eine Richtung ab. * Durch die getroffene Entscheidung wird man in der neuen Richtungsauswahl eingeschränkt * Wenn man alles richtig gemacht hat, ist man am Ende nicht am Ziel der Planung sondern da wo der Kunde wirklich hin wollte (es nur nicht wusste)
43
Was sollte Softwarearchitektur organisatorisch nicht entstehen?
* Nur an bestimmten Tagen/Zeitpunkten Entscheidungen treffen und nicht kontinuierlich * Abkapseln und im stillen Kämmerlein arbeiten * Nur auf Marketing fokusiert sein * Sich nur am Namen der Architektur festmachen. (Wir machen React)
44
Ist der Beruf Softwarearchitekt ein Status?
Nein, das sollte er nicht sein. Gute Architekten sind sehr gute Softwareentwickler mit gutem Überblick, die Menschen führen können und Wissen über das System haben.
45
In welchem Kontext steht Softwarearchitektur im Unternehmen bzw mit was steht es alles im Kontakt.
* Projektplanung * Qualitätssicherung * Betrieb * Hardwareentwicklung * Designs/Implementierung * Risikoanalyse
46
Woher stammt der Begriff Architektur?
* Aus dem Mittelalter für Baustil/Baukunst
47
Was sind die Ziele von Architektur?
* Erfahrungen und Wissen verallgemeinern * Ordnung und Verallgemeinerung von strukturellen Beziehungen im Bauwesen
48
Zitate
* The software architecture of deployed software is determined by those aspects that are the hardest to change * Das Leben von Software-Architekten besteht auf einer langen und schnellen Abfolge suboptimaler Entwurfsentscheidungen, die meist im Dunkel getroffen werden * Die zuverlässigste, preiswerteste und robusteste Komponente eines Systems ist diejenige, die erst gar nicht realisiert werden muss
49
Woraus besteht Architektur?
* Bausteine/Komponenten des Systems * Wesentliche extern sichtbare Eigenschaften der Bausteine * Beziehungen zwischen den Bausteinen/Komponenten untereinander
50
Auf welchen Entwurfsentscheidungen basiert Architektur?
* Entscheidungen zum Entwurf der Komponente * Entscheidungen für Technologien
51
Was tut eine Sicht der Architektur?
* Dokumentiert Aspekte eines Gesamtsystems * Ist nützlich für einen bestimmten Stakeholder
52
Warum ist Architektur Abstraktion?
* Weil die Aufgabe von Architekten das Weglassen von nicht benötigten Informationen ist * Diese werden bewusst gefiltert, um Darstellungen verständlich zu halten
53
Wo ist der Unterschied zwischen Architektur und Entwurf/Design?
* Fließende Grenze * Design/Entwurf ist der Prozess der Erstellung von Architektur
54
Wie beraten Architekten?
* Management und Auftraggeber bei Projektplanung * Auftraggeber zu Machbarkeit, Kosten, Anforderungen, Betrieb * Projektleiter bei Organisation und Steuerung des Implementierungsteams * Projektleiter bei Risikomanagement * Hardwarearchitekten bei Hardwareanforderungen * Qualitätssicherung bei Testbarkeit von Systemen
55
Wie dokumentieren Architekten?
* Nach den Bedürfnissen der Adressaten * Pragmatisch (Manchmal reicht eine Skizze auf einem Umschlag) * So das Projekte, agil, flexibel und kurzfristig bleiben
56
Wie bewerten Architekten?
* Wann sind nicht funktionale Anforderungen riskant oder kritisch?
57
Seit wann gibt es den Begriff Softwarearchitektur?
* In einer Natokonferenz in Rom 1980 ist der Begriff das erste Mal aufgetreten.
58
Warum ist der Begriff Softwarearchitektur enstanden?
* **Nach 1960 wurden System so komplex, dass ein einzelner nicht mehr alle Infos wissen konnte** und Teams daran arbeiten mussten. * In Systemen wurde die Software teurer als die Hardware und Projekte verzögerten sich immer mehr und wurden viel teurer als angenommen.
59
Was machen Mainframes heute?
* Verarbeiten 80% aller Unternehmensdaten mit 30 Mrd Transaktionen pro Tag
60
Wann entstanden die ersten Softwarearchitekturen?
* Dekomposition, Zerlegung, Entwurf: 1970er Jahre mit The Mythical Man Month * Schnittstellen und Konnektoren: 1990er Jahre mit Software Architecture Analysis Method * Anwendung und Verbreitung: 2000er Jahre mit IEEE Standards, UML 2.0
61
Was waren Pioniere der Softwarearchitektur?
* Davis Parnas * Frederick Brooks * Tony Hoare * Edsge Dijkstra * Per Brinch Hansen * Friedrich Bauer * Niklaus Wirth *
62
Was hat **David Parnas** erfungen?
* Geheimnisprinzip * Grundlagen OOP * Modulkonzept
63
Was hat **Frederick Brooks** erfunden?
* Schrieb das erste ehrliche Buch über Softwareentwicklung: The Mystical Man Month, Essays über Software Engineering * Brooks Law: Adding Manpower to a late software project makes it later
64
Was hat **Tony Hoare** erfungen?
* Quicksort Algorithmus * Hoare-Kalkül zum Beweisen von Algorithmen * Grundlage der Programmiersprachen Ada, Occam und Go
65
Was hat **Edsge Dijkstra** erfunden?
* Dijkstra Algorithmus zum Berechnen des kürzesten Weges in einem Graphen * Semphoren für Synchronisation von Threads * Erstes Betriebssystem mit Schichtenarchitektur * **Prägte Begriffe der strukturierten Programmierung der Softwarekrise**
66
Was hat **Per Brinch Hansen** erfunden?
* Erste Implementierung des Mikrokernkonzepts * Monitorkonzept für paralelle Programmierung * Erste parallele Programmiersprache
67
Was hat **Friedrich Bauer** erfunden?
* Stack-Konzept (Kellerspeicher) erfunden * Hielt die erste Informatikvorlesung in DE * Autor in Kryptologie
68
Was hat **Niklaus Wirth** erfunden?
* Wirthsche Gesetz: Software verlangsamt sich schneller, als Hardware sich beschleunigt * Programmiersprache PL360 für IBM Mainframes * Programmiersprache Pascal * Erweiterte Backus Nauer Form als formale Sprache * Computermaus import, der Logitech gründete
69
Was erkennt man an der Entwicklung des Linux Kernels und Ruby on Rails?
* Die Komplexität von Software hat über die Jahre immer weiter zugenommen * LInes Of Code, Klassen, Methoden stiegen stark an
70
Warum braucht man Sichten?
* Eine Darstellung alleine kann alle Komplexitäten für alle Perspektiven ausdrücken (Grundriss reicht nicht für Hausbau) *
71
Was müssen Architekten den Projektbeteiligten erklären?
* Entworfene Strukturen * Getroffene Entscheidungen * Konzepte, Begründungen, Vorteile, Nachteile * Mit den verschiedenen Sichten viele Aspekte verständlich darstellen
72
Wie lautet der Kreislauf in dem Architekten in einem Team für gemeinsames Verständnis sorgen?
-\> Anforderungen klären -\> Entwerfen -\> kommunizieren -\> Bewerten -\>
73
Wie heißen die 4 Sichten der Softwarearchitektur?
* Kontextabgrenzung * Laufzeitsicht * Bausteinsicht * Verteilungssicht
74
Was beschreibt die Kontextabgrenzung (kurz)?
* Vogelperspektive & Nachbarsysteme
75
Was beschreibt die Laufzeitsicht (kurz)?
* Wie arbeiten Bausteine zusammen?
76
Was beschreibt die Bausteinsicht (kurz)?
* Statische Struktur von Bausteinen und Beziehungen
77
Was beschreibt die Verteilungssicht (kurz)?
* In welchem Umgebungen läuft es ab?
78
Was zeigt die Kontextsicht?
* Wie System in Umgebung eingebettet ist * Zeigt System als Blackbox im Kontext aus Vogelperspektive
79
Welche Informationen enthält die Kontextsicht?
* Schnittstellen zu Nachbarsystemen * Interaktionen mit Stakeholdern * Teile der Infrastruktur
80
Wie sehen Beispiele für die Kontextsicht aus?
81
Wie sehen Beispiele für die Kontextsicht aus?
82
Wie sehen Beispiele für die Kontextsicht aus?
83
Wie sehen Beispiele für die Kontextsicht aus?
84
Was zeigt die Bausteinsicht und wem hilft es?
* Wie ist ein System **intern** aufgebaut? * Hilft einem Auftraggeber und Projektleiter bei Projektüberwachung * Hilft bei Arbeitspaketzuteilung * Referenz für Softwareentwickler
85
Welche Informationen enthält die Bausteinsicht?
* Statische Strukturen der Bausteine eines Systems * Subsysteme * Komponenten und Schnittstellen
86
Wie sehen Beispiele für die Bausteinsicht aus?
87
Wie sehen Beispiele für die Bausteinsicht aus?
88
Wie sehen Beispiele für die Bausteinsicht aus?
89
Wie sehen Beispiele für die Bausteinsicht aus?
90
Was zeigt die Bausteinsicht?
* Wie das System abläuft * Welche Beusteine zur Laufzeit existieren * Wir wirken die Bausteine zusammen?
91
Wie sehen Beispiele für die Laufzeitsicht aus?
92
Wie sehen Beispiele für die Laufzeitsicht aus?
93
Wie sehen Beispiele für die Laufzeitsicht aus?
94
Wie sehen Beispiele für die Laufzeitsicht aus?
95
Was zeigt die Verteilungssicht?
* In welcher Umgebung läuft das System ab? * Zeigt es aus Betreibersicht
96
Welche Informationen enthält die Verteilungssicht?
* Hardwarekomponenten(Rechner, Prozessoren) * Netzprotrokolle/Netztopologien * Physische Bestandteile der Systemumgebung
97
Wie sehen Beispiele für die Verteilungssicht aus?
98
Wie sehen Beispiele für die Verteilungssicht aus?
99
Wie sehen Beispiele für die Verteilungssicht aus?
100
Gibt es weitere Sichten außer den 4?
* In der Literatur findet man noch ein paar, jedoch sind das meist nur abgewandelte Sichten ohne Mehrwert. * Man sollte darauf verzichten mehr zu benutzen
101
Warum sollte man auf weitere Sichten verzichten?
* Zusätzlicher Erstellungs- und Wartungsaufwand. * Grundlegende Aspekte werden bereits durch die 4 abgedeckt.
102
Was ist ein Beispiel einer sehr speziellen und meist nicht nützlichen "Sicht"?
* Karte über Lichteinfall in die Wohnung, ist für Pflanzenzüchter interessant, aber für wenig andere sonst.
103
Gibt es noch weitere Sichtenmodelle in der Literatur?
* Ja * 4+1 Sicht * Modulstandpunkt -\> Im Endeffekt sind alle keine Neuerfindungen des Rades, sondern abgeänderte Kopien.
104
Wie sollten Sichten entstehen?
* Entwurf von Sichten hat Abhängigkeiten * Software sollte iterativ entstehen da manche Auswirkungen erst über Grenzen von Sichten spürbar sind
105
Welche Sichten haben untereinander Wechselwirkungen?
* Jede Sicht hat mit jeder Sicht eine Wechselwirkung
106
In welcher Reihenfolge sollte man Sichten erstellen?
* Oftmals parallel erstellt und verbessert
107
Wann sollte man die Bausteinsicht zuerst erstellen?
* Bei Erstellung eines ähnlichem Systems mit Vorstellung von benötigten Komponenten * Ein bestehendes System ändern muss und Teile der Sicht vorgegeben sind
108
Wann sollte man die Laufzeitsicht zuerst erstellen?
* Bei Vorstellungen von wesentlichen Bausteinen und man möchte die Verantwortlichkeit und Zusammenspiel klären
109
Wann sollte man die Verteilungssicht zuerst erstellen?
* Bei vielen Randbedingungen und Vorgaben durch technische Infrastruktur, Rechenzentrum oder Admins
110
Wieviel Aufwand fließt in welche Sicht?
* 60-80% der Zeit für die Sichten wird in die Bausteinsicht fließen, da sie viel detailliert ausgeführt wird als die anderen Sichten
111
Sollte man nur die Bausteinsicht erstellen und die anderen Sichten vernachlässigen?
* Nein, man sollte auf jeden Fall alle Sichten erstellen * Das ist für das Gesamtprojekt wichtig und für verschiedene Stakeholder
112
Sollte man Entwurfsentscheidungen und Beschreibungen die Sichten beeinflussen dokumentieren?
* Ja, z.B. eine zentrale Datenhalung ist noch wichtig für den weiteren technischen Verlauf der Infrastruktur
113
Was sind die Vorteile wenn man Wechselwirkungen der Sichten dokumentiert?
* Bessere Nachvollziehbarkeit von Entscheidungen * Änderungen werden vereinfacht * Zusammenhänge und Übersicht der Architektur wird besser
114
Wie entwirft man die Sicht **Kontextabgrenzung**?
* Ist Ergebnis der Anforderungsanalyse * Zeigt sämtliche Nachbarsysteme * Alle Ein/Ausgehenden Daten und Ereignisse müssen erkennbar sein
115
Wie entwirft man die Bausteinsicht?
* Bausteinsicht ist Kern der Architekturbeschreibung * Man beschreibt exakt wie das System strukturell aufgebaut ist * Zuerst beginnt man mit der Vogelperspektive der Implementierungsbausteine * Man zerelgt ein System in große Elemente wie Teilsysteme * 60-80% der Arbeit!
116
Wie entwirft man die Laufzeitsicht?
* Die Elemente der Laufzeitsicht sind Elemente für die Bausteinsicht * Daher kann man die Bausteinsicht für die Erstellung der Laufzeitsicht nutzen * Man beschreibt die Dynamik der statischen Bausteine und beginnt bei den wichtigsten Use-Cases des Gesamtsystems. * Man kann auch von der Verteilungssicht starten
117
Wie entwirft man die Verteilungssicht?
* Verteilungssicht ist eine Landkarte der Hardware und externen Systemen * Genügen die verfügbare Hardware, Kommunikationskanäle, gibt es Engpässe? * Falls ein System verteilt laufen soll müssen Kommunikationsmechanismen, Protokolle und Middleware in die Infrastruktursicht aufgenommen werden.
118
Was ist Qualität?
* Beschaffenheit, Güte, Wert * Wenn der Kunde wiederkommt nicht das Produkt * DIN/ISO Norm die es genau spezifiziert (Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz etc)
119
Wie sieht das magische Dreieck der Qualität aus?
120
Was sind die Probleme mit Qualität?
* Qualität ist nur indirekt messbar * Qualität ist relativ und subjektiv, für jeden Betrachter anders * Qualität von Architektur ist nicht notwendigerweise Codequalität * Erfüllung aller funktionalen Anforderungen heißt nicht Erfüllung von Qualität
121
Beispiel funktionale Anforderungen anhand von Sortieren von Daten:
* Funktional kann es erfüllt sein, aber nicht funktional? * Was ist bei: Große Datenmengen (TB)? Sonderzeichen? Parallele Benutzer? Sortierung anhaltbar? Erweiterbarkeit? Entwicklung mit verteilten Teams?
122
Welche Qualitätsmerkmale hält der **DIN/ISO 9126 Norm** fest?
* Funktionalität: Satz von Funktionen mit spezifizierten Eigenschaften * Zuverlässigkeit: Fähigkeit, Leistungsniveau konstant über Zeitraum * Benutzbarkeit: Aufwand zur Benutzung * Effizienz: Leistung im Gegensatz zu eingesetzte Betriebsmittel * Änderbarkeit: Aufwand für Änderungen * Übertragbarkeit: Eignung zur Übertragung in andere Umgebung
123
Was sind Architekturmuster?
* Muster für Softwarearchitekturen die erprobte Generallösungen für wiederaufkehrende Probleme beschreiben. Die Lösung beschreibt Komponenten und Beziehungen. * Bewährte Lösung für ein wiederholt auftretendes Entwurfsproblem * Ein Architekturmuster definiert den Kontext für die Anwendbarkeit der Lösung
124
Warum gibt es Architekturmuster?
* Erfolg -\> Weisheit, Weisheit -\> Erfahrung, Erfahrung -\> Fehlern. * Dummer Fehler zwei Mal gemacht? Reale Welt, Hundert Mal gemacht? Softwareentwicklung * Aus Fehlern kann man gut lernen, aber kaum Kunden akzeptieren Fehler *
125
Was sind Heuristiken im Kontext der Architekturmuster?
* Heuristiken sind Abstraktionen von Erfahrungen anderer Architekten und Projekte * Heuristiken sind Regeln zur Behandlung von komplexen Problemen für die es viele Lösungen gibt, indem sie Komplexität reduzieren. * Heuristiken sind Regeln, Muster, Prinzipien, es sind abstrakte Verallgemeinerungen. * Heurisitiken bieten Orientierung wie Wegweise oder Straßenschilder, die Verantwortung, Auswahl und Umsetzung bleibt bei einem selbst.
126
Worin liegt die Kunst der Architektur in Zusammenhand mit Heuristiken?
* Bei der Weisheit die passende Heuristik für das aktuelle Projekt zu wählen.
127
Was ist der klassische Ansatz zur Lösung von Problemen in der Architektur?
* Teile und Herrsche * Das unlösbare Problem in immer kleinere Teilprobleme zerlegen, bis man diese lösen kann.
128
Was sind klassische Architekturmuster?
* Horizontale Zerlegung: "In Scheiben schneiden" * Vertikale Zerlegung: "In Stücke schneiden"
129
Was ist die horizontale Zerlegung?
* Jede Schicht stellt klar definierte Schnittstellen zur Verfügung und nutzt Dienst von unterliegenden Schichten * Ein klassiches Architekturmuster
130
Was ist die vertikale Zerlegung?
* Jeder teil übernimmt eine bestimmte fachliche oder technische Funktion * Ein klassisches Architekturmuster
131
Was ist das Muster der Kapselung(Information Hiding?)
* Kapselung von Komplexität in Komponenten * Betrachtung von Komponenten als Black Box * Definition klarer Schnittstellen
132
Was passiert bei einer Zerlegung ohne Kapselung?
* Das Problem wird erschwert und nicht vereinfacht. Kapselung ist nötig.
133
Was ist das Muster der Wiederverwendung?
* Wiederverwendbarkeit verringert Wartungsaufwand (Nur sinnvolle Dinge wiederverwenden!)
134
Was ist der **iterative Entwurf?** | (Prinzip zum Zerlegen)
* Überprüfen eines Entwurfs mit Prototypen oder Durchstichen * Auswertung von Stärken und Schwächen des Entwurfs * Bewertung und Analyse der Versuche
135
Was ist die **Dokumentation von Entscheidungen**? | (Prinzip zum Zerlegen)
* Warum wurden Entscheidungen so getroffen? * Welche Alternative wurden bewertet? * Andere Beteiligte werden Entscheidungen später kritisieren.
136
Was ist die **Unabhängigkeit der Elemente**? | (Prinzip zum Zerlegen)
* Geringe Abhängigkeit zwischen Elementen * Wartbarkeit und Flexibilität des Systems wird erhöht * Komponenten machen keine Annahmen über andere Komponenten
137
Was ist REST?
* Representational State Transfer * Programmierparadigma für verteile Systeme wie Webservices * Abstraktion des WWW
138
Was ist das Ziel von REST?
* Rest möchte einen Architekturstil schaffen, der die Anforderungen des modernen Webs besser darstellt.
139
Wie funktioniert REST?
* Zweck ist Maschine zu Maschine Kommunikation * Rest kodiert Methodeninfos in die URI, welche Ort und Namen der Ressource angibt. * Ressource kann über verschiedene Medientypen(Repränsentationen) dargestellt werden
140
Nenne die REST Prinzipien!
* Client-Server * Zustandslos * Caching * Einheitliche Schnittstellen * Mehrschichtiges System * Code on Demand
141
Was wird durch REST erreicht?
* Addressierbarkeit von Ressourcen * Repräsentation von veränderten Ressourcen * Selbstbeschreibende Nachrichten über HTTP
142
Was ist HTTP?
* Hypertext Transfer Protocol (HTTP) * Zustandsloses Protokoll zur Übertragung von Daten auf Anwendungsschicht * Zum laden von WWW Webseiten * Auch nur zum laden von Daten nutzbar
143
Was sind HTTP Verben?
* GET * POST * PUT * PATCH * DELETE
144
Was macht das HTTP Verb GET?
* GET fordert eine angegebene Ressource vom Server an
145
Was macht das HTTP Verb POST?
* POST fügt eine neue Ressource unterhalb der angegebenen Resssource ein.
146
Was macht das HTTP Verb PUT?
* PUT legt eine Ressource an oder ändert eine bestehende.
147
Was macht das HTTP Verb PATCH?
* PATCH ändert einen Teil einer Ressource.
148
Was macht das HTTP Verb DELETE?
* DELETE löscht die angegebene Ressource.
149
Welche Arten von Kategorien für Architekturmuster gibt es?
* Chaos zu Struktur * Verteile Systeme * Interaktive Systeme * Adaptive Systeme * Domain-spezifische Architekturen
150
Welche **Architekturmuster** gehören zur Kategorie Chaos zu Struktur?
* Layers * Pipes and Filter * Blackboard * Domain-Driven Design
151
Was sind **Eigenschaften** von Architekturmuster der **Chaos zur Struktur** Kategorie?
* Organisation der Komponenten und Objekte eines Systems * Funktionalität wird in kooperierende Subsysteme aufgeteilt * Zu Beginn des Entwurfs werden Anforderungen analysiert * Berücksichtung von: Integrierbarkeit Wartbarkeit Änderbarkeit Portierbarkeit Skalierbarkeit
152
Was sind **Eigenschaften** von Architekturmuster der **Verteilte Systemen** Kategorie?
* Verteilung von Ressourcen und Diensten im Netzwerk * Kein zentrales System mehr * Gute Infrastruktur lokaler Netze
153
Welche **Architekturmuster** gehören zur Kategorie **Verteilte Systeme**?
* Serviceorientierte Architektur * Peer to Peer * Client Server
154
Was sind **Eigenschaften** von Architekturmuster der **Interaktive Systeme** Kategorie?
* Strukturierung von Mensch-Computer-Interaktionen * Gute Schnittstellen für Benutzer * Systemkern bleibt unangetastet von Benutzereingaben
155
Welche **Architekturmuster** gehören zur Kategorie **Interaktive Systeme**?
* Model View Controller (MVC) * Model View Presenter * Presentation Abstraction Control (PAC)
156
Was sind **Eigenschaften** von Architekturmuster der **Adaptive Systeme** Kategorie?
* Unterstützung der Erweiterung und Anpassungsfähigkeit von Systemen * Das System soll für Erweiterungen offen sein * Kernfunktionalitäten sollen unberührt bleiben
157
Welche **Architekturmuster** gehören zur Kategorie **Adaptive Systeme**?
* Mikrokernel * Reflexion * Dependency Injection
158
Was sind Anti-Patterns?
* Schlechte Lösungsmuster für bestimmte Probleme * Das Gegenteil eines Architekturmusters, aus dem man trotzdem lernen kann
159
Welche 4 Kategorien für Anti-Pattern gibt es?
* Projektmanagement Anti-Pattern * Architektur Anti Pattern * Code Smells * Organisations Anti Pattern
160
Was sind **Anti-Pattern** der Kategorie **Projektmanagement**?
* Blendwerk * Aufgeblähte Software * Feature Creep * Scrope Creep * Brooksches Gesetz * Death Sprint * Death March
161
Was sind **Anti-Pattern** der Kategorie **Architektur**?
* Big Ball of Mud * Gasfabrik * Gottobjekt * Innere-Plattform-Effekt * Spaghetticode * Sumo-Hochzeit
162
Was sind **Anti-Pattern** der Kategorie **Code Smells**?
* Zwiebel * Copy and Paste * Lavafluss * Magische Werte * Reservierte Wörter * Unbeabsichtigte Komplexität
163
Was sind **Anti-Pattern** der Kategorie **Organisation**?
* Wunderwaffe * Das Rad neu erfinden * Das quadratische Rad neu erfinden * Body Ballooning * Empire Building * Warme Leiche * Single Head of Knowledge
164
Was sind weitere **Anti-Pattern** der Kategorie **Organisation**?
* Management nach Zahlen * Vendor Lock-In * Design By Committee * Boat Anchor * Dead End * Swiss Army Knife
165
Was **beschreibt** das Anti-Pattern **Blendwerk** und **welcher Kategorie** gehört es an?
* Nicht fertige Funktionen werden als fertig dargestellt * Gehört zu Projektmanagement
166
Was **beschreibt** das Anti-Pattern **Aufgeblähte Software** und **welcher Kategorie** gehört es an?
* Bloatware meint, dass Software mit Funktionen überladen ist. * Software ist für Benutzer unübersichtlich und für Entwickler schwer wartbar * Gehört zu Projektmanagement
167
Was **beschreibt** das Anti-Pattern **Featurecreep** und **welcher Kategorie** gehört es an?
* Feature Creep bezeichnet es wenn Software ständig neue Anforderungen dazu bekommt. * Termine werden nicht eingehalten und Kosten steigen rasant * Gehört zu Projektmanagement
168
Was **beschreibt** das Anti-Pattern **Scope Creep** und **welcher Kategorie** gehört es an?
* Anwendungsbereiche werden ständig erweitert. * Termine werden nicht eingehalten und Kosten steigen rasant. * Gehört zu Projektmanagement
169
Was **beschreibt** das Anti-Pattern **Deathsprint** und **welcher Kategorie** gehört es an?
* Ein Deathsprint ist iterative Software, die viel zu kurze Zeitspannen hat. * Nach außen gibt es viele Releases und Versionen, aber die Qualität der Software nimmt mit jedem "erfolgreichen" Release ab. * Gehört zu Projektmanagement
170
Was **beschreibt** das Anti-Pattern **Death March** und **welcher Kategorie** gehört es an?
* Beim Deathmarch zieht sich ein Projekt ewig hin. * Kann auch bewusst gemacht werden um von Defiziten im Unternehmen abzulenken. * Man entwickelt solange vor sich hin, bis zwar nicht die Spezifikation eingehalten ist, aber es irgendwie als funktioniert bezeichnet werden kann. * Gehört zu Projektmanagement
171
Wie lautet das Brooksche Gesetz?
* Adding manpower to a late software project makes it later
172
Was **beschreibt** das Anti-Pattern **Big Ball of Mud** und **welcher Kategorie** gehört es an?
* Wenn eine Software keine Architektur besitzt. * Durch wenig Erfahrung, Bewuststein und Druck entsteht ein Ball aus Abhängigkeiten. * Gehört zu Architektur
173
Was **beschreibt** das Anti-Pattern **Gasfabrik** und **welcher Kategorie** gehört es an?
* Die Gasfabrik sind zu komplexe Entwürfe für simple Probleme * Gehört zu Architektur
174
Was **beschreibt** das Anti-Pattern **Gottobjekt** und **welcher Kategorie** gehört es an?
* Das Gottobjekt hat zentral den Großteil der Verantwortlichkeiten während die anderen Elemente nur Daten speichern oder anbieten. * Gehört zu Architektur
175
Was **beschreibt** das Anti-Pattern **Innere-Plattform-Effekt** und **welcher Kategorie** gehört es an?
* Der Innere Plattform Effekt tritt auf wenn ein System so konfigurierbar wird, dass ein eine Kopie der Plattform wird mit der es gebaut wurde. * Datenmodell verzichtet auf Datenbanktabelle und baut sie dann selber nach. * Gehört zu Architektur
176
Was **beschreibt** das Anti-Pattern **Spaghetti Code** und **welcher Kategorie** gehört es an?
* Spaghetti Code ensteht durch unstrukturierten Code ohne Objekorientierung oder Kontrolfluss * Gehört zu Architektur
177
Was **beschreibt** das Anti-Pattern **Sumo-Hochzeit** und **welcher Kategorie** gehört es an?
* Sumo-Hochzeit ist wenn z.B. viel Logik in PLSQL Datenbankprogrammiersprache ist. * Die Architektur wird dadurch sehr inflexibel * Gehört zu Architektur
178
Was **beschreibt** das Anti-Pattern **Zwievel** und **welcher Kategorie** gehört es an?
* Bei der Zwiebel werden neue Funktionalitäten um alte als Schicht gehüllt. * Oft wenn man Software weiterentwickelt die man nicht selber geschrieben hat und nicht alles versteht. * Gehört zu Code Smells
179
Was **beschreibt** das Anti-Pattern ***Cut-and-Paste Programmierung*** und **welcher Kategorie** gehört es an?
* Code wird redundant wiederverwendet * Sorgt für Wartungsprobleme * Lösung durch Refactoring * Gehört zu Code Smells
180
Was **beschreibt** das Anti-Pattern **Lavafluss** und **welcher Kategorie** gehört es an?
* Im Lavafluss liegt immer mehr toter Quellcode herum, Code wird drumherum oder hindurch geschrieben. * Gehört zu Code Smells
181
Was **beschreibt** das Anti-Pattern **Wunderwaffe** und **welcher Kategorie** gehört es an?
* Eine Wunderwaffe wird für alle Probleme genutzt. Man kennt nur Nägel. * Gehört zu Organisation
182
Was **beschreibt** das **Anti-Pattern Das Rad neuerfinden** und **welcher Kategorie** gehört es an?
* Beim Rad neu erfinden verschendet man Geld und Zeit anstatt vorhanden Lösungen zu nutzen. * Gehört zu Organisation
183
Was **beschreibt** das Anti-Pattern **quadratische Rad neu erfinden** und **welcher Kategorie** gehört es an?
* Man erfindet eine schlechte Lösung neu, obwohl eine gute besteht. * Gehört zu Organisation
184
Was **beschreibt** das Anti-Pattern **Body ballooning** und **welcher Kategorie** gehört es an?
* Body Ballooning ist wenn ein Vorgesetzter nur seine Macht erweitern möchte. * Daher zieht er evtl Arbeitsintensive Methoden den effizienten vor. * Gehört zu Organisation
185
Was **beschreibt** das Anti-Pattern **Empire Building** und **welcher Kategorie** gehört es an?
* Ähnlich wie Body Ballooning kann aber auch durch dauernde Anschuldigungen anderer geschehen. * Ex-Mitarbeiter wird die Schuld zu geschoben. * Gehört zu Organisation
186
Was **beschreibt** das Anti-Pattern **Warme Leiche** und **welcher Kategorie** gehört es an?
* Eine warme Leiche ist eine Person die keinen Beitrag mehr zum Projekt leitet. * Gehört zu Organisation
187
Was **beschreibt** das Anti-Pattern **Single Head of Knowledge** und **welcher Kategorie** gehört es an?
* Wenn das Wissen des Unternehmens in einem Kopf steckt. * Zu wenig Austausch zwischen Kollegen, kann auch angestrebt werden. * Gehört zu Organisation
188
Was **beschreibt** das Anti-Pattern **Management nach Zahlen** und **welcher Kategorie** gehört es an?
* Management nach Zahlen ist wenn Fokus auf Kosten gelegt wird anstatt Qualität. * Gehört zu Organisation
189
Was *beschreibt* das Anti-Pattern **Vendor Lockin** und **welcher Kategorie** gehört es an?
* Beim Vendor Lockin hängt man am einer proprietären Architektur, Hersteller etc fest. * Gehört zu Organisation
190
Was **beschreibt** das Anti-Pattern **Design By Comittee** und **welcher Kategorie** gehört es an?
* Design By Comittee ist wenn man es jedem recht machen möchte und es zu komplex wird. * Gehört zu Organisation
191
Was **beschreibt** das Anti-Pattern **Boat Anchor** und **welcher Kategorie** gehört es an?
* Boat Anchor ist eine Komponente ohne Nutzen * Gehört zu Organisation
192
Was **beschreibt** das Anti-Pattern **Dead End** und **welcher Kategorie** gehört es an?
* Dead End ist wenn eine eingekaufte Komponente nicht mehr unterstützt wird. * Gehört zu Organisation
193
Was **beschreibt** das Anti-Pattern **Swiss Army Knife** und **welcher Kategorie** gehört es an?
* Swiss Army Knife is wenn eine Komponente vorgibt alles zu können. * Gehört zu Organisation
194
Was ist das Layers Muster?
* Layers Muster trennt Architektur in Schichten bei den jede eine Unteraufgabe auf Abstraktionsebene realisiert. * Jede Schicht schützt die unteren Schichten vor direkten Zugriff durch höhere Schichten.
195
Für was ist das ISO/OSI Modell ein Beispiel?
* Für das Layers-Schichten Muster * In 7 Schichten aufgeteilt * Jede Schicht andere Aufgabe
196
Was sind Ziele beim Layers-Schichen Muster?
* Änderungen am Quellcode sollten wenig Ebenen betreffen * Schnittstellen stabil sein * Ebenen separat und austauschbar sein
197
Was sind Top-Down Anforderungen als dynamisches Verhalten des Layers-Schichten Muster?
* Anforderungen von Benutzer werden von oberster Schicht angenommen. * Anforderungen werden durch die Schichten nach unten geschickt.
198
Was sind Bottom-Up Anforderungen als dynamisches Verhalten des Layers-Schichten Muster?
* Die unterste Schicht empfängt das Signal und schickt es an die obersten weiter. * Die oberste Schicht sendet es an Benutzer.
199
Was sind Protokoll Stack Anforderungen als dynamisches Verhalten des Layers-Schichten Muster?
* Zwei n-Schichten Stacks kommunizieren miteinander. * Anforderung geht durch den ersten Stach runter und wird von zweiten Stack empfangen. * Jeder Stack hat sein eigenes Protokoll. (Beispiel TCP/IP)
200
Was sind die Vorteile von Layers-Muster?
* Wiederverwendung und Austauschbarkeit von Schichten * Einkapselung von Abhängigkeiten
201
Was sind die Nachteile von Layers-Muster?
* Geringe Effizienz * Mehrfache Arbeit (Fehlerkorrektur) * Definition richtige Anzahl Schichten
202
Wo wird das Layers-Schichten Muster genutzt?
* APIs * Datenbanken * Betriebssysteme * Kommunikation
203
Wofür eigenen sich Pipes und Filters?
* Eignet sich für Systeme die Datenströme verarbeiten. * Arbeitssschritte werden in Filter gekapselt und lassen sich beliebig anordnen oder trennen
204
Was nutzt das Pipes and Filter Muster?
* Kommandointerpreter von Unix * Ausgabe ist Eingabe für das nächste Werkzeug
205
Was tut ein Filter?
* Holt Eingabedaten * Wendet Funktionen darauf an * Liefert Ausgabedaten * Zwei aktive Filter sind durch eine Pipe verbunden, beide Filter arbeiten parallel
206
Wie kann ein Filter mit Daten interagieren?
* Daten anreichern * Daten verfeinern * Daten verändern
207
Wie kann ein Filter aktiv werden?
* Pipeline holt Daten aus Filter * Pipeline schickt Daten an Filter * Meisten Filter selber aktiv durch Daten holen oder schicken
208
Was macht eine Pipe?
* Eine Pipe verbindet Filter miteinander * Verbindet Datenquelle mit ersten und letzten Filter und der Datensenke
209
Wofür ist eine Pipe zuständig?
* Übermittelt Daten * Puffert Daten * Synchronisiert aktive Nachbarn
210
Wofür sind Datensenken und Datenquellen zuständig?
* Sind die Endstücke der Pipeline und Verbindung zur Außenwelt * Übermittelt Daten aus oder an Pipeline
211
Was ist eine aktive und passive Datenquelle?
* aktiv: Reicht Daten ein * passiv: wartet bis nächster Filter anfordert
212
Was ist der Vorteil von Pipes and Filters?
* Flexibilität durch Austausch/Entfernen von Filtern * Flexibilität durch Neuanordnung * Zwischendateien nicht nötig, aber möglich * Parallel Verarbeitung möglich
213
Was ist der Nachteil von Pipes and Filters?
* Die Kosten von Übertragung sind hoch * Überflüssige Konvertierungen zwischen Filtern * Fehlerbehandlung schwierig * Effizienzsteigerung durch Parallelisierung schwierig
214
Wann wird das **Blackboard Muster** angewandt?
* Bei Problemen ohne eindeutige Lösungsidee * z.B. Spracherkennung, Bildverarbeitung, Überwachungssysteme
215
Wie funktioniert ein Blackboard?
* Blackboard ist zentrale Datenstruktur * Agenten verarbeiten und generieren Wissen * Steuerung entscheidet welcher Agent neues Wissen korrekt erfasst hat und aktiviert nächsten Agenten
216
Wie geschehen Zugriffe von Agenten auf das schwarze Brett?
* Zugriff via Konnektoren * Konnektoren sind entkoppelt und austauschbar * Parallele Auführung von Agenten möglich
217
Was sind Eigenschaften eines Blackboard Systems?
* Das Verhalten ist nicht deterministisch und schwer prüfbar * Bei Bild, Ton, Sprache, Schrift wird oft nach nichtdeterministischen Lösungen gesucht
218
Was ist das Domain-Driven Design?
* Domain Driven Design ist eine Denkrichtung zur Steigerung von Produktivität bei komplexenen fachlichen Anforderungen
219
Auf welchen Annahmen basiert Domain Driven Design?
* Softwaredesign liegt an Fachlichkeit und Fachlogik * Entwurf komplexer Zusammenhänge sollte auf Domänenmodell basieren
220
Ist der Domain Driven Prozess an einen Entwicklungsprozess gebunden?
* Nicht direkt, aber an agiler Softwareentwicklung angelehnt * Setzt iteratives vorgehen und Zusammenarbeit zwischen Entwickler und Fachbereich voraus
221
Was ist ein Konzept des Domain Driven Designs?
* Das Einführen einer einheitlichen Sprache, welche die Fachlichkeit der Klassen und Methoden definiert *
222
In was unterscheidet das Domain Driven Design?
* Entitäten (Objekt durch Identität definiert "Person") * Wertobjekt (Objekt durch Wert definiert, oft unveränderlich und verteilbar "Konfiguration") * Aggregation (Zusammenfassung von Entitäten "Datenbanktransaktion") * Assoziation (Beziehungen zwischen zwei oder mehr Objekten) * Serviceobjekte (Zustandslose Klassen "API Wrapper") * Fachliche Ereignisse (Objekte mit komplexen dynamischen Änderungen) Module (teilen in fachliche Bestandteile) * Fabriken (Fachobjekhersteller) * Repositories (Suche nach Fachobjekten und Zugriff von Fachlogik getrennt, stellt Objekte bereit.
223
Was bedeutet Evolvierende Struktur im Domain Driven Design?
* Große Strukturen sollten sich erst über die Zeit entwickeln * Große Strukturen möglichst einfach umsetzen
224
Was ist die Systemmetapther im Domain Driven Design?
* Die Systemmetapher gehört zum Extreme Programming * System wird mittels für jeden verständliche Alltagsgeschichte erklärt
225
Wie sind die Verantworlichkeitsschichten im Domain Driven Design?
* Entscheidungsschicht * Regelschicht * Zusagen * Arbeitsabläufe * Potential
226
Was sind Erweiterungsframeworks im Domain Driven Design?
* verschiedene Systeme über Komponenten Framework verbinden
227
Wie geht Domain Driven Design vor?
* Gibt Regel der Vorgehensweise vor * Ist gut wenn mehrere Teams in verschiedenen Management und Fachlichkeiten im selben Projekt arbeiten
228
Was ist die Kontextübersicht im Domain Driven Design?
* Gemeinsame Übersicht aller Modelle, Grenzen, Schnittstellen * Kontexte bleiben seperat und verwachsen nicht ineinander
229
Was sind die Kontextgrenzen im Domain Driven Design?
* Definieren die Grenzen eines Kontexts in Teamzuordnung, Datenbankschema, Verwendung
230
Was beschreibt die **Kernfachlichkeit** im **Domain Driven Design**?
* Meist genutzer Teil des Domänenmodells * Kernfachlichkeit hat höchste Priorität und sollte wichtigsten Entwickler erhalten
231
Was ist ein geteilter Kern im Domain Driven Design?
* Ein Teil der Fachlichkeit der zwischen Projektteilen geteilt wird * Geteilter Kern wird durch unterschiedliche Teams gemeinsam entwickelt
232
Was ist "**Kunde Lieferant**" im **Domain Driven Design**?
* Beziehung im Projekt bei denen ein Team die Fachlichkeit umsetzt und das andere Team darauf aufbaut.
233
Was ist ein **separierter Kern** im **Domain Driven Design**?
* Kern auch bei enger Kopplung in ein eigenständiges Modul zu legen * Kern soll vor Komplexität und Unwartbarkeit geschützt werden
234
Was sind **generisiche Sub Fachlichkeiten** im **Domain Driven Design**?
* Teile des Domänenmoduls die nicht Kernfachlichkeit sind in generische Modellen in eigene Module zu legen * Können outgesourced entwickelt oder durch gekaufte Software ersetzt werden
235
Was ist Continious Integration im Domain Driven Design?
* Alle Veränderungen im Domänenmodell werden laufend miteinander integriert und automatisiert getestet
236
Was ist die Quintessenz von Domain Driven Design?
* Sehr komplexe Domänenlogik kann einfach modelliert werden * Systeme werden besser entkoppelt und wartbar
237
Was ist Serviceorienterte Architektur(SOA)?
* Ein Paradigma für Strukturierung und Nutzung verteilter Funktionalität von unterschiedlichen Benutzern verantwortet * SOA orientiert sich an Geschäftsprozessen * Geschäftsprozesse sind Grundlage für Serviceimpementierung * Applications werden hinter standardisierten Schnittstellen verborgen
238
Was ist das Ziel von Serviceortientierten Architektur? (SOA)
* SOA soll IT Systeme strukturiert und zugänglich machen * SOA
239
Was ist ein Beispiel für Geschäftsprozesse in Serviceorientierte Architektur (SOA)?
* "Vergib einen Kredit" * "Eröffne Konto" * "Kreditvertrag"
240
Wie können in der Serviceorientierten Architektur (SOA) abstraktere Services erstellt werden?
* Durch Zusammensetzen aus niedrigen Services können flexibel komplexere Service geschaffen werden * IT Systeme sollten komplexe Dienste anbieten nicht einzelne Berechnungen oder Abfragen.
241
Wie werden Serviceorientierte Architekturen oft angeboten und wie kommunizieren sie?
* In der Coud oder im Internet * Kommunikation über REST, XML
242
Was ist einem Nutzer einer Serviceorientierten Architektur (SOA) über das System bekannt?
* Welche Dienste es gibt * Welche Eingaben und Ergebnisse er bekommt * Er weiß nicht wie das Ergebnis berechnet wurde
243
Was ist ein Dienst in einer Serviceorientierten Architektur (SOA)?
* Dienst repräsentiert eine fachliche Funktionalität * Dienst ist abgeschlossen und eigenständig * Dienst ist im Netzwerk verfügbar * Dienst hat wohldefinierte öffentliche Schnittstelle * Dienst ist plattformunabhängig und erreichbar über verschiedene Plattformen/Sprachen
244
Was sind die **Vorteile** Serviceorientierter Architektur(SOA)?
* Agiles System kann sich schnell verändern * Kosten gering durch Wiederverwendung * Hohe Leistung, Skalierbarkeit * Kann schnell gebaut werden
245
Was sind die **Nachteile**Serviceorientierter Architektur(SOA)?
* Oftmals überschätzt, da im Trend * Höherer Aufwand als alte Systeme * SOA Code ist komplexer * SOA Entwickler müssen sehr hohes Wissen haben * Unternehmer wird an Entwickler gebunden
246
Was ist ein Peer To Peer Netzwerk?
* Alle Computer sind gleichberechtigt, können Dienst bereitstellen oder nutzen *
247
Wie funktioniert ein Peer To Peer Netzwerk?
* Teilnehmer werden in Gruppen eingeteilt nach Qualifikation * Beste Computer des Netzwerkes bilden ein Overlay-Netz und stellen Suchfunktionen bereit
248
Was ist ein strukturiertes Peer To Peer Netzwerk? Was ist ein unstrukturiertes Peer To Peer Netzwerk?
* **strukturiert:** Verantwortlichkeit für jedes Objekt ist mindestens einem Peer zugeteilt * **unstrukturiert:** Objekte haben keine Zuordnung im Netzwerk
249
Wie werden Daten im Peer To Peer Netzwerk übertragen?
* Wenn Objekt durch Peer gefunden und gespeichert wird die Datei von Peer To Peer übertragen * Verteilungsstrategien können z.B. über BitTorrent sein
250
Was sind Eigenschaften eines Peer To Peer Netzwerkes?
* Gleichberechtigung in Bandbreite, Rechenkraft, Uptime * Verfügbarkeit und Qualität von Peers ist keine Voraussetzung * Peer bieten Dienste an und nehmen sie in Anspruch * Peer haben Autonomie * P2P ist selbtorganisierend
251
Was sind die Vorteile eines Peer To Peer Netzwerkes?
* Alle Computer sind gleichberechtigt * Kostengünstig, da keine Server * Kein zentraler Server notwendig * Benutzer verwalten sich selbst * Keine Hierarchie
252
Was sind die Nachteile eines Peer To Peer Netzwerkes?
* Schwer zu administrieren * Auf kein Peer ist Verlass
253
Was tut das **Client Server Modell**?
* Verteilt Aufgaben und Dienstleistungen im Netzwerk
254
Was tun **Client,** **Server** und **Dienste** im **Client Server Modell**?
* Client kann Dienst von Server anfragen * * Server beantwortet Anfragen * Server bietet Dienst an * Server kann für mehrere Clients arbeiten
255
Was sind Eigenschaften im Client Server Modell?
* Kommunikation zwischen Client und Server abhängig von Dienst * Dienst bestimmt welche Daten ausgetauscht werden * Server ist passiv und wartet * Clients und Server können auf gleichen oder verschiedenen Rechner laufen * Server kann zu einer Gruppe von Servern werden
256
Was sind die **Vorteile** des Client Server Muster?
* Hohe Skalierbarkeit * Einheitliches Finden von Objekten
257
Was sind die **Nachteile** des Client Server Muster?
* Server muss immer erreichbar sein * Server muss Datenverlust gesichert sein
258
Was sind **Architekturmuster** der Kategorie **Interaktive Systeme**?
* Model View Controller (MVC) * Model View Presenter * Presentation Abstraction Control (PAC)
259
Was ist das **Model View Controller Muster** (MVC) und woraus besteht es?
* Ist eine spezielle Version des Layer Muster * Besteht aus: * *Model** (Datenspeicherung und Zugriff) * *Controller** (Programmlogik) * *View** (Darstellung für Benutzer)
260
Wie sieht ein Ablauf eines Model View Controller Musters aus?
261
Warum benutzt man das Model View Controler Muster (MVC)?
* APIs müssen oft geändert werden * Daten sollen unterschiedlich dargestellt werden * Verschiedene APIs anbieten ohne Kern zu ändern
262
Was tut das **Model** im Model View Controler Muster?
* Kapselt Daten und Funktionalität * Ist unabhängig von Darstellungen oder Eingaben * Model enthält die Kernfunktionalitäten der Anwendung
263
Was tut das **View** im Model View Controler Muster?
* Sicht zeigt Benutzer Infos an * Es kann mehrere Sichten geben
264
Was tut der **Controller** im Model View Controller Muster?
* Controller verarbeitet Eingaben und ruft Dienste auf * Controller ist Sicht zugeordnet * Es kann mehrere Controller geben
265
Was ist der Vorteil des Model View Controller Muster?
* Mehrere Views für ein Modell * Synchronisation von Views * Austauschbarkeit von Views und Controller * Gut für Frameworks
266
Was ist der **Nachteil** des Model View Controller Muster?
* Hohe Komplexität * Oft aktualisieren * Ineffizienter Zugriff auf Datenmodell * Starke Kopplungen Model - View und Model - Controller
267
Was ist das **Model View Presenter Muster**?
* Hervorgegangen aus MVC, jedoch Model und View über Presenter getrennt * Komponenten streng getrennt
268
Wie sieht ein Model View Presenter (MVP) Muster aus?
269
Wie macht das **Model** im Model View Presenter (MVP) Muster?
* Stellt Logik für Ansicht dar * Model muss alle Funktionalitäten anbieten * Steuerung vom Model nur durch Presenter * Model kennt keine View und kein Presenter
270
Wie macht die **View** im **Model View Presenter (MVP)** Muster?
* Enthält keine Logik * Nur Darstellung für Ein und Ausgaben * Kein Zugriff auf Presenter oder Model * Ganze Steuerung geschieht durch Presenter
271
Wie macht der **Presenter** im Model View Presenter (MVP) Muster?
* Verbindet und steuer Model und View * Bringt View zum funktionieren
272
Was sind **Bedingungen** im Model View Presenter (MVP) Muster?
* Model und View eigene Schnittstellen * Schnittstellen definieren den exakten Aufbau der Schichten * Presenter verknüpft die Schnittstellen
273
Was ist der **Vorteil** des Model View Presenter (MVP) Muster?
* Mehrere Sichten des gleichen Modells * Synchronisation aller Views * Austausch und Wiederverwendbar * Gute Testbarkeit der Views
274
Was ist der **Nachteil** des Model View Presenter (MVP) Muster?
* Hohe Komplexität * Oft Aktualisieren * Ineffizienter Datenzugriff auf Modell * Komplex umsetzbar
275
Was ist das Presentation Abstraction Control Muster (PAC)?
* System ist aus vielen eigenständigen Einzelsystem zusammengesetzt für hohe Flexibilität * Einteilung in Presentation, Abstraction, Control * Hierarisch in Agenten die Teile erledigen aufgeteilt * Für größere Systeme
276
Was tun Agenten im Presentation Abstraction Control (PAC) Muster?
* Stellen erste Stufe für Strukturierung der Architektur dar * Alle Anforderungen werden auf Agenten zugeteilt * Hierarische Struktur * Jeder Agent wird in Presentation, Abstraction und Control aufgeteilt
277
Wie sind die **Hiearchien der Agenten** im Presentation Abstraction Control (PAC)?
* **Top Level Agent (Nur einer!):** Globale Aufgaben wie Datenbankzugriff * **Intermediate Level Agent:** Strukturiert die Bottom Level Agenten in Teilsysteme * **Bottom Level Agent:** abgeschlossene Aufgaben
278
Wie sind Agenten im Presentation Abstraction Control (PAC) Muster aufgeteilt?
* Jeder Agent ist in drei Komponenten strukturiert * Dabei muss er nur Datenmodell und Benutzerschnittstelle liefern, den Rest kann er implementieren * Presentation für Benutzeroberfläche, Ein und Ausgabe * Abstraction für Datenmodell * Control für Verbindung der Komponenten und Kommunikation mit anderen Agenten
279
Wie sind die **Vorteile** des **Presentation Abstraction Control (PAC)** Muster?
* Zerlegung des Systems in semantische getrennte Teile * Erweiterbarkeit durch neue Agenten * Wartbarkeit gut durch interne Struktur der Agenten
280
Wie sind die **Nachteile** des **Presentation Abstraction Control (PAC)** Muster?
* Hohe Komplexität von System und Steuerung * Hohe Koordination/Kommunikation der Agenten
281
Was sind **Muster** der Kategorie **Adaptive Systeme**?
* Mikrokernel * Reflexion * Dependency Injection
282
Was ist ein **Mikrokernel** Muster?
* Mikrokernel bietet Basis für Erweiterungen und sorgt für Zusammenarbeit * Dynamische Änderung von Systemanforderungen zur Laufzeit
283
Was sind Beispiele für **Mikrokernel**?
* SymbianOS * Minix Kernel
284
Was sind Beispiele für Monolithische Kernel?
* Linux * Android * Windows
285
Was sind Beispiele für **Hybridkernel**?
* MacOS
286
Was sind die **Vorteile** des **Microkernels**?
* Austauschbarkeit der Komponenten * Sicherheit, da Treiber im Benutzermodus * Skalierbarkeit * Zuverlässigkeit * Transparenz
287
Was sind die **Nachteile** für **Mikrokernel**?
* Leistung * Komplexität
288
Wie wähle ich das richtige Architekturmuster aus?
xxxx
289
Wie können Architekturen dokumentiert werden?
* Durch die Nutzung von Templates wie: Arc42 Normen Software Guidebook
290
Was ist arc42?
* Ein Template für Dokumentationen aus der Praxis und Erfahrung vieler Architekten * Besteht aus definierten Inhaltsverzeichnis, welches man abarbeitet
291
Was ist Inhalt des Inhaltsverzeichnis von arc42?
1. Einführung und Ziele: Aufgabe, Qualität, Stakeholder 2. Randbedingungen: Technische, Organisatorische, Konventionelle Einschränkungen 3. Kontextabgrenzung: Fachlich, Technisch 4. Lösungsstrategie: Wie funktioniert die Lösung? 5. Bausteinsicht: Struktur des Systems 6. Laufzeitsicht: Wie funktionieren Bausteine zur Laufzeit zusammen? 7. Verteilungssicht: Welche Hardware betreibt die Bausteine? 8. Querschnitt Konzept und Muster: Muster, Strukturen, Konuepte, Nutzung und Anleitung für Technologien 9. Entwurfsentscheidungen 10. Qualitätsszenarien: Konkrete Szenarien von Qualität 11. Risiken: Liste Priorisierter Risiken 12. Glossar: Wichtigste Begriffe
292
Was sind die IEEE Standards?
* Sind von einem Amerikanischen Komittee entwickelt worden * Definieren und Spezifizieren LAN, WLAN etc * IEEE 830-1998 spezifiert Software mit Lasten und Pflichtenheft
293
Was ist das **Software Guidebook** zur Software Dokumentation?
* Ein Template von Simon Brown * Es geht darum um praktische Informationen: Karten Sichten Geschichte Praktische Informationen!
294
Was ist der Inhalt des **Software Guidebooks**? | (Nicht wichtig!)
1. **Context:** Was bauen wir, warum, wie passt es in systeme, wer benutzt es? 2. **Functional Overview:** Hauptfunktionen Was tut es, welche use cases sind wichtig?, Informationsflüsse? 3. **Quality Attributes:** Qualitätsattribute (Performanz, Skalierbarkeit, Verfügbarkeit, Sicherheit, Erweiterbarkeit, Flexibilität, Wartbarkeit ..)? Klares Verständnis? Sind die Attribute Messbar, spezifisch, erreichbar, relevant, umsetzbar? was ist unrealistisch? 4. **Constraints:** Es gibt im echten Leben immer Einschränkungen. (Zeit, Budget, Technologien, Standards, Protokolle, Größe des Teams, Erfahrung, Politisch, Lizenzen) 5. **Principles:** Schichten-Strategie, Keine Logik in GUI, Kein Datenbankzugriff in GUI, Dependency Injection, Hohe Kohäsion, geringe Kopplung 6. **Software Architecture:** 7. **External Interfaces:** 8. **Code** 9. **Data** 10. **Infrastructure Architecture** 11. **Deployment** 12. **Operation and Support** 13. **Development Environment**
295
Was ist das Framework **NodeJS**?
* Serverseitige Plattform für Netzwerk Anwendungen * Seit 2009 Google Chrome JavaScript Engine * Soll schnell, verlässlich und skalierbar sein * Evenbezogen, Input Output ohne Blockaden * Gut für echtzeitdaten * Große Library * Node.JS = Runtime Environment + Javascript Library * Genutzt von Ebay, Microsoft, Paypsal etc
296
Was sind Feature von NodeJS?
* Asynchron und Even Driven * Sehr schnell * Single Threaded aber hoch skalierbar * Kein Buffering * MIT License
297
Wann sollte man NodeJS benutzen?
* IO gebundene Applikationen * Data Streams * Echtzeit Programme * JSON APIs * Single Pager
298
Was sind die Grenzen von NodeJS?
* CPU intensive Applikationen
299
Was ist **Angular JS**?
* Clientseitiges JavaScript Webframework für Single Page Websites nach dem Model View View Model Muster * Benutzt jQuery * Validierung von Eingabeformularen möglich
300
Was sind die Vorteile von AngularJS?
* Testbarkeit * Refaktorisierung * Wiederverwendbarkeit * Javascript Datentypen
301
Was sind die **Nachteile** von AngularJS?
* Nur Clientside * Performance * Sehr komplex
302
Was ist **Advanced Message Queuing Procol (AMQP)**?
* AMQP ist ein quelloffenes Netzwerkprotokoll für Message orientierte Middleware * AMQP ist programmiersprachen unabhängig und JMS kompatibel
303
Was ermöglicht AMQP?
* Messaging bringt Skalierung * Anwendungen verbinden sich wie Komponenten eines größeren Systems * Messaging is asynchron
304
Wann sollte man AMQP benutzen?
* Datenübertragung * Push Benachrichtigung * Asynchrone Datenverarbeitung
305
Was ist **Twitter Bootstrap**?
* Freies HTML/CSS Framework * Für Schriften, Forumulare, Buttons, Tabellen etc. * Verwendet HTML5 * Mobile first Grundgedanke * Browserunabhängigkeit * Arbeitet mit Containern im Grid System
306
KLAUSUR: Wie entsteht Architektur?
* Architektur entsteht in Zyklen durch iteratives Vorgehen
307
KLAUSUR: Was bedeutet Softwarekrise?
* Der Punkt, an dem Software teurer als Hardware wurde * Rechner kosteten Millionen und Software wenig, dann ist es gekippt
308
KLAUSUR Was lief an Projekten wie IBM OS/360 schief?
* Wegen der Softwarekrise wurde es extrem verschätzt. * Das Projekt zog sich immer weiter, wurde immer teurer und keine Einnahmen enstanden, da es nicht fertig wurde
309
KLAUSUR Welche Arbeitsmodelle wuren zuerst entwickelt und warum abgelöst?
Das Wasserfall und VModell wurde zuerst entwickelt, aber dann als die Software zu komplex dafür wurde durch agile Methoden abgelöst.
310
311
312
313
314
315