Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 6 » Prüfungsprotokoll Evolutionäre Informationssysteme + E-Business Technologies   (Übersicht)

Prüfungsprotokoll Evolutionäre Informationssysteme + E-Business Technologies

Protokoll #1

EIS

(Anfangs sehr identisch bei allen):

was ist ein informationssystem ⇒ soziotechnologisches system (mensch + werkzeug/technik)

was ist ein evolutionäres informationssystem ⇒ softwaresystem, welches organisatorisches lernen unterstützt, software soll lernfähig bleiben.

Dafür haben wir so ein Modell ⇒ SEKI - Modell (Wissen unterteilen in stilles wissen und explizites wissen), man kann Wissensarten ineinander überführen → Sozialisierung, Externalisierung, Kombination, Internalisierung

Beschreiben Sie die Sozialisierung ⇒ Stilles Wissen in stilles Wissen überführen (z.B. Erfahrung weitergeben)

Strength-Field-Theory (= Kraftfeldtheorie) ⇒ Siehe Def. im Skript…

Es gibt versch. Typen von Software, bitte nennen und erklären ⇒ Specifiable Type(braucht keine Evolution), Problem Solving Type, Embedded Type (inhärente Evolution, Teil der Welt)

Welche Arten der Softwarewartung gibt es ⇒ Korrektive:reaktiv, Präventive:prospektiv, Adaptive:reaktiv, Perfektionierende:prospektiv, reaktiv=reagierend und prospektiv=vorbäugend, erklärungen siehe skript

Die 8 Laws of Software Evolution nennen und „Conservation of organizational stability“ und „Conservation of familiarity“ erklären

Was bedeutete Entropie ⇒ Verfall der Qualität einer Software. Die Komplexität einer Software wächst mit jedem Wartungseingriff! Die Produktivität pro Eingriff sinkt

Welche Design Prinzipien sollte man beachten wenn man eine große Software entwickelt: - Separation of Concerns - Deferred Design (Zwei Prinzipien: Unterspezifikation, Prinzip der Zuständigkeit)

Was ist EAV, Vor- und Nachteile, wie schauen die Tabellen aus, was ist der Primärschlüssel der EAV Tabelle

Wenn noch Zeit: Data Quality: wie geht man mit DataQuality Problemen um? ⇒ Diagramm (laissez faire, etc) TDQM beschreiben

EBT

Gibt es auch Concerns die man nicht in eigene Komponenten bringen kann? ⇒ Ja, AOP, Das was in allen Komponenten gebraucht wird (Sicherheit, Logging usw)

Wie wäre es wenn man nicht sowas wie AOP machen würde? ⇒ In jeder Kompomente müsste man Code für Logging/Sicherheit schreiben, das führt zu Redundanz, hohe Kopplung!

PS: Wenn man auf Kopplung nicht kommt, wird man gefragt, was das Grundprinzip von Spring ist… Wenn man das dann immernoch nicht weiß: Inversion of Control erklären (am Beispiel von 2 Klassen): Klasse A hat Setter setB() und der Container(=Spring) sagt dann einer Klasse B sie soll A.setB(this) aufrufen. Ziel: Entkopplung Alternativ für setter sind XML-Klassen, die man bei Spring für AOP benutzt (Interceptor wird injectet)!

vorgehensmodelle, wasserfall beschreiben, was ist schlecht ⇒ Anforderungen ändern sich, late design breakage, User Feedback erst nach Deployment Was machen iterative methoden besser ⇒ Kurze Zyklen, schnelleres Feedback, Lessons Learned, frühes erkennen von Fehlern → Risikominimierung usw

Was tut man in frühen phasen ⇒ Domänenmodell, use cases identifizieren Was ist ein use case und was nicht ⇒ boss test etc

Serverseitige technologien nennen und beschreiben: cgi, servlets, jsp Was braucht der server immer ⇒ servlet container, z.b. apache tomcat

Model View Controller im klassischen Fall: Wie hängt View und Model zusammen ⇒ Mithilfe Observer-Pattern + kurze Erklärung

