04 - Entwurf von Software Flashcards
Systemarchitektur beeinflußt: (5)
1) Performance des Systems
2) Security des Systems
3) Safety des Systems
4) Verfügbarkeit des Systems
5) Wartbarkeit des Systems
Definition: Softwaredesign
Nicht nur die Gestaltung der Benutzeroberfläche, sondern auch schon Datenstrukturen, Abläufe und Architektur- und Strukturentscheidungen.
Definition: Verteilte Systeme
Softwaresysteme die auf mehreren Rechnern ablaufen. So können mehrere Prozesse auf verschiedenen Rechner gleichzeitig ablaufen.
Vorteile: Verteiltes System (2)
1) Skalierbarkeit
2) Fehlertolerant
Nachteile: Verteiltes System (2)
1) Komplexer
2) Datenverkehr zwischen den beteiligten Rechnern im Netzwerk erschwert den Zugriffsschutz
Vorteile: Zentrale Datenhaltung (2) - On-Prem
1) Keine direkte Kommunikation zw. den Subsystemen nötig
2) Sicherheit, Datenschutz, Datenhaltung, Datenkonsistenz, Zugriffskontrolle sind hier einfacher zu gewährleisten
Nachteile: Zentrale Datenhaltung (1) - On-Prem
1) Zugriff eines Knotens auf zentrale Daten langsamer als wenn er sie auf der eigenen Festplatte hat.
Definition: 2-Tier-Client-Server-Modell
Hier gibt es nur 2 Stufen, Clients und Server. Man unterscheidet zwischen einen Thin-Client, wo die Anwendungslogik komplett auf dem Server läuft und einem Fat-Client, wo die Anwendungslogik auf Seite des Clients liegt. In beiden fällen übernimmt der Server die Datenhaltung.
Definition: 3-Tier-Client-Server-Modell
Hier sorgt noch zusätzlich zum Client und Server eine Datenbank für die Persistenz. Dabei sind ein oder mehrere Applikationsserver für die Applikationslogik zuständig.
Definition: Ereignisverarbeitende Systeme
Reagieren Ständig und sofort auf Ereignisse wie Benutzereingaben. z.B. Office- und Grafikprogramme
Eigenschaften: Ereignisverarbeitende Systeme (3)
1) Meist Einbenutzersysteme
2) Müssen schnell auf Benutzerinteraktionen reagieren
3) Bearbeiten Daten längere Zeit im Hauptspeicher
Definition: Batchverarbeitende Systeme
Verarbeiten Daten am Stück ohne Eingriff des Benutzers. Sie eignen sich, wenn auf eine große Menge von Daten immer ähnliche Operationen angewandt werden müssen (z.B. Täglicher Rechnungsdruck im ERP).
Definition: Transaktionsverarbeitende Systeme
Verarbeiten Schreib- und Lesezugriffe auf einen großen Datenbestand. Sie müssen sicherstellen, dass die Benutzer sich nicht gegenseitig behindern und dass jede Transaktion atomar ist (z.B. Auftragserfassung im ERP).
Architektur: Transaktionsverarbeitendes System
Bestehen oft aus Komponenten für Benutzerinteraktion, Anwendungslogik und Datenhaltung.
Architektur: Batchverarbeitendes System
Bestehen meist aus Komponenten für Eingabe, Verarbeitung und Ausgabe.