M1 Flashcards

1
Q

Welche Architekturprinzipien sehen Sie in folgendem Klassendiagramm verletzt?

A
  • Vermeide zyklische Abhängigkeiten
  • Interface Segregation Principle
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wie hängt die Verteilungssicht im SAD mit der Bausteinsicht zusammen?

A
  • Die Verteilungssicht beschreibt die Verteilung der Bausteine auf physische Ressourcen.
  • Die Bausteinsicht legt die interne Struktur und Abhängigkeiten der Bausteine fest.
  • Beide Sichten sind eng miteinander verbunden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Nachfolgend ist schematisch ein verteiltes System in 2 Varianten dargestellt. Die Komponenten des Systems wurden in der 2. Variante zur Laufzeit entkoppelt, durch die Kommunikation über eine asynchrone Middleware (Messaging).
Welche der Antworten sind zutreffend?

A
  • Die Pufferung in der asnychronen Middleware kann beim Umgang mit kurzzeitigen Last-Spitzen helfen
  • Durch die Entkopplung darf erwartet werden dass sich die Verfügbarkeit des Systems erhöht
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Welches sind Teile eines strukturierten Vorgehens beim Entwurf einer Software-Architektur?

A
  • Systemidee mit Stakeholdern validieren
  • Überprüfung von Risiken mittels Prototypen
  • Resultate immer wieder vorstellen und im Team besprechen
  • Nach Grundsätzen & Prinzipen entscheiden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welches sind geeignete Mittel um Architektur-Dokumentation aktuell zu halten

A
  • Eher dokumentieren “Warum” es etwas so entworfen wurde als “Wie” es umgesetzt wurde
  • Aktualisierung früh in den Prozess einbinden
  • Entscheide festhalten mit Varianten, Annahmen und Zeitpunkt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welches sind Mittel um Architekturarbeit im agilen / iterativen Kontext einzubetten?

A
  • Automatisierung von Dokumentation und Governance
  • Qualitätsstories im Backlog einplanen
  • Früh Feedback einholen
  • Risikogetrieben priorisieren
  • Mit einem Walking Skeleton Architekturkonzepte verifizieren
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was benötigen Sie zum Erstellen einer Zerlegung in Komponenten?

A

Anforderungen und Randbedingungen

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

Das Anforderungskonzept verlangt eine pro Monat bewertete Verfügbarkeit eines Systems von 99.0%.
Wieviele Minuten darf das System pro Monat maximal ausfallen (Monat = 30 Tage)?

A

432

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

Welche dieser Punkte sind spezifische Herausforderungen des Loggings in verteilten Systemen?

A
  • Korrelation der Log-Einträge zwischen Systemen
  • Einfluss auf Performance durch Streaming der Logs übers Netzwerk
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie hilft ein “Walking Skeleton” dabei, die Architektur zu entwicklen?

A

Ist eine Teil-Implementation des Systems welches die aus Architektursicht wesentlichen Komponenten beinhaltet und ermöglicht so die
Architekturvision früh zu validieren

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

Was sind die Auswirkungen wenn eine Komponente eine geringe interne Kohäsion hat? Begründen Sie (mind. 2 Auswirkungen).

A
  • Schwierigkeiten bei der Wartung und Erweiterung
  • Beeinträchtigung der Wiederverwendbarkeit
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was verstehen Sie unter “Anti-Zähigkeit”?

A

Ein System braucht neben Robustheit auch die Fähigkeit, von Störungen oder Veränderungen profitieren zu können und dadurch stärker zu werden.

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

Geben Sie zwei Gegenbeispiele davon: Wie und warum Sie als Architekt/in die Wahrscheinlichkeit dafür verringern dass das Architektur-Konzept im Entwicklungs-Team eingehalten wird.

A
  • Mangelnde Kommunikation und Dokumentation
  • Fehlende Schulung und Unterstützung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welche dieser UML-Diagrammtypen zeigen eine Laufzeitsicht?

