home  |  suche  |  kontakt/johner  |  institut  |  hinweise 
studierende  |  tech-docs  |  blog  |  mindmailer 

Übersicht

2012-01-27: Persistenz, Klausurvorbereitung

Inhalt

  • Persistenz, O/R Mapping
  • JDBC
  • Hibernate
  • Klausurvorbereitung

Unterlagen

Fragen

  • Wie kann man eine 1:1 Beziehung in einer relationalen Datenbank abbilden?
  • Wie kann man eine Klasse Student in einer Datenbank speichern, wenn der Student die Attribute name: String, matrikelnummer: int und adresse:Adresse hat, wobei der Datentyp Adresse aus einer plz:int und einem ort:String besteht?
  • Wie bildet man Vererbungsbeziehungen in Datenbanken ab? Diskutiere die Vor- und Nachteile von drei verschiedenen Optionen.
  • Was ist eine JDBC-ODBC-Bridge? Was ist ein Treiber der Klasse 4?
  • Nenne drei wichtige Java-Klassen, um Objekte in Datenbanken zu speichern, zu ändern und abzufragen
  • Nenne die wichtigsten SQL Datentypen. Wie kann man diese auf die Java-Datentypen abbilden?
  • Welchen Vorteil sehen Sie beim Einsatz von Hibernate mit Annotations?
  • Was müssen Sie machen, um eine Klasse mit Hibernate zu persistieren?
    • Welche vorbereitenden Schritte sind notwendig zum Einrichten der Datenbank (-verbindung)?
    • Welche Rolle spielt dabei unsere Klasse HibernateSessionFactory? Welche die Datei hibernate.cfg.xml?
    • Welche Annotationen benötigen Sie?
  • Wie sieht der Code aus, mit dem eine annotierte Klasse gespeichert wird?
  • Mit welchen Annotationen werden 1:n Beziehungen abgebildet?
  • Wie wird Vererbung realisiert? Wie werden die verschiedenen Strategien (eine, zwei oder drei Tabellen) erreicht?

2012-01-13/20: Testing

Inha

  • Modultests
  • Werkzeuge: Clover, JUnit
  • Integrationstests, Integrationsstrategien
  • Systemtests
  • Akzeptanztests

Unterlagen

Fragen

  • Was sind Qualitätskriterien guter Software?
  • Wie erreicht man diese Software-Qualität außer durch Testen?
  • Wer testet was mit welchen Werkzeugen welches ISO9126-Kriterium bei
    • Modultests
    • Integrationstests
    • Systemtests
    • Akzeptanztests
  • Ordne diese Tests in das V-Modell ein
  • Was wird bei Reviews geprüft? Wer prüft?
  • Was ist die Methode der Äquivalenzklassen? Wann setzt man diese Methode ein?
  • Beschreibe Tests mit Äquivalenzklassen, Grenzwertanalyse, fehlerbasiertem Testen auch anhand von Beispielen
  • Welche Integrationsstrategien kennen Sie? Welche Nachteile und Vorteile haben sie?
  • Wie unterscheiden sich Last- und Stresstests?
  • Welche weiteren Teststrategien wendet man beim Systemtest an?
  • Was sind Black- und Whitebox-Tests? Nennen Sie Beispiele
  • Was sind statische und dynamische Tests? Nennen Sie Beispiele

Hinweise zur Klausur: Sie sollten in der Lage sein,

  • für ein Stück einfachen Programmcode, den Programmgraf zu zeichnen
  • für einen gegebenen Programmgraf die zyklomatische Komplexität zu berechnen
  • Testfälle (Parameter) zu spezifizieren, damit ein gegebenes Programm mit 100% Anweisungs- oder Zweigabdeckung bzw. mit 100% Einfach-/Mehrfachbedingungsabdeckung getestet wird
  • Werkzeuge zum Testen zu benennen
  • zu beschreiben, welches ISO 9126 Kritierium in welcher Teststufe getestet wird
  • für ein einfaches Beispiel das Testen mit Äquivalenzklassen zu erläutern.

2012-01-13/20: Buildmanagement mit Maven

Inhalt

  • Buildmanagement
  • Versionsmanagement
  • Konfigurationsmanagement

Unterlagen

Fragen

  • siehe Fragen letzte Stunde
  • Wie unterscheidet sich Maven von ANT?
  • Was definiert die pom.xml?
  • Wo ist festgelegt, von wo Maven referenzierte Bibliotheken herunterlädt?
  • Was die die Aufgaben folgender Server?
    • Build-Sever
    • Versionsverwaltung
    • Repository-Server
    • Testserver
  • Nenne je ein Beispiel für ein Produkt für jede dieser Server

