FIAE - Datenbanken
FIAE -Allgemein
FIAE - OOP 1
FIAE - OOP 2
FIAE - Webentwicklung
100

Definieren Sie allgemein eine rel. DB

Tabelle entspricht Entität.
Spalte=Attribut, Zeile=Datensatz.
Es bestehen Beziehungen zwischen Tabellen.

100

Nennen und beschreiben Sie zwei Datenaustauschformate ihrer Wahl

CSV: Komma-separiert. Einfache Textdatei.
JSON: Java Script Object Notation - Kann Objekte direkt abbilden u. serialisieren. Hierarchien möglich.
XML: eXtended Markup Language. Kann Hirarchien. Sehr aufwändig.
YAML: Yaml Ain't Markup Language. Ähnlich JSON mit wenig Header.

100

Erläutern Sie den Begriff Vererbung

'Ist-eine'-Beziehung.
Eine Klasse erweitert eine vorhandene Klasse in ihrer Funktionalität.
Die erweiternde Klasse muss die vollständige Funktionalität der Superklasse sicherstellen.

100

Erklären Sie, warum die Implementierung von Exception-Handling wichtig ist

Abfangen von Exceptions und Fehlern verhindern den unerwarteten Absturz eines Programmes.

100

Erklären Sie den Begriff 'Use Case 2.0'

Dient zur Strukturierung von einer Vielzahl von User-Stories in Kategorien. 

200

Erklären Sie warum eine Normalisierung bei rel. DB's durchgeführt werden sollte

Vermeidung von Redundanzen
Einfache Datenpflege
Inkonsistenzen werden vermieden

200

In welche drei Kategorien lassen sich Vorgehensmodelle (Phasenmodell) einteilen?

Klassische
Evoluitionäre
Agile

200

Erläutern Sie den Begriff Datenkapselung

Information Hiding.
Attribute in einer Klasse nach außen verbergen.
Zugriff auf die Attribute nur über Business-Methoden.

200

Erläutern Sie die Schlüsselwörter try, catch und finally aus dem Exception-Handling

try: Hier steht der Code der evtl. eine Exception auslöst.
catch: Hier steht was zu tun ist, wenn eine Exception im try-Block ausgelöst wird.
finally: Wird immer durchlaufen. Für Aufräumarbeiten.

200

Erklären Sie den Unterschied zwischen einer API und einem WebService

API: Allgemein eine Schnittstelle zu einem Programm.
WebService: Ist eine API, die über das Web nach außen zur Verfügung gestellt wird.

300

Erläutern Sie die ersten drei Normalisierungsstufen

Stufe 1: Atomarität herstellen.
Stufe 2: Stufe 1 erfüllt UND: Alle Nicht-Schlüsselattribute hängen nur vom zusammengesetzten PK ab.
Stufe 3: Stufe 2 erfüllt UND: Die Nicht-Schlüsselattribute hängen nur vom PK der Tabelle ab.

300

Erläutern Sie den Unterschied zwischen Lasten- und Pflichtenheft

Lasten- und Pflichtenheft werden nur bei den klassischen und evolutionären Phasenmodellen verwendet.
Lastenheft: Vom Kunden erstellt/beauftragt. Beschreibt WAS gemacht werden soll.
Pflichtenheft: Enthält immer auf das Lastenheft und beschreibt WIE das umgesetzt wird.

300

Erklären Sie den Begriff Polymorphie. Unterscheiden Sie zwischen statischer und dynamischer Polymorphie

Statisch: Überladen von Methoden. Mehrere Methoden mit demselben Namen, aber unterschiedlichen Paramterlisten.
Dynamisch: Unterklassen können dieselben (geerbten) Methoden mit unterschiedlicher Funktion besitzen.
Dynamisches Binden: Zur Laufzeit führt das System die Richtige Methode aus.

300

Nennen und Erläutern Sie die drei Kategorien an Entwurfsmuster

