Software Engineering II

Informatik, 4. Semester

Informatik, 4. Semester


Fichier Détails

Cartes-fiches 54
Langue Deutsch
Catégorie Informatique
Niveau Université
Crée / Actualisé 17.01.2017 / 28.11.2019
Lien de web
https://card2brain.ch/cards/20170117_software_engineering_ii
Intégrer
<iframe src="https://card2brain.ch/box/20170117_software_engineering_ii/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was sind Ziele und Aufgaben des Entwurfs? (6 Stück)

  • Entwurf eines Systems, das die Anforderungen des Kunden optimal beschreibt
  • sorgt für Umsetzung der nicht-funktionalen und funktionalen Anforderungen
  • Beschreibung des Systems auf technischer Ebene
  • Ausgangspunkt für Implementierung
  • Festlegung auf Architektur des Systems
    • auf Bausteinebene
    • auf Gesamtsystemebene
  • Kommunikationsmittel zwischen den Projekt-Stakeholdern

Wie lässt sich "Architektur" definieren?

  • Beschreibung von Systemstrukturen
  • erstes Artefakt zur Analyse der Einhaltung von Qualitätseigenschaften
  • Beschreibung der Beziehung von Komponenten und Verbindungen
  • fundamentale Organisation eines Systems, verkörpert durch
    • seine Komponenten,
    • deren Beziehungen,
    • deren Umwelt,
    • die Prinzipien hinter dem Design + der Evolution des Systems

In welche zwei Kategorien lässt sich ein Entwurf unterteilen?

  • strategischer Entwurf
  • taktischer Entwurf

Was versteht man unter einem strategischen Entwurf?

  • Architektur im „Großen“
  • Entwurf auf Systemebene
  • Entscheidungen über Technologie, Gesamtaufbau des Systems, etc.

Was versteht man unter einem taktischen Entwurf?

  • Architektur im "Kleinen“
  • Entwurf auf Bausteinebene (also im klassischem SWE-Sinne)
  • Entscheidungen über Aufbau der einzelnen Bausteine (z. B. Entwurf der Klassen, usw.)

Die Architektur ist Hauptträger der Systemqualitäten. Welche drei sind dies?

  • Performanz
  • Veränderbarkeit
  • Sicherheit

Fasse das Ziel des Entwurfs in einem kurzen Satz zusammen.

Das Ziel des Entwurf ist eine Abbildung eines Systems, das die Anforderungen optimal beschreibt.

Welche Arten von Anforderungen gibt es? Handelt es sich um Faktoren hinter dem stragischen oder dem taktischen Entwurf?

  • Nicht-funktionale Anforderungen:
    • z. B. Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit, Übertragbarkeit
    • Faktoren hinter strategischem Entwurf
  • Funktionale Anforderungen:
    • z. B. Verarbeitung von Eingaben, Erstellen und etwaige Verarbeitung von Ausgaben
    • Faktoren hinter taktischem Entwurf

Was sind Voraussetzungen, um Anforderungen in eine Architektur umzusetzen?

  • Erfahrung des Softwarearchitekten
  • Unterstützung durch Auftraggeber

Wie hat sich die Softwarearchitektur mit der Zeit verändert?

  • prozedurale --> objektorientierte Programmiersprache
  • Großcomputer --> mobile Geräte
  • monolithische Applikationen --> modulare Systeme
  • Unified Modeling Language (UML) zur Abbildung von komplexen Systemen
  • 80er, 90er, frühe 00er: Rich-Client-Applikationen
  • durch PHP, Java Server Pages, ASP.net --> Webapplikationen
  • heutzutage: Server Oriented Architecture (SOA)

Was ist eine Rich-Client-Applikation?

  • gesamte Geschäftslogik und Funktionalität der Anwendung wird so weit wie möglich in die Desktop-Applikation verlagert
  • etwaiges Backend (z. B. Datenbank-Server) bedient sich ausschließlich Funktionalitäten, die nicht in der Desktop-Anwendung abgebildet werden können

Nenne drei historische Softwarearchitekturen.

  • 2-Tier-Architekur
  • 3-Tier-Architektur
  • Service-orientierte Architektur (SOA)

Was versteht man unter einer 2-Tier-Architektur?

  • Anwendung + Backend-Komponente --> Trennung von Logik/Präsentation + Datenbank
  • Vorteil: zentral verfügbare Datenmenge, die von mehreren Benutzern verwendet wird; nur an einer Stelle Administrationsaufwand
  • Nachteil: Notwendigkeit von erweiterten Maßnahmen zur Sicherstellung der Datenkonsistenz