2011-12-23: Build- und Versionsmanagement

Inhalt

  • Buildmanagement
  • Versionsmanagement

Unterlagen

Fragen

  • Welche Gründe sprechen für ein Buildmanagement
  • Was ist ein Build?
  • Welche Artefakte fließen in einen Build ein?
  • Welche Artefakte können das Ergebnis eines Builds sein?
  • Welche Tätigkeiten müssen dabei ausgeführt werden?
  • Wie heißen die ANT-Tasks, um
    • Verzeichnisse anzulegen
    • Dateien zu kompilieren
    • JUnit-Tests durchzuführen
    • JUnit-Tests zu dokumentieren
    • JavaDocs zu erstellen?
  • Wie definiert man in ANT Variablen, welche beispielsweise einen Pfad enthalten?
  • Wie legt man die Reihenfolge fest, in der ANT-Tasks aufgeführt werden?
  • Wie erstellt man einen eigenen ANT-Task?
  • Was ist die Aufgabe eines Versionsverwaltungssystems?
  • Was versteht man unter den Begriffen
    • Commit
    • Merge
    • Head
    • Release
    • Tag
    • Branch
    • Update
  • Wie unterscheidet sich Maven und ANT, welche Gemeinsamkeiten haben sie?
  • Wann erzeugt man einen neuen Branch (Zweig)? Weshalb sollte man nur sparsam neue Zweige anlegen?
  • Wobei sind Tags nützlich?
  • Was passiert, wenn zwei Entwickler an der gleichen Datei arbeiten und die Datei wieder ins Versionsverwaltungssystem (Repository) zurückschreiben?

2011-12-16: Requirements-Engineering II, BPMN

Inhalt

  • Abschluss Requirements-Engineering
  • BPMN

Unterlagen

  • Vorlesungsmitschrieb (wieder auf /Merkur/Lehre/Johner/SOTE2)

Fragen

  • Wie überführt man Nutzungsanforderungen in Systemanforderungen?
  • Welche Notationselemente kennt BPMN?
  • Wo müssen Nachrichtenflüsse, wo Sequenzflüsse modelliert sein?
  • Welche Events dürfen keine Ereignisse fangen, welche keine werfen?
  • Welchen Gateway-Typ wählen Sie, um auf alle durchlaufenen Kanten bei einem aufgezweigten Prozessfluss zu warten?
  • Welche Notationselemente dürfen/müssen nach Inklusive-Gateways und welche nach Event-Gateways kommen?
  • Worin unterscheiden sich embedded und reusable Subprozesse?
  • Im Rahmen eines Prozesses soll ein Anwender Daten in ein System eingeben. Welchen Aktivitätstyp wählen Sie?
  • Welche Typen von Ereignissen bezeichnen ausgefüllte Symbole?

2011-12-09: Requirements-Engineering

Inhalt

  • Requirements-Engineering
    • Probleme durch mangelhaftes RE
    • Definitionen und Erheben von Anforderung
    • Kontext-Analyse

Unterlagen

  • Der Vorlesungsmitschrieb findet sich auf Merkur. Bitte halten Sie die Unterlagen vertraulich!

Fragen

  • Welche Probeme treten auf, wenn man Anforderungen nicht systematisch erhebt?
  • Weshalb kann/soll man nicht einfach die Anwender fragen, was sie sich wünschen?
  • Wer sind mögliche Stakeholder in einem Projekt? Wie kann man diese beschreiben?
  • Beschreibe den Prozess des Erhebens von Anforderungen
  • Wie lassen sich die Ergebnisse dieses Prozesses dokumentieren?
  • Wie formuliert man Erfordernisse und Anforderungen? Wie unterscheiden sich beide?
  • Wie lassen sich das Ergheben der Erfordernisse, der Nutzungsanforderungen der Nutzungsszenarien den Phasen des V-Modells zuordnen?
  • Erfordernisse, Nutzungsanforderungen, Beschreibung der Nutzungsszenarien, Spezifikation der GUI: Welche dieser Punkte beschreiben Sie im Lasten- welche im Pflichtenheft?
  • Welche Arten von Anforderungen lassen sich mit der Kontextanalyse ableiten, welche nicht?
  • Mit welchen Leitfragen können die Qualität von Erfordernissen und Nutzungsanforderungen prüfen?
  • Welche Fragen stellt man in einem Kontextinterview den Vertretern der Benutzerrollen? Welche nicht?
  • Was kann ein Anwender an einem System aus Sicht des Requirements-Enginnerings "machen"?

