Introduction Flashcards

1
Q

Ist Architektur ein fortlaufender Prozess?

A

Ja

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

Ist Architektur auch vor der Entwicklungsphase relevant?

A

Ja

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

Welche Aspekte beeinflussen Architektur?

A
  • Funktionale / nicht Funktionale Anforderungen
  • Budget
  • Erfahrung der Beteiligten
  • Verfügbare Technologie
  • Bereits existierende Implementierung
  • Vorhandene Frameworks und Libraries
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ist die Entwicklung von Architektur iterativ?

A

Ja (wir verbessern kontinuierlich)

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

Was ist ein Ball of Mud?

A

Ein Antipattern

Ball of Mud beinhaltet keine Architektur

Im Prinzip: Spaghetti Code, zusammengeschustert

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

Was ist eine Layered Architektur?

A
  • Standard Pattern für JAVA EE
  • Besteht aus
    • Presentation Layer
    • Business Layer
    • Persistence Layer (oft zusammengefasst mit Business)
    • Database Layer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist Komponentenbasierte Architektur (CBA)?

A

React, Vue

Komponente (View) beinhaltet auch Logik und Helper Methoden

Beispiel: HTML, JavaScript und CSS in einer Komponente

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

Was ist vertikales skalieren?

A

Wir haben einen Server

Für diesen wird die Hardware verbessert oder dieser durch einen stärkeren ersetzt

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

Was ist horizontales skalieren?

A

Mehrere Server

Die Last verteilt sich auf verteilte Systeme

Meist günstiger

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

Was ist verteilte Architektur?

A

Konfiguration und Funktionalität wird über mehrere Systeme verteilt

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

Vorteile der verteilten Architektur?

A
  • Skalierbarkeit
  • Nebenläufigkeit
  • Fehlertoleranz (Ausfallsicherheit)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Nachteile der verteilten Architektur?

A
  • Komplexität
  • Sicherheit
  • Wartung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Welche Synchronisations Architekturen gibt es?

A
  • Synchron / Lokal
  • Synchron / Remote
  • Asynchron / Lokal
  • Asynchron / Remote
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist eine Product Line?

A

Selbe Anwendung aber

  • verschiedene Features
  • verschiedene Interfaces

Beispiel. WolframAlpha (free, paid)

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

Was ist ein Product Family?

A

Selbe Architektur aber

  • verschiedene Prozesse
  • verschiedene Abstraktionen

Beispiel: Websystem für Banken und Versicherungen

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

Welche Aufgaben hat ein Software Architekt?

A
  • Analyse der Anforderungen
  • Auswahl der Sprachen, Tools und Komponenten
  • Umsetzung der Architektur
  • Überwachung des Übergangs zwischen Entwicklungsphasen
17
Q

Welche Teamstruktur gibt es?

A
  • Projektmanager
  • Softwarearchitekt
  • Entwickler
  • (Tester, Deployer, Performance Spezialist)
18
Q

Was macht der Projektmanager im Team?

A
  • Organisation
  • Fortschritt im Auge behalten
  • Kostenkontrolle
  • Human Ressource
  • Kommunikation mit oberem Management / Kunden
19
Q

Was macht der Softwarearchitekt im Team?

A
  • Verantwortlich für Code und Architektur Qualität
  • Wählt die passenden Technologien
  • Kommuniziert mit Experten auf Kundenseite
  • Schätzt Kosten
  • Vergibt Aufgaben an Entwickler
20
Q

Unterschied Layer und Components?

A
  • Layer splitten Funktionalitäten auf.
  • Layer können mehrere Komponenten beinhalten.
  • Komponenten sind ein Konstrukt, die die gesamte Logik beinhalten.
21
Q

Beispiel für eine Plugin Architektur?

A

In-App Käufe für eine App

22
Q

Beispiel für verteilte und persistente Architektur?

A

Server Backend um Daten in einer Cloud zu speichern