Was versteht man unter einer 3-Tier-Architektur?

  • Geschäftslogik wird aus Anwendungsschicht extrahiert und ähnlich wie die Datenbank zentral verfügbar gemacht --> Präsentation + Logik + Datenbank
  • Vorteile: konsistenter Datenzugriff + bessere Wartbarkeit
  • Nachteil: längere + detailliertere Planungsphase

Was versteht man unter einer Service-orientierten Architektur?

  • Services als komplett eigenständige Komponenten
  • Neukonfiguration der Kommunikation mit minimalem Aufwand möglich

Wie sieht der Prozess der Objektorientierten Software-Entwicklung aus?

Warum ist ein sorfältiger Entwurf von Benutzerschnittstellen so wichtig?

  • entscheidender Bestandteil der gesamten Softwareentwicklung
  • soll Fähigkeiten, Erfahrung und Erwartungen der voraussichtlichen Benutzer entsprechen
  • entscheidend für die Zuverlässigkeit des Systems

Was sind die sechs Grundsätze für den Entwurf von Bedienoberflächen?

  • Benutzervertrautheit --> Bezeichnungen + Begriffe aus Erfahrungswelt der Menschen, die am meisten vom System Gebrauch machen
  • Konsistenz --> vergleichbare Operationen auf dieselbe Weise veranlassen
  • minimale Überraschung --> keine Überraschung vom Systemverhalten
  • Wiederherstellbarkeit --> Wiederherstellungsmechanismen für Benutzer
  • Benutzerführung --> aussagekräftige Rückmeldungen + kontextsensitive Hilsfmittel für Benutzer beim Auftreten von Fehlern
  • Benutzervielfalt --> für versch. Arten von Systembenutzern geeignete Interaktionsmöglichkeiten

Wie lauten die sieben Dialoggrundsätze für interaktive Systeme?

  1. Aufgabenangemessenheit
  2. Selbtsbeschreibungsfähigeit
  3. Steuerbarkeit
  4. Erwartungskonformität
  5. Fehlertoleranz
  6. Individualisierbarkeit
  7. Lernförderlichkeit

Was versteht man unter Aufgabenangemessenheit?

  • System unterstützt Benutzer, seine Arbeitsaufgabe vollständig, korrekt, mit einem vertretbaren Aufwand und zur Arbeitsaufgabe passenden Dialogschritten zu erledigen
  • --> einfach + direkt zum Ziel

Was versteht man unter Selbstbeschreibungsfähigkeit?

  • Benutzer weiß zu jeder Zeit, in welchem Dialog, an welcher Stelle im Dialog er sich befindet, welche Handlungen unternommen werden können, wie diese ausgeführt werden können
  • --> Intuition reicht aus

Was versteht man unter Steuerbarkeit?

  • Benutzer ist in der Lage, den Dialogablauf zu starten sowie seine Richtung und Geschwindigkeit zu beeinflussen, bis das Ziel erreicht ist

Was versteht man unter Erwartungskonformität?

  • Dialog entspricht den aus dem Nutzungskontext heraus vorhersehbaren Benutzerbelangen sowie allgemeinen anerkannten Konventionen
  • Sprache + "Arbeitsgebräuche" der Benutzer sind berücksichigt
  • --> entspricht Gewohnheit

Was versteht man unter Fehlertoleranz?

  • System bewahrt Benutzer vor Fehlern (z. B. durch klar verständliche Sicherheitsabfragen)
  • beabsichtigtes Arbeitsergebnis kann trotz erkennbar fehlerhafter Eingaben entweder mit keinem oder mit minimalem Korrekturaufwand seitens des Benutzers erreicht werden

Was versteht man unter Individualisierbarkeit?

  • Mensch-System-Interaktion + Darstellung von Informationen können vom Benutzer geändert werden, um diese an seine individuellen Fähigkeiten + Bedürfnisse anzupassen

Was versteht man unter Lernförderlichkeit?

  • Benutzer wird beim Erlernen der Nutzung des interaktiven Systems unterstützt + angeleitet

Was sind die beiden Schlüsselfragen für den Gestalter?

  • Wie soll der Benutzer mit dem Computersystem interagieren?
  • Wie sollen Informationen des Computersystems dem Benutzer dargestellt werden?