Tipp: Regelmäßiges Üben mit dem Mindmailer hilft Ihnen, den Stoff schnell und nachhaltig zu wiederholen und bei gleichem oder gar niedrigerem Lernstress eine bessere Klausur zu schreiben.

2011-12-02: PHP-Klassen, Entwicklungsprozesse

Inhalt

  • PHP: Klassen
  • Entwicklungsprozesse

Unterlagen

Fragen

  • Wie schreibt man in PHP eine Klasse? Wie importiert man diese in eine andere? Wie instanziert man Klassen?
  • Wie gestaltet man in PHP Vererbungsbeziehungen und Interfaces?
  • Erläutern Sie die Phasen des V-Modells. Wie unterscheidet es sich vom Wasserfallmodell? Wieviele Prozent der Projektzeit entfallen in etwa auf die Implementierung?
  • Was sind die Kerncharakteristiken agiler Prozesse und des RUPs?
  • Bescheibe die Begriffe Scrum, Backlog, Sprint
  • Was sind die Kerncharakteristiken des XPs und des RUPs?
  • In welche Phasen dieser Prozesse wird die Software getestet?

2011-11-25: PHP

Inhalt

  • PHP

Unterlagen

Fragen

  • Mit welcher Java-Technologie ist PHP am ehesten vergleichbar?
  • Was benötigt man, um eine PHP-Anwendung zu betreiben?
  • Wie definiert man in PHP
    • einen PHP-Block?
    • eine Variable?
    • ein Array?
    • eine globale Variable?
  • Welche globalen Variablen sind bereits definiert?
  • Wie iteriert man über ein Array?
  • Wie unterscheiden sich Strings in doppelten und einfachen Anführungszeichen?
  • Wie startet man eine Session? Wie greift man auf darin gespeicherte Werte zu? Wie speichert man Werte in einer Session?

2011-11-18: JSTL, eigene Tag Libs

Inhalt

  • JSTL
  • Custom Tag Libraries

Unterlagen

Fragen

  • Welchen Nachteil von JSP-Seiten hilft die JSTL zu beheben?
  • Welchen Sprachumfang hat die JSTL?
  • Beschreibe, wie man eine eigene Tag-Library entwickelt

2011-11-11: JSP

Inhalt

  • JSP

Unterlagen

Fragen

  • Was haben JSPs und Servlets gemeinsam? Was unterscheidet beide?
  • Welche Skriptelemente kennen JSPs?
  • Welchen Scriplet-Code kürzt <%= ...%> ab?
  • Was sind "implizite Objekte" bei JSPs? Welche kennen Sie?
  • Wie definiert man "klassenweite" Attribute? Wie definiert man import und implements?
  • Worin unterscheiden sich <%@ import file="..."%> von <jsp:include page="..."/>?

2011-11-04: Servlet, AJAX

Inhalt

  • Servlets II
  • AJAX

Unterlagen

Fragen

  • Was passiert mit einem Servlet, wenn es einen Request bearbeitet hat?
  • Wozu dienen die Methoden init() und destroy()?
  • Unter welcher URL ruft man im Browser ein Servlet auf, das in einem Eclipse-Projekt angelegt wird?
  • Wie betreibt man eine Webanwendung (mit Servlets) außerhalb von Eclipse?
  • Wie kann man den Client und dessen Daten/State wiedererkennen, obwohl HTTP ein zustandsloses Protokoll ist? Wie realisiert man diese Lösung mit Servlet?
  • Was ist AJAX? Welche Technologien setzt es ein?
  • Welche Vorteile hat einer AJAX-Anwendung? Welche Voraussetzungen benötigt AJAX? Welche Nachteile bringt es mit sich?
  • Stimmen der HTML-Code, den man sich über Ansicht -> Seitenquelltext ansehen kann, bei AJAX-Anwendungen mit dem angezeigten notwendigerweise überein? Welche Rolle spielt hierbei das DOM?
  • Was braucht man auf Serverseite, um mit AJAX arbeiten zu können?
  • Was schickt der Server dem Browser zurück?

Beispiel füer das Arbeiten mit AJAX-Request