Erzeugnungsmuster: Erstellen von fachlich korrekten Objektsturkuren.
Strukturmuster: Komplexe Objekte erstellen, wenn Assoziation, Aggregation und Komposition nicht mehr ausreichen.
Verhaltensmuster: Interaktion und Verhalten von Objekten steuern.

300

Wofür steht die Abkürzung REST und wie funktioniert es?

REST: Representational State Transfer.
Informationen über eindeutige URL's identifizieren und verfügbar machen. Datenaustausch über: JSON oder XML möglich.

400

Erläutern Sie den Begriff referentielle Integrität

Sicherung der Datenintegrität in rel. DBs. über die PK <-> FK - Beziehung.
Ein neuer DS mit FK kann nur eingefügt werden, wenn ein passender PK-DS existiert.
Ein PK-DS kann nur gelöscht werden, wenn keine weiteren FK-DS existieren.

400

Erklären Sie die Begriffe 'Klasse' und 'Objekt'

Klasse: Bauplan für eine Reihe ähnlicher Objekte. Sie besitzt Attribute (Eigenschaften) und Methoden (Verhalten).
Objekte: Sind konkrete Umsetzungen oder Instanzen von Klassen.

400

Nennen und Erläutern Sie drei Beziehungen zwischen Klassen (ausgenommen Vererbung)

Assoziation: Beschreibt dabei eine Beziehung auf (Klassen-) Typebene. Inwieweit 'kennen' die Klassen sich untereinander.
Aggregation: 'Hat-eine'-Beziehung. Teile und Ganzes können unabhängig voneinander existieren.
Komposition: 'Hat-eine'-Beziehung. Die Teile können ohne das Ganze nicht existieren. Umgekehrt: Abhängig von dem Multiplizitäten. 

400

Nennen Sie Unterschiede zwischen 'interface' und 'Abstrakter Klasse'

Interface: Sammlung von Methoden-Signaturen.
Abstrakte Klasse: Hat abstrakte Methode(n) (wie Interface). Besitzt einen oder mehrere Konstruktor(en). Kann Attribute enthalten. Kann auch nicht abstrakte Methoden enthalten. 

400

Erklären Sie den Begriff RESTFUL

Bezieht sicha uf eine REST-API. Wenn das Paradigma (Sechs Vorgaben für die Erstellung einer REST-API) eingehalten wird.

500

Nennen Sie mindestens drei verschiedene noSQL-DBMS

Objektorientierte DB
Dokumentenbasierte DB
Graphendatenbanken
Key-Value-DB

500

Erläutern Sie den Begriff User-Stories

Wird anstatt der Lasten- und Pflichtenheft in den agilen Phasenmodellen verwendet.
Aufbau: Überschrift, kurze Beschreibung, Akzeptanzkriterium (meist ein Testfall).

500

Nennen und erläutern Sie zwei Programmierparadigmen

Imperative Programmierung: Unterteilt in strukturierte (keine Go-To-Anweisungen), prozedurale (kleine Teilaufgaben auslagern und wiederverwenden) Programmierung.
Deklarative Programmierung unterteilt in funktionale Sprachen und logische Sprachen.
Objektorientierte Programmierung: Klassen sind instanziierbare Module und Grundelemente. 

500

Erläutern Sie den Unterschied zwischen compilerbasierten und interpreterbasierten Programmiersprachen

Compilerbasiert: Ergebnis läuft in einer VM oder direkt auf dem OS.
Interpreterbasiert: Interpreter für OS erforderlich. Langsamer. Jede Zeile des Quellcodes wird zur Laufzeit übersetzt.

500

Erläutern Sie den unterschied zwischen dem klassischen Server-Client-Modell und dem AJAX oder Fetch-Verfahren

Client-Server-Modell: Client sendet Anfragen an Server. Server generiert Antwort und sendet diese an Client.
AJAX/Festch: Beantwortet, wenn möglich Anfragen des Users direkt im Client. Alles andere wird asynchron im Hintergrund vom Server abgefragt und aktualisiert angezeigt.