Definieren Sie allgemein eine rel. DB
Tabelle entspricht Entität.
Spalte=Attribut, Zeile=Datensatz.
Es bestehen Beziehungen zwischen Tabellen.
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.
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.
Erklären Sie, warum die Implementierung von Exception-Handling wichtig ist
Abfangen von Exceptions und Fehlern verhindern den unerwarteten Absturz eines Programmes.
Erklären Sie den Begriff 'Use Case 2.0'
Dient zur Strukturierung von einer Vielzahl von User-Stories in Kategorien.
Erklären Sie warum eine Normalisierung bei rel. DB's durchgeführt werden sollte
Vermeidung von Redundanzen
Einfache Datenpflege
Inkonsistenzen werden vermieden
In welche drei Kategorien lassen sich Vorgehensmodelle (Phasenmodell) einteilen?
Klassische
Evoluitionäre
Agile
Erläutern Sie den Begriff Datenkapselung
Information Hiding.
Attribute in einer Klasse nach außen verbergen.
Zugriff auf die Attribute nur über Business-Methoden.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Nennen Sie mindestens drei verschiedene noSQL-DBMS
Objektorientierte DB
Dokumentenbasierte DB
Graphendatenbanken
Key-Value-DB
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).
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.
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.
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.