function sichtbarmachen(){
  var eingabe = document.getElementById("eingabefeld");
  if(eingabe.value != "") {
    var url = "http://localhost:8080/SOTE-2009-10-30/AjaxServlet?wert=" + escape(eingabe.value);
    var req;
    if (window.XMLHttpRequest) {
      req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
      req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.onreadystatechange = function() {
      if (req.readyState == 4) { //wenn die Anwort da ist
        if (req.status == 200) { //wenn die Antwort "okay" lautet
          var ergebnis = req.responseText;
          document.getElementById("austausch").innerHTML = ergebnis;
        }
      }
   };
   req.open("GET", url, true);
  req.send(null);
  }
}

2011-10-28: Servlets

Inhalt

  • Dynamische Webseiten
  • Servlets, Sessions

Unterlagen

Fragen

  • Was ist ein Servlet?
  • Von welcher Klasse erbt Ihr Servlet?
  • Welche Methode(n) müsste Ihr Servlet überschreiben?
  • Wie kann Ihr Servlet auf Requestparameter zugreifen?
  • Wie sieht ein Formular aus, welches einen solchen Request erzeugt?
  • Was muss man machen, um ein Servlet nutzen zu können.
  • Für wieviele Request kann ein Servlet genutzt werden?
  • Welche Aufgabe kommt der Klasse HttpSession zu? Über welche wichtigen Methoden verfügt sie?
  • Wer ruft die Methoden wie doGet() auf einem Servlet auf?

2011-10-21: HTM5, HTTP

Inhalt

  • HTML5
  • HTTP

Unterlagen

Fragen

  • Welche neuen Elemente definiert HTML5?
  • Wie bindet man mit HTML5 ein Video ein?
  • Was ist der Sinn der neuen Input-Types? (z.B. <code><input type="email" placeholder="email"/></code>) Was ist die Aufgabe des Attributes "placeholder"?
  • Wie kann man mit HTML5 eine Zeichnung auf eine Webseite einfügen?
  • Beschreibe die Vorteile von HTML5 für die Entwicklung von mobilen Anwendungen (z.B. für iPhone, iPad, Android-Telefone)
  • Nennen Sie Charakteristiken von HTTP
  • Was steht bei HTTP in der Request-/Responsezeile, im Header und im Body?
  • Wie unterscheiden sich GET und POST Requests? Kann man sagen, POST Requests seien für die Äbertragung von Passwörtern sicherer?
  • Welche Technologien kennen Sie, um dynamische Webseiten zu erzeugen?
  • Wer ruft die Methoden wie doGet() auf einem Servlet auf?

2011-10-14: CSS, JavaScript, DOM

Inhalt

  • Wiederholung HTML, CSS
  • JavaScript, DOM

Unterlagen

Fragen

  • Wie und wo definiert man einen JavaScript-Dokument
  • Wie ruft man eine Funktion auf? Beispielsweise dadurch, dass man auf etwas klickt...
  • Welche Gemeinsamkeiten haben JavaScript und Java bezüglich der Syntax? Was ist unterschiedlich?
  • Wie definiert man Objekte? Wie arbeitet man damit?
  • Die greift man auf HTML-Elemente zu?
  • Wie ändert man den Wert dieser Elemente? Wie fügt man neue hinzu?

2011-03-18: HTML

Inhalt

  • HTML
  • CSS

Unterlagen

Fragen

  • Wie sieht die Grundstruktur einer HTML-Seite aus?
  • Wo und wie legt man den Seitentitel fest, der in der Browserleiste angezeigt wird?
  • Wie legt man Tabellen in HTML an? Wie unterscheiden sich die beiden Tags <td> und <th> in ihrer Bedeutung?
  • Wie deklariert man ungeordnete und geordnete Listen?
  • Wie definiert man Links?
  • Wie schreibt man ein Formular in HTML? Was bedeutet 'method="get"'?
  • Nennen Sie den HTML-Code um ein Feld "Bezahlung mit" aus Radio-Buttons "Kreditkarte", "Rechnung" und "Nachname" anzulegen.
  • Mit welchem HTML-Element bekommt man einen Absende-Button?
  • Wie erreicht man Barrierefreiheit?
  • Wo und wie bindet man Stylesheets in eine HTML-Seite ein?
  • Wie lautet die Syntax f?r die Definition von Stylesheet-Angaben?
  • Auf welche "Elemente" einer HTML-Seite k?nnen diese Angaben bezug nehmen?
  • Wie w?rde man die Schrift der ganzen HTML-Seite mit blauer Verdana-Schrift darstellen? Nennen Sie die notwendigen Angaben im HTML und CSS.
  • Wie w?rde man einen Bereich rot hinterlegen und auf der Seite verschieben? Nennen Sie die notwendigen Angaben im HTML und CSS.