A
  • Sequenzdiagramm
  • Aktivitätsdiagramm
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Worauf müssen sie achten bei Caching in der Persistenz-Schicht? Nennen Sie 2 Punkte.

A
  • Muss bei Änderungen aktualisiert werden (Data Freshness)
  • Erhöht Speicherverbrauch
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie erklären Sie ihrer/ihrem Vorgesetzten warum es sich lohnt, für ein neu aufzubauendes Software-Produkt Aufwände in die Software-Architektur zu investieren? Begründen Sie.

A
  • Schafft Qualität
  • enthält bewusste Kompromisse und Entscheidungen
  • hat zum Ziel, die funktionalen und nicht-funktionalen Anforderungen an ein System zu erfüllen
17
Q

Wo fokussieren Sie ihre Architekturaufwände?

A
  • Wo ich Risiken erwarte
  • Auf komplexe Teilbereiche des Systems
18
Q

Warum enthält ein SAD eine Bausteinsicht?

A

Die Bausteinsicht bildet die Aufgaben des Systems und die nicht-funktionalen Anforderungen auf Bausteine ab.

19
Q

Was sind die wesentlichen Elemente einer Bausteinsicht?

A
  • Bausteine
  • Beziehungen und Abhängigkeiten
  • Schnittstellen
  • Hierarchie und Struktur
  • Verantwortlichkeiten
  • Annotationen und Beschreibungen
20
Q

Wie gehen Sie vor beim Entwurf der Bausteinsicht?

A
  • Von der Systemidee / Architekturvision ausgehen
  • Elementen und Begriffe der Fachdomäne verwenden
  • Einflussfaktoren und Randbedingungen berücksichtigen
  • Architekturmuster und Referenzarchitekturen einsetzen
  • Pragmatisch und redundanzfrei verfeinern: So viel als durch die Komplexität gerechtfertigt ohne Trivialitäten zu modellieren
  • 60% - 80% der Zeit werden in diese Sicht investiert
21
Q

Welche dieser Arten von Änderungen werden durch eine Schichten-Architektur gut gekapselt resp. haben eine begrenzte Auswirkung auf die
Applikation?

A
  • Anpassung der Authorisierungs-Art einer angebundenene Schnittstelle
  • Migration der Messaging-Technologie von IBM MQ auf Apache Kafka
  • Persistenz-Framework austauschen
22
Q

Welches davon sind Beispiele für Komplexitätstreiber einer Softwarearchitektur?

A
  • Hohe Qualitätsanforderungen
  • Es wird zum ersten Mal eine Document-Store-Datenbank als Persistenz-Technologie eingesetzt
  • Sehr viele zu integrierende externe Systeme
23
Q

Kontext
* Ein System wird auf zwei redundanten Hosts betrieben. Beim Ausfall des einen Hosts kann der andere sofort übernehmen.
* Die Datenbank wird aus Sicht des Systems extern betrieben, als eine Instanz welche gemeinsam von beiden Hosts verwendet wird. Diese
Datenbank weist eine Verfügbarkeit von 98% auf.
* Andere Systemkomponenten wie z.B. das Netzwerk werden nicht berücksichtigt
* Die Anforderungen verlangen dass das Gesamtsystem eine Verfügbarkeit von mindestens 97% erreicht.
Frage
* Welche Verfügbarkeit in Prozent (Ganzzahl reicht) müssen die beiden einzelnen redundanten Hosts je mindestens haben um die geforderte
Verfügbarkeit des Gesamtsystems zu erreichen?

A

90%

24
Q

Nannen Sie 3 organisatorische Einfussfaktoren auf eine Softwarewarchitektur. Begründen Sie jeweils warum & in welcher Weise diese die Architektur
beeinflussen.

