Skip to content

Latest commit

 

History

History
196 lines (122 loc) · 7.41 KB

ke07.md

File metadata and controls

196 lines (122 loc) · 7.41 KB
recall
header

Was sind Transformationen im Feinentwurf?

Die Überführung von UML Modellierungselemente in zielsprachenkonforme Entwurfskonzepte

Was sind technische Klassen?

Technische Klassen sind solche, die zur Realisierung von komplexen Datenstrukturen und Algorithmen beim Feinentwurf eingeführt wurden

In welcher Stufe der Entwicklung werden technische Klassen eingeführt?

(Fein-)Entwurf

Wie werden die Klassen genannt, die sich direkt aus den Anforderungen ergeben?

fachliche Klassen

Welche Klassen werden im Feinentwurf mit Hilfe von GUI-Framework-Klassen implementiert?

Schnittstellenklassen

Welche Klassen kontrollieren die Eingabe in Benutzeroberflächen?

syntaktische Fehler kann die Oberfläche selbst zurückweisen (z.B. ungültiges Datum), fachliche Kontrollen finden in den Kontrollklassen statt

Was ist ein Pull-Down-Menü?

Hierarchisch aufgebautes Menü am oberen Fensterrand

Was ist ein Pop-Up-Menü?

An beliebiger Stelle aufrufbares, kontextabhängiges Menü, das nach Auswahl eines Menüpunkts oder Klick außerhalb wieder verschwindet

Was ist Erwartungskonformität?

Menü und Fenster-übergreifend einheitliche Möglichkeiten zur Selektion von Einträgen mit Maus und Tastatur

Wie sollten Menüeinträge sortiert werden?

  • orientiert an vorgegebenen Strukturen / zeitlichen Abläufen
  • wichtige Menüpunkte weiter oben
  • häufig verwendete Menüpunkte ganz oben oder unten im Menü
  • alphabetisch (wenn nichts anderes funktioniert)

Wie viele Einträge sollte ein Menü maximal haben?

7

Was sind Sicht-Schnittstellenklassen (Sicht-Klassen)?

Spezielle Klassen zur Darstellung und Bearbeitung von Attributen von Entitätsobjekten

Welche Aktionen werden im Feinentwurf an den Klassen des Anwendungskerns durchgeführt?

  • Hinzufügen von Operationen zu Kontrollklassen um der externen Schnittstelle (AAS-Klassen) Zugriff auf Entitätsklassen zu ermöglichen und fachliche Logik zu implementieren
  • Hinzufügen von Operationen zu Entitätsklassen für klassenlokale fachliche Logik

Welche Fragen bestimmen wie eine Assoziation transformiert wird?

  • Navigation der Assoziation (einseitig / bidirektional)
  • Multiplizität beschränkt, exakt oder unbeschränkt

Wie wird eine einseitig navigierbare 1:1 Assoziation transformiert?

Assoziation A -> B, A enthält Attribut mit Referenz auf B

Wie wird eine beidseitig navigierbare 1:1 Assoziation transformiert?

Assoziation A <-> B, A enthält Attribut mit Referenz auf B, B enthält Attribut mit Referenz auf A. Konsistenz muss durch verbinde() und löse() Operationen sichergestellt werden

Wie wird eine einseitig navigierbare 1:n Assoziation mit festem n transformiert?

  • A -> B1, B2, ... Bn:
    1. kleines n: A enthält mehrere Attribute mit Referenzen auf Bs.
    2. großes n: A enthält Array mit Referenzen auf Bs.
  • A <- B1, B2, ... Bn: Jedes B erhält Referenz auf A

Wie wird eine einseitig navigierbare 1:n Assoziation mit variablem n transformiert?

  • A <- B1, B2, ... Bn: Jedes B erhält Referenz auf A
  • A -> B1, B2, ... Bn: A enthält Containerklasse mit Referenzen auf B

Wie wird eine beidseitig navigierbare 1:n Assoziation mit variablem n transformiert?

Aufspalten in zwei einseitig navigierbare Assoziationen, diese transformieren

Wie wird eine beidseitig navigierbare n:m Assoziation mit variablem n und m transformiert?

  • Jedes Objekt hält einen Container (Menge) der mit ihm verknüpften Elemente
  • Singleton Klasse, die Paare für jede 1:1 Assoziation hält, gibt Iteratoren für alle assoziierten Objekte eines Objekts zurück, kann Existenz von Verbindungen checken und neue Paare erzeugen und halten. Vorteil: Auch Assoziationsklasse des Entwurfs problemlos abbildbar

