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
Welche Typen von Softwaresystem gibt es? (4)
- Ereignisverarbeitende Systeme
- Batchverarbeitende Systeme
- Transaktionsverarbeitende Systeme
- Sprachverarbeitende Systeme
Was machen Ereignisverarbeitende Systeme?
Reagieren ständig und sofort auf Ereignisse wie Benutzereingaben
Was macht ein Ereignisverarbeitendes System aus?
- sind meist Einbenutzersysteme
- müssen schnell auf Benutzerinteraktionen reagieren
- bearbeiten Daten längere Zeit im Hauptspeicher
Welche Systeme gehören zu Ereignisverarbeitenden Systemen?
Echtzeitsysteme, aber auch Graphik- und Officeprogramme
Architektur Ereignisverarbeitende Systeme
Mehrere autonome Objekte stehen miteinander in Kommunikationsbeziehungen, Sie verarbeiten Ereignisse und interpretieren Befehle
Was machen Batchverarbeitende Systeme?
verarbeiten Daten am Stück OHNE Eingriffe des Benutzers
Architektur Batchverarbeitende Systeme
Bestehen meist aus Komponenten für Eingabe, Verarbeitung und Ausgabe
Wann eignen sich Batchverarbeitende Systeme am besten?
auf eine große Menge von Daten immer ähnliche Operationen angewandt werden müssen
Was machen Transaktionsverarbeitende Systeme?
verarbeiten Schreib- und Lesezugriffe auf einen großen Datenbestand
Was müssen Transaktionsverarbeitende Systeme sicherstellen?
Benutzer sich nicht gegenseitig behindern und dass jede Transaktion atomar ist (ganz oder gar nicht, aber unter keinen Umständen nur teilweise)
Architektur Transaktionsverarbeitende Systeme
bestehen oft auf Komponenten für Benutzerinteraktion, Anwendungslogik, Datenhaltung
Was machen Sprachverarbeitende Systeme?
arbeiten Anweisungen ab, die in einer formalen Sprache formuliert sind
Was gehört zu Sprachverarbeitenden Systemen?
Compiler und Skriptinterpreter für Makros
Architektur Sprachverarbeitende Systeme
Verschiedene Komponenten übernehmen das prüfen, auswerten und ausführen von Anweisungen
Bsp. Transaktionsverarbeitende Systeme
ein Kassensystem in einem Supermarkt
Bsp. Sprachverarbeitende Systeme
ein System, das sehbehinderten Benutzern Webseiten vorliest
Bsp. Batchverarbeitende Systeme
ein System, das Mahnungen über zu zahlende Zeitschriftenabonnementsgebühren druckt
Bsp. Ereignisverarbeitende Systeme
ein Fotoalbum, das Funktionen zur Wiederherstellung alter Fotografien bietet
Welche Softwaresysteme sind besonders für zeitliche Anforderungen gemacht?
Echtzeitsysteme
Wovon hängt die korrekte Funktionsweise eines Echtzeitsystems ab?
Ergebnissen und Zeit in der Ergebnisse erzeugt werden
Wie funktioniert ein Echtzeitsysteme?
- unmittelbar nach Empfang eines Stimulus von einem Sensor muss eine geeignete Routine abgerufen werden
- erfolgt üblicherweise mit einer Menge nebenläufiger, miteinander kooperierender Prozesse
Nach grundsätzlicher Entscheidung über die Architektur einer Anwendung erfolgt das …
objektorientierte Design mit Hilfe der bekannten UML-Modelle
True or False
Eine gute GUI hat keinen Einfluss auf die Zuverlässigkeit des Systems
FASLE
Eine gute GUI ist entscheidend für die Zuverlässigkeit des Systems
Wodurch können viele “Benutzerfehler” vermieden werden?
durch eine der Zielgruppe angemessene Benutzerführung
Worauf ist bei Benutzeroberflächen im Web besonders zu achten?
Benutzer, die sich nicht zurechtfinden, wandern sofort zur Konkurrenz ab
Was passiert parallel zur Erstellung der Use-Case-Dokumente?
Screen Prototype auf Papier
Warum sidn Screen Prototyps gerne gesehen?
erleichtern Diskussionen mit den Anwendern und helfen, die Anforderungen zu verstehen
Was passiert immer Parallel zu Design und Implementierung?
funktionsfähigere ausführbare Prototypen der GUI
Was passiert immer parallel zu funktionsfähigeren ausführbaren Prototypen der GUI?
Design und Implementierung
Was wird in der Testphase der Benutzeroberfläche gemacht?
In der Testphase wir im rahmen der User Acceptance Test der Testschwerpunkt auf die Usability gesetzt
Nenne die Grundregeln für den GUI Entwurf
Benutzervertrautheit Konsistenz Minimale Überraschung Wiederherstellbarkeit Benutzerführung Benutzervielfalt
Nenne die Grundregeln für den GUI Entwurf und beschreibe diese
Benutzervertrautheit
Oberflöche sollte Bezeichnungen und Begriffe aus Erfahrungswelt der Menschen verwenden, die am meisten von System gebrauch machen
Konsistenz
Oberfläche sollte, wo immer möglich, konsistent sein. Bedeutet, dass vergleichbare Operationen auf dieselbe Weise veranlasst werden
Minimale Überraschung
Benutzer sollten vom Systemverhalten nie überrascht werden
Wiederherstellbarkeit
Oberfläche sollte Wiederherstellungsmechanismen für Benutzer enthalten
Benutzerführung
Oberfläche sollte beim Auftreten von Fehlern aussagekräftige Rückmeldungen und kontextsensitive Hilfsmittel für Benutzer anbieten
Benutzervielfalt
Oberfläche sollte für verschiedene Arten von Systembenutzern geeignete Interaktionsmöglichkeiten bereitstellen
Grundregeln für GUI-Entwurf
- Text benötigt weniger Bildschirmfläche als graphische Darstellung, kann nicht auf einen Blick erfasst werden
- Text vorteilhaft, wenn auf Genauigkeit ankommt und Werte sich nur langsam verändern (Sich ständig verändernde Textanzeigen verwirren)
- Graphische Darstellungen ungenauer, aber übersichtlicher
- Numerische Informationen, welche sich ständig ändern, werden analog abgebildet
- Relative Informationen besser analog abgebildet
Nenne Grundregeln für Systemmeldungen
Kontext Erfahrung Fähigkeiten Stil Kultur
Nenne Grundregeln für Systemmeldungen und beschreibe diese
Kontext
Die vom System generierte Meldung sollte aktuellen Benutzerkontext widerspiegeln. Soweit möglic, sollte System wissen, was Benutzer gerade tut und Meldungen ausgeben, die für derzeitige Tätigkeit von Bedeutung sind
Erfahrung
Wenn Benutzer mti Syste vertraut, werden sie durch lange “bedeutungsvolle” Meldungen irritiert. Anfänger finden es schwirig, kurze und knappe Aussagen zu Problemen zu verstehen. Benutzerführungssysteme sollten beide Meldungsarten anieten und es benutzer gestatten, Genauigkeit der Meldung zu steuern.
Fähigkeiten
Meldungen sollten auf Fähigkeiten und Erfahrungen des Nutzers zugeschnitten. Melungen für verschiedene Benutzerklassen solllen abhängig von Leserns vertrauten Terminologien unterschiedlich formuliert sein
Stil
Meldungen eher postive ausgedrückt. Lieber aktive Anrede als passive. Nie verleztztend oder komisch.
Kultur
Gestalter sollte mit Kultur des Landes vertraut sein, inder System verkauft. Eine angemessene Meldung in einer Kultur könnte unzumutbar für eine andere sein
Nenne Vorteile, Nachteile und Anwendungsbeispiele für “Menüauswahl” bei Benutzerinteraktionen
Vorteile:
Verhindert Benutzerfehler
Weniger Tippen erforderlich
Nachteile:
für erfahrende Benutzer zu langsam
komplex, wenn viele Menüoptionen erhalten
Anwendungsbsp.:
In meisten allgemein eingesetzten Systeme
Nenne Vorteile, Nachteile und Anwendungsbeispiele für “Ausfüllen einer Eingabemaske” bei Benutzerinteraktionen
Vorteile:
Einfache Dateeingabe
Leicht zu erlernen
Überprüfbar
Nachteile:
Benötigt viel Platz auf Bildschirm
Führt zu Problemen, wenn Benutzeroptionen nicht mit den Formularfeldern übereinstimmen
Anwendungsbsp.:
Bestandskontrolle
Verarbeitung persönlicher Krediten
Nenne Vorteile, Nachteile und Anwendungsbeispiele für “Befehlssprache” bei Benutzerinteraktionen
Vorteile:
Leistungsfähig und flexibel
Nachteile:
Schwer zu erlenrnen
Schwaches Fehlermanagament
Anwendungsbsp.:
Betriebssysteme
Überwachungs- und Steuerungssysteme
Nenne Vorteile, Nachteile und Anwendungsbeispiele für “Direkte Manipulation” bei Benutzerinteraktionen
Vorteile:
Schnelle und intuitive Interaktion
Leicht zu erlernen
Nachteile:
Möglicherweise schwierig zu implementieren
nur angemessen, wenn optische Metaphern, Aufgaben, Objekte
Anwendungsbsp.:
Videospiele
CAD Systeme
Nenne Vorteile, Nachteile und Anwendungsbeispiele für “Natürliche Sprache” bei Benutzerinteraktionen
Vorteile:
Zugänglich für Gelegenheitsnutzer
Leicht erweiterbar
Nachteile:
Erfordert mehr tippen
Systeme, die natürliche Sprache sind unzuverlässig
Anwendungsbsp.:
Systeme zum Abrufen von Informationen