A
  • Unternehmenskultur: Die Unternehmenskultur kann die Softwarearchitektur beeinflussen, indem sie die Akzeptanz neuer Technologien und innovativer Architekturen fördert oder einschränkt.
  • Organisationsstruktur: Die Organisationsstruktur kann die Softwarearchitektur beeinflussen, indem sie die Zusammenarbeit, Kommunikation und Entscheidungsfindung zwischen den Architektenteams und anderen Stakeholdern beeinflusst.
  • Managemententscheidungen: Entscheidungen des Managements können die Softwarearchitektur beeinflussen, indem sie die Ressourcenallokation, Prioritäten und den Umfang von Architekturinitiativen bestimmen.
25
Q

Welches Rollenmodell erachten Sie in folgendem Kontext als am besten geeignet:
* Unternehmen ist sich gewohnt, mit agiler Methodik zu arbeiten
* Grösseres Produkt, mit vielen externen Abhängigkeiten, aber relativ klaren Zielen
* Dynamisches Umfeld welches den Teams viel Freiheit lässt
* 1:1-Ablösung eines existierenden Produktes, aber mittels neuer Technologien
* Architektur-Blueprint / Technologie-Stack in der Entstehung begriffen
* Entwicklungsteam ist über 3 Standorte verteilt, hat noch wenig Erfahrung, ist aber bereit Verantwortung zu übernehmen

A

Unterstützender Architekt / Unterstützende Architektin

26
Q

Nennen Sie 3 Gründe warum Schnittstellen besondere Beachtung verdienen beim Entwurf einer Software-Architektur

A
  • Interoperabilität: Schnittstellen ermöglichen die Interaktion und den Austausch von Daten und Funktionen zwischen verschiedenen Systemen, Komponenten oder Modulen, was die Interoperabilität und Integration erleichtert.
  • Flexibilität und Erweiterbarkeit: Durch die Verwendung von Schnittstellen können verschiedene Komponenten unabhängig voneinander entwickelt und ausgetauscht werden, wodurch die Flexibilität und Erweiterbarkeit der Softwarearchitektur erhöht wird.
  • Testbarkeit und Wartbarkeit: Schnittstellen ermöglichen eine klar definierte Schnittstelle zwischen Komponenten, was zu einer besseren Testbarkeit und Wartbarkeit führt, da Änderungen oder Upgrades an einer Komponente die anderen Komponenten nicht beeinflussen sollten, solange die Schnittstelle erhalten bleibt.
27
Q

Nennen Sie 3 unterschiedliche Eigenschaften einer externen Schnittstelle welche für Sie als Architekt/in wichtig sind

A
  • Stabilität und Abwärtskompatibilität
  • Dokumentation und Verständlichkeit
  • Sicherheit und Zugriffskontrolle
28
Q

Warum denken Sie hat eine hohe Änderungsrate einen Einfluss auf die Architektur eines Systems

A

Eine hohe Änderungsrate hat einen Einfluss auf die Architektur eines Systems, da sie eine flexible, erweiterbare und modularisierte Architektur erfordert, um Änderungen effizient zu bewältigen und die Stabilität des Systems zu gewährleisten.

29
Q

Nennen Sie zwei Möglichkeiten um die Architektur eines Systems so zu gestalten dass die Architektur über eine längere Lebensdauer häufige
Änderungen gut unterstützt

A
  • Modularität und lose Kopplung
  • Verwendung von Designprinzipien und Mustern
30
Q

Was ist die Aussage der Kontextabgrenzung im SAD nach arc42?

A

Die Kontextabgrenzung im SAD nach arc42 beschreibt den systemischen Kontext der Softwarearchitektur, indem sie die externen Systeme und Benutzergruppen identifiziert und deren Interaktionen mit dem System festlegt.

31
Q

Wie ist die Kontextabgrenzung aufgebaut?

A
  • Externe Systeme
  • Benutzergruppen
32
Q

Was ist der Unterschied zwischen der technischen und der fachlichen Kontextabgrenzung

A

Die technische Kontextabgrenzung fokussiert sich auf die technischen Aspekte der Interaktion, während die fachliche Kontextabgrenzung den Fokus auf die Geschäftslogik und die funktionalen Anforderungen legt. Beide sind wichtig, um den systemischen Kontext der Softwarearchitektur vollständig zu verstehen und zu beschreiben.