Welche Arten von Interaktionen gibt es?

  • Direkte Manipulation
  • Menüauswahl
  • Ausfüllen einer Eingabemaske
  • Befehlssprache
  • Natürliche Sprache

Wie läuft der Prozess des Oberflächentwurfs ab?

  • iterativer Vorgang
  • Benutzer + Designer arbeiten zusammen
  • Oberflächenprototypen werden ausprobiert
  • zu entscheiden: Funktionen, Aufteilung, Erscheinungsbild
  • drei Kerntätigkeiten: Benutzeranalyse, Erstellen eines Systemprototyps, Oberflächenbewertung

Warum ist eine Trennung des Darstellungssystems von den Daten sinnvoll?

  • Darstellung kann auf dem Benutzerbildschirm geändert werden, ohne das zugrunde liegende Berechnungssystem angehen zu müssen

Erläutere das MVC-Architektur-Muster.

  • Model: kapselt Daten + Funktion
  • View: bekommt Daten aus Model, stellt sie dar; wird bei Veränderungen von Daten durch Model aktualisiert
  • Controller: empfängt Events, verändert Model oder eine oder mehrere Ansichten

Wie sieht der schematische Aufbau einer Schichtenarchitektur aus?

  • Kommunikation erfolgt nur nach unten
  • keine Abhängigkeiten einer Ebene zu einer darüber liegenden Ebene
  • Kommunikation zwischen zwei Ebenen über definierte Interfaces
  • Kapselung von auftretenden Exceptions nach Ebene

Was sind fünf grundlegende Fragen bei der Entscheidung über die Darstellungsform von Informationen?

  1. Ist der Benutzer an genauen Informationen oder Beziehungen zwischen den Datenwerten interessiert?
  2. Wie schnell verändern sich die Informationswerte? Sollte die Wertveränderung unmittelbar angezeigt werden?
  3. Muss der Benutzer auf Informationsänderungen Maßnahmen ergreifen?
  4. Muss der Benutzer über eine Oberfläche direkt mit der angezeigten Information interagieren?
  5. Handelt es sich um Text oder um numerische daten? Sind Verhältnisse von Werten zueinander von Bedeutung?

Was ist beim Einsatz von Farben zu beachten?

  • Anzahl der verwendeten Farben beschränken
  • Farbänderungen bei Änderung des Systemzustands
  • Farbcodes zur Unterstützung der vom Benutzer zu verrichtenden Aufgabe
  • Farbcode auf bedachte + konsistente Weise verwenden
  • sorgsamer Umgang mit Farbpaaren

Was sind die fünf Entwurfsgrundsätze bei der Formulierung von Meldungen?

  • Kontext
  • Erfahrung
  • Fähigkeiten
  • Stil
  • Kultur

Was sind die fünf Attribute der Benutzerfreundlichkeit?

  • Erlernbarkeit
  • Antwortgeschwindigkeit
  • Stabilität
  • Wiederherstellbarkeit
  • Anpassungsfähigkeit

Was gibt es für Techniken für die Bewertung von Benutzeroberflächen?

  • Experimente
  • Fragebögen
  • Beobachtungen
  • Videoaufnahmen
  • Einbeziehung von Code in die Software

Wie sieht der direkte Ansatz für die Oberflächenentwicklung aus?

  • jede Klasse, deren Informationen nach außen sichtbar sein sollen --> eigene Oberflächen-Klasse (Boundary-Klasse)
  • Methoden der Maskenklasse ergeben sich aus den bisher gefundenen Methoden der vorhandenen Klassen
  • Prüfung jeder Methode, ob sie sichtbar sein soll
  • Einfügen einer zentralen Oberflächen-Klasse: steuert, welche Maskenklasse aktuell zur Anzeige genutzt wird
  • Ausführung: Maskenobjekt benutzt in der Oberfläche eingegebene Werte, um die Methode der genutzen Klasse aufzurufen

Wie lässt sich "Implementierung" definieren?

  1. Prozess des Umwandelns eines Entwurfs in Hardware-Komponenten, Software-Komponenten oder beides.
  2. Ergebnis des Prozesses in 1.

Welche Bedingungen müssen vor Start der eigentlichen Implementierung erfüllt sein?

  • Vorhandensein einer Architektur
  • Definition eines Teams
  • Treffen einer Entscheidung bzgl. Programmiersprache und Toolunterstützung