3. SE - 4. Entwurf von Software Flashcards
Was gehört alles zum Softwaredesign (deutsch: Entwurf) dazu?
- Gestaltung der Benutzeroberfläche
- Architekturentscheidungen
- Strukturentscheidungen
Wie werden Datenstrukturen entworfen?
Mit Hilfe von Klassendiagrammen und Entity-Relationship-Modellen
Wie werden Abläufe entworfen?
Aktivitäten- und Sequenzdiagrammen
Wie kann man Komplexe Algorithmen entwerfen, bevor man sie kodiert?
Mit Nassi-Shneiderman Diagrammen
Was bestimmen Architekturentscheidungen
Struktur des Systems
Was beeinflusst die Systemarchitektur?
- Performance des Systems
- Angriffssicherheit (Security) des Systems
- Betriebssicherheit (Safety) des Systems
- Verfügbarkeit des Systems
- Wartebarkeit des Systems
True or False?
Die meisten größeren Softwaresysteme sind heute VERTEILTE SYSTEME?
TRUE, sie laufen auf mehreren Rechnern
Was ist das Gute an “verteilten Systemen”?
Mehrere Prozesse können auf verschiedenen Rechnern gleichzeitig ablaufen
mehr als ein Prozessor vorhanden
Vorteile “Verteilte Systeme”
Skalierbar
fehlertolerant
Was ist das große ABER bei der Fehlertoleranz der verteilten Systeme?
Das Netzwerk wird zum Single Point of Failure (SPOF)
Definiere “Skalierbarkeit”
Ohne Änderung an Software größere Anzahl an Prozessen (vor allem an Benutzern) bedienen, indem zusätzliche Hardware beschafft wird
Nachteil “Verteilter Systeme”
komplexer
Datenverkehr zwischen den beteiligten Rechnern im Netzwerk erschwert Zugriffsschutz
Nachteile “zentrale Repository für alle beteiligten Subsysteme” gegenüber dezentraler Datenhaltung
- Zugriff eines Knotens auf zentrale Daten ist langsamer als wenn es sich auf eigener Festplatte hat.
- Offline gar nicht möglich.
Vorteil “zentrale Repository für alle beteiligten Subsysteme”
- keine direkte Kommunikation zwischen Subsystemen nötig
Was ist dezentral (zB auf PCs) viel schwieriger zu gewährleisten als in einem Zentralen Rechenzentrum
Datensicherung, Datenschutz, Datenwiederherstellung, Datenkonsistenz, Zugriffskontrolle
Da keine dezentrale Datenhaltung
Wird betriebswirtschaftlich eher auf zentrale oder dezentrale Datenhaltung gesetzt?
Zentraler Datenhaltung
Ausnahmen müssen gut begründet sein, Bsp. Sicherheit nachrangig (öffentliche Katalogdaten werden lokal repliziert) oder wenn Offline Funktionalität zwingend ist (CROM Client)
Ist das Client-Server-Modell zentral oder dezentral?
zentral im Rechenzentrum
Wie funktioniert das Client-Server-Model (Architekturentscheidung)
- Server bieten Dienste im, Netzwerk an
- Clients fragen diese Dienste im Netzwerk nach (Benutzerarbeitsplatz)
TRUE or FALSE
Client kennen Server und andere Clients
FALSE
Clients kennen Server, aber nicht die anderen Clients
Was ist mit Client und Server gemeint?
Die ursprünglichen Prozesse der Software
Was ist mit Client und Server heutzutage noch gemeint?
Hardware, auf denen die Prozesse laufen
Beschreibe das 2-Tier-Client-Server-Modell indem du Thin-Client und Fat-Client definierst
Es gibt nur 2 Stufen, Client und Server
Thin Client: Anwendungslogik läuft komplett auf Server. Der Client ist nur für Benutzereingaben und Bildschirmdarstellung
Fat Client:
Server übernimmt nur Datenhaltung. Anwendungslogik, Benutzereingaben, Bildschirmdarstellung laufen auf Client
Beschreibe die wichtigste Merkmale eines 3-Tier-Client-Server-Modell
- Ein zentrale Datenbankserver sogt für Persistenz
- 1 oder mehrere Applikationsserver sind für Applikationslogik zuständig
- Clients übernehmen Benutzereingaben und Bildschirmdarstellung
Welche Vorteile können Webapplikationen vereinen?
Fat-Clients (effiziente Lastverteilung) und Thin-Clients (einfaches Systemmanagement)
Was sind die vereinten Vorteile von Fast-Clients und Thin-Clients?
- portabler Code und Daten werden bei Bedarf vom Server geladen
- dies asynchron (im Hintergrund), so werden sekundenlange Wartezeiten des Users vermieden
- Usability und Performanz von Web-Applikationen nähern sich denen von lokal installierter Software an
- 100% identisch ist aber systembedingt nicht möglich
Ordne …
Performance, Security (das System vor Angriffen schützen), Safety (Fehlfunktionen des Systems vermeiden), Verfügbarkeit, Wartbarkeit/Erweiterbarkeit
…zu:
redundate Komponenten, relevante Operationen in möglichst wenigen Subsystemen, alle relevanten Operationen in einem Subsystem, kleine unabhängige Komponenten, Schichtenarchitektur
Performance - relevante Operationen in möglichst wenigen Subsystemen
Security (das System vor Angriffen schützen) - Schichtenarchitektur
Safety (Fehlerfunktionen des Systems vermeiden) - alle relevanten Operationen in einem Subsystem
Verfügbarkeit - redundante (mehrmals) Komponenten
Wartbarkeit/ Erweiterbarkeit - kleine unabhängige Komponenten