Wie werden die Spezialfälle Aggregation und Komposition transformiert?

Genau wie gewöhnliche Assoziationen, aber die Standardoperationen müssen das geforderte Verhalten zum Zerstören implementieren

Wie werden Assoziationsklassen transformiert?

Genau wie n:m wird eine Relation-Klasse eingeführt, die ein oder mehrere Paare verwaltet. Nur über diese werden auch die Verbindungen erstellt.

Was ist eine Echte-Ganzes-Klasse?

eine Klasse, auf deren Objekte nicht zwingend ein anderes Objekt eine Referenz hält, die also dann garbage collected werden würden.

Wie werden Echte-Ganzes-Klassen transformiert?

Singleton Ordner-Klasse, die alle Instanzen der Echte-Ganzes-Klasse hält.

Wie wird eine include-Beziehung zwischen Anwendungsfällen transformiert?

Basis-AAS hält Referenz auf erweiternde AAS und ruft entsprechende Operationen im Basisanwendungsfall auf

Wie wird eine extend-Beziehung zwischen Anwendungsfällen transformiert?

  • Basis-AAS hält Referenz auf erweiternde AAS und ruft entsprechende Operationen im Basisanwendungsfall auf, wenn die Erweiterungsbedingung erfüllt ist
  • Beobachter-Muster

Wie können Zustandsdiagramme konsistent in Klassenstrukturen transformiert werden?

Design Pattern: State, ggf. kombiniert mit Flyweight

Was sind die Vorteile eines Datenbanksystems gegenüber Dateien?

  • Redundanzfreiheit
  • Integrierte Datenhaltung, Nutzung aus verschiedenen Anwendungssystemen
  • Zuverlässigkeit (Konsistenz und Integritätschecks, Recovery)
  • Komplexe Abfragen
  • Zugriffsrechte-Verwaltung
  • Mehrbenutzerbetrieb

Was sind interne und externe Objekte?

interne liegen im Hauptspeicher, externe in der Datenbank

Was ist transparenter Datenbankzugriff?

Ein Zugriff auf die Datenbank bzw. ein darin enthaltenes Objekt stellt sich genauso dar wie der Zugriff auf ein internes Objekt (ggf. mit etwas mehr Wartezeit fürs Laden)

Wie werden Klassen in einer Datenbank abgebildet?

Jedes Objekt einer Klasse erhält ein Tupel in einer Tabelle, die Attribute der Klasse sind die Spalten der Tabelle

Wie werden Objekte im Hauptspeicher und persistenten Speicher eindeutig identifiziert?

Attribut ID (z.B. UUID Universally Unique Identifier), wird sinnvollerweise von Proxy Klasse für das persistente Objekt gehalten

Wie werden Assoziationen in Datenbanken abgebildet?

Entweder als Relationship-Relation oder mit Attribut das auf Primary Key einer anderen Relation verweist (Foreign Key)

Wie werden Generalisierungen in Datenbanken abgebildet?

Jede Klasse der Hierarchie bekommt eine Tabelle mit "ihren" Attributen. Die ID der Zeilen ist die des Objekts, aber die Attribute sind über mehrere Tabellen verteilt. Zusätliche ist die konkrete Klasse des Objekts gespeichert.

Wie wird das Nachladen von Objekten aus einer Datenbank verwaltet?

Design Pattern: Proxy

Welche Features bieten Persistenz-Frameworks?

  • Geringe Anpassung der Entitätsklassen, um sie persistent zu machen
  • Framework hat Kontrolle über persistente Objekte, lädt und speichert selbstständig
  • Unterstützung der meisten Datentypen einer Programmiersprache für Attribute
  • automatische Unterstützung von mehrwertige Attributen (Arrays etc, sofern Collection Interface implementiert)
  • automatische Erstellung von Proxy-Klassen, wenn eine Entitätsklasse durch Implementierung eines Interface als persistent markiert ist

Wie unterscheiden sich Middleware und Systemsoftware?

Kopplung des Anwendungssystems an die Middleware relativ stark, an Systemsoftware möglichst schwach für einfachen Austausch

  • Middleware: Halbfabrikate wie GUI und Persistenz Frameworks, Module für verteilte Anwendungssysteme
  • Systemsoftware: Betriebssystem, Fenstersystem, Netzwerksoftware / -protokolle, DBMS