Warum klappt das bei MVC 2.0 nicht? ⇒ Wegen dem HTTP Request/Respone-Protokoll (Client schickt Request und Server Antwortnachricht) kann der Server nicht selber dem Client Bescheid geben, dass sich das Model geändert hat!

Protokoll #2

Prüfer: Prof. Lenz und F. Irmert

Dauer: Je 15 Minuten für EIS und EBT

Subjektiver Eindruck:

Beide Prüfer waren sehr nett, die Atmosphäre war locker. Ich stand ein paar Mal auf dem Schlauch weil mir 1-2 Begriffe nicht gleich eingefallen sind, das war aber nicht weiter schlimm (Zitat Prof. Lenz: „Nicht so schlimm, Namen sind nur Schall und Rauch“). Wichtig ist, dass man die Themen gut erklären kann und zeigt, dass man alles verstanden hat.

Die Fragen waren mehr als fair, aus dem riesigen Stoff-Angebot wurden eigentlich nur die leichtesten herausgepickt (In EIS wurde eigentlich nichts aus den Kapiteln > 6 gefragt).

Der Fokus in EBT lag eindeutig auf Web-Basics + ein bisschen MVC, also nichts mit Hibernate, XML, ORM oder Beans.

EIS

Allgemeine Definitionen:

- Was ist ein evolutionäres Informationssystem?

- Organisatorisches Lernen erklären → SEKI Modell nennen und erläutern

- Psychologische Probleme bei der SW-Entwicklung nennen: „Paradox of Expertise“, „Kognitive Dissonanz“

SW-Entwicklung und Wartung:

- Softwaretypen nach Lehman und Belady kurz erläutern, E-Type im Detail erklären, „Wieso ist das Wasserfallmodell für E-Type SW nicht geeignet?“

- Idee hinter den Gesetzen von Belady erläutern, man kann allerdings auch einfach alle 8 aufzählen

- Force Field Theorie erläutern

- Prinzipien bei der SW-Entwicklung: „Separation of concerns“, „Deferred Design“, letzteres sollte erklärt werden

- Vier Arten der Wartung nennen inkl. Einordnung (Reaktiv vs. prospektiv und Verbesserung vs. Korrektur)

EAV:

- Was kann man tun wenn im DB-Schema viele Attribute auftauchen? → EAV erklären, Vor- und Nachteile → Semantische Kontrolle nennen!

- Wie kann man die semantische Kontrolle zurückgewinnen? → EAV CR erklären

- Wieso benutzt man dann nicht nur noch generische DB-Schemata? → Nachteile EAV CR, v.a. komplexe Anfragen und Bedarf an einem Anfragegenerator

EBT

Hauptsächlich Fragen zu Web-Basics:

- Anfänge grob erklären: HTTP, HTML → was fehlt? → Dynamik

- Beispiele zur Client-seitigen Dynamik nennen

- Grundlegenden Ablauf erklären (Code wird mitgeschickt, läuft im Client)

- Applet erklären, Vor- und Nachteile

Danach Server-seitige Dynamik:

- „Großvater“ von den Techniken nennen (CGI) und kurz erklären → Nachteil: Performance!

- JSP erklären: Ablauf bei einem Request, „Welche Voraussetzungen müssen erfüllt werden?“ → Servlet-Container und Java Runtime

- Am besten gleich „HTML in Code“ vs. „Code in HTML“ erklären, wenn man auf JSP kommt

MVC:

- klassisches MVC aufmalen und erklären, inkl. Observer.

- Besonderheiten von MVC v2 erläutern und Gründe für die Einführung des zweiten Modells nennen (kein HTTP PUSH möglich).

- Dafür dann die Lösung erläutern → AJAX → Asynchrone HTTP Requests.

„Bonusfrage“:

- Bei vielen SW Entwicklungen gibt es ein Problem im Hinblick auf „Separation of Concerns“, wie wird dieses gelöst? (Beispiel: Spring) → Antwort: AOP, kurze Erläuterung inkl. Cross-cutting concerns