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

2018-06-22 / 29: Persistenz, ORM, Hibenate

Content

  • Testing
  • Persistence, O/R Mapping
  • Hibernate

Materials

Fragen (können tw. erst nächste Stunde beantwortet werden

  • 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.
  • Nicht besprochen, sollte aber bekannt sein

    • Implementierung von 1:n Beziehungen in Java
    • 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?

Questions (partially can be answered only after next lecture)

  • How to reflect a 1:1 relation ship in a database? What are the alternatives?
  • How to reflect inheritance relationships in a database? Discuss the advantages and disadvantages of the alternatives.
  • Please recall 

    • How 1:n relationshiops are reflected in Java
    • The differences of Lists, Sets, Maps
    • Important Java classes to work with JDBC such as DriverManager, Connection and Statement

  • What are the most important SQL datatypes? How are they mapped to Java datatypes?
  • What are the advantages of working with Hibernate and annotations?
  • What do you have to do in order to persist a class in Hibernate? What are the roles of HibernateSessionFactory and hibernate.cfg.xml? Which annotations are required?
  • How do you persist 1:n relationships using Hibernate and Annotations?
  • Does Hibernate support different strategies to persist inheritance relationships? If yes, how?

2018-06-07 & 15: Testing

Content

  • Module / Unit Tests
  • Tools: JUnit
  • Integration tests, integration test strategies
  • System tests: usability, blackbox-testing, load & stress tests

Materials

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.

Questions

  • What are the citeria for software quality according to ISO 25010
  • How do you achieve software with these quality aspects?
  • Who is testing in which life cycle phase which part of the system with what tools?
  • What is equivalence class based testing? What error based and boundary based testing?
  • Give examples for each of the methods
  • What are the different integration strategies? What are the pros and cons?
  • What is the difference between stress and load tests?
  • Was are black and white box tests?
  • What are static and dynamic tests?

Hints for the final exam: You should be able to

  • draw a program graph for a simple piece of program code (method)
  • calculate the cyclometric complexity for a given program graph
  • specify test cases (parameters) to test a method with 100% statement and/or condition coverage
  • describe which quality aspect according to ISO 25010 is tested in which life cycle phase
  • define test cases using equivalence, bounary, and error based  test methods

2018-06-01: Build Management

Content

  • Recapitulation requirements engineering
  • Build management

Materials

Fragen (Deutsch)

  • 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 ein "continuous integration server"? Was macht der? Nennen Sie einen bekannten Vertreter.

Questions (English)

  • What is a build?
  • What are the advantages of a (automated) build management?
  • What are the inputs and outputs of a build process?
  • What are typical tasks of a build?
  • What are the names of ANT tasks to

    • create a diretory
    • delete a directory
    • compile files
    • execute JUnit tests
    • generate JavaDocs?

  • How do you define variables in ANT?
  • How do you determine the sequence of ANT tasks?
  • How do you program your own ANT task?
  • What does a continuous integration server? What is a popular open source CI server?

2017-05-08: Requirements-Engineering

Content

  • Recapitulation Software Processes
  • Requirements-Engineering, Context Analysis

Materials

Fragen

  • Welche Probleme 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.

Questions

  • Which typical problems encounter companies that do not derive requirements systematically?
  • What's wrong with directly asking users for their requirements?
  • Who are the stakeholders in a software project?
  • Describe the process of deriving the stakeholder and system requirements
  • What are typical results / documents / artifacts?
  • How to document needs and user requirements? (phrasing pattern) What are the differences?
  • Assign the activities the phases in the V-model
  • How to validate user needs and user requirements? Checklist questions
  • What are typical questions in a context interview?

2018-05-11: Development Processes

Content

  • Software-Quality
  • Development processes (part 1)

Materials

Fragen (Deutsch)

  • 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?
  • Welche Rollen sind an der SW-Entwicklung beteiligt? Was sind die jeweiligen Aufgaben?

Questions (English)

  • What are the activities during a V-Model?
  • What are the differences between a V-Model and a waterfall model?
  • What are the characteristics of an agile process?
  • Describe the terms Scrum, Backlog, Sprint
  • In which phases of theses processes the software actually is tested?
  • Which are the involved roles? What are the respective responsibilities and tasks?

2018-05-05: JSPs

Inhalt

  • JSP

Unterlagen

Fragen (Deutsch)

  • JSP

    • 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 <%@ include file="..."%> von <jsp:include page="..."/>?

  • Webprogrammierung allgemein: Welche der folgenden Aussagen sind korrekt?

    • Bei AJAX kann man das Servlet (s. letzte Stunde) durch eine PHP-seite ersetzen, ohne dass der Client-seitige Code geändert werden muss.
    • Eine Validierung von Eingaben in einem Formular bedarf AJAX.
    • Man kann in Java-Script Methoden im Backend (z.B. in Servlets) direkt aufrufen.
    • Servlets laufen immer im Backend.
    • PHP läuft immer im Backend.
    • AJAX läuft immer im Frontend (Client).
    • JavaScript läuft immer im Frontend (Client).
    • JSPs laufen immer im Frontend.
    • Unter der URL http://localhost:8080/MeinProject/servlets.MeinServlet kann man (wahrscheinlich) das Servlet "servlets.MeinServlet" erreichen 
    • Unter der URL http://localhost:8080/MeinProject/servlets.MeinServlet.java kann man (wahrscheinlich) das Servlet "servlets.MeinServlet" erreichen 
    • Unter der URL http://localhost:8080/MeinProject/MeinServlet.doSth kann man (wahrscheinlich) die Methode doSth auf der Klasse "MeinServlet" aufrufen.

Questions (English)

  • JSP

    • What do JSPs and servlets have in common? What are differences?
    • What are the most important JSP script elements?
    • The scriplet <%= ...%> is an abbreviation for?
    • What are implicit ("predefined") objects in JSP?
    • How do you define attributes on a class level and not inside the "service" method?
    • Is it possible to use import and extends statements inside a JSP file?
    • What are the differences of <%@ include file="..."%> and <jsp:include page="..."/>?

  • Web programing in general: Which of the following statements are correct? Explain your answer!

    • IT is possible to replace a servlet by a PHP page without changing the client code (HTML / JS)
    • An input validation requires AJAX
    • A web client can directly call Java classes (e.g. on Servlets) using JavaScript
    • Servlets always runs in the backend / server
    • PHP always runs in the backend
    • AJAX  always runs on the frontend / client
    • JavaScript  always runs on the client
    • JSPs  always run on the client
    • A Servlet "servlets.MeinServlet" typically is accessible via the URL http://localhost:8080/MeinProject/servlets.MeinServlet
    • Via the URL http://localhost:8080/MeinProject/MeinServlet.doSth one most probably can access the method "doSth" on the servlet "MeinServlet"

2018-04-27: Servlet, AJAX

Contents

  • Servlets II
  • AJAX

Unterlagen

Fragen (Deutsch)

  • 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?
  • Welche Funktionen bietet Ihnen JQuery, um JSON-Dateien per Ajax nachzuladen und deren Daten im Browser zu verarbeiten?
  • Was unterscheidet die $.load von der $.ajax-Methode?
  • Welche(n) Übergabeparameter erwartet die $.ajax-Methode?
  • Was drück man mit dem Parameter "success" bei der $.ajax-Methode aus? Wie nennt man solche Funktionen? Wer ruft diese Funktion auf?
  • Wie verbindet man mit JQuery HTML-Elemente mit Event-Handlern?

Questions (English)

  • What happens to a servlet when finishing a request?
  • What are typical use cases for methods init() and destroy()?
  • What is the URL to call a particular servlet? Can you change the URL without renaming the servlet?
  • How do your run web application (JEE, servlets) outside of Eclipse?
  • How does the server recognize a client even HTTP is a stateless protocol? How do you deal with that in Java (JEE)?
  • What is AJAX? Which technologies does AJAX use?
  • What are the benefits of AJAX-applications? What are the downsides?
  • Is the HTML code that you can see under "view > show source doce") matching what you see on the webpage if the webpages uses AJAX?
  • What do you need on the server side to answer AJAX requests? What does the client (Browser) need to invoke AJAX requests?
  • Which methods offers JQuery to make AJAX requests and to load and process JSON Data in the browser?
  • What is the difference between the $.load and the $.ajax method?
  • Which parameter(s) expects the $.ajax method?
  • What is the goal of the $.ajax-method's parameter "success"?

2018-04-20: Servlets

Content

  • Http Protocol
  • Dynamic webpages
  • Servlets, Sessions

Unterlagen

Fragen (Deutsch)

  • HTTP

    • 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?

  • Servlet

    • 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?

Questions (Englishh)

  • HTTP

    • What are the main characteristics of HTTP?
    • What contain the request / response line, what contain the headers and bodies?
    • What is the difference between GET and POST requests? Is is valid to state, that POST provides a secure transmission of passwords?

  • What technologies exist to generate dynamic webpages?
  • Servlet

    • What is a servlet?
    • What methods should a servlet overwrite?
    • How can a servlet access form parameters?
    • How does a form look like to generate HTTP requests?
    • Who calls the methods doGet() and doPost()?
    • What are use cases for the class HttpSession?

2018-4-13: JavaScript, JQuery, JSON, HTML5

Content

  • JavaScript: Objects, Functions
  • JavaScript: Manipulation of DOM-Tree
  • JQuery
  • JSON
  • HTML5

Unterlagen

Questions

  • JavaScript

    • Which options exist to define objects in JavaScript
    • How do you access and manipulate HTML elements (e.g. by adding childs)
    • How do you manipulate the DOM-tree using JQuery
    • What are the most important features / functions of JQuery

  • JSON

    • Which data types are defined in JSON?
    • What are the commonalities and differences between JSON and XML?
    • How do you navigate to a particular element in a JSON document?
    • How do you iterate over a JSON array?

  • HTML5

    • Welche neuen Elemente definiert HTML5?
    • Wie bindet man mit HTML5 ein Video ein?
    • Was ist der Sinn der neuen Input-Types? (z.B. <input type="email" placeholder="email"/>) 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)
    • Welche Anwendungsfälle sehen Sie für das <canvas>-Element?

2018-04-06: JavaScript, DOM

Inhalt

  • JavaScript

Unterlagen

Fragen

  • JavaScript
    • 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?
    • Was ist ein Callback

Questions

  • JavaScript

    • Where and how do you define JavaScript?
    • How are methods invoked? How do you react on a user input e.g. a click on a button?
    • What are the commonalities and differences between Java and JavaScript Syntax?
    • What is a callback?

2018-03-23: Versionsverwaltungssysteme

Content

  • Version control

Documentation

Lernziele (deutsch)

  • können die Probleme nennen, die eine Versionsverwaltung löst
  • Sie können diese Begriffe mit eigenen Worten erklären: Repository, Working Copy, check-out, commit, merge, pull, fetch, push, clone Index, Master, Branch, Tag
  • Sie können die Unterschiede von zentralen und dezentralen Versionsverwaltungssystemen erklören
  • Sie können einfache Arbeitsabläufe mit git durchführen:
  • Dateien dem Index hinzufügen und entfernen
  • Dateien "committen"
  • Einen Branch erstellen und Branches wieder zusammenführen
  • Ein zentrales Repository anlegen und Dateien hochladen und von dort holen

Learning objectives

  • see presentation

Fragen (deutsch)

  • Weshalb setzen professionelle Entwickerinnen und Entwickler (und deshalb auch Sie) immer Versionsverwaltungssysteme ein?
  • Was ist die Aufgaben des Index (der Staging Area)?
  • Welchen Vorteil hat es, dass man mit lokalen und remote Repositories arbeitet?
  • Wie geht man vor, wenn man zu einem alten Versionsstand zurückkehren möchte?
  • Wann legt man einen Branch an?
  • Was ist der Unterschied zwischen pull und fetch?

Questions

  • Why do professional software developers (this includes you!) always work with version control systems
  • What is the task for the index (staging area)?
  • What are the advantages of distributed version control systems over central repositories?
  • How do you  return to a previous version?
  • How do you create a branch?
  • When do you create a new branch?
  • What is the difference between pull and fetch?

2018-03-16: HTML, CSS

Inhalt

  • HTML
  • CSS

Unterlagen

Fragen

  • HTML

    • 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?

  • CSS

    • 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?
    • Welche Selektoren kennen Sie?
    • Wie positioniert man Elemente mit CSS?
    • 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.
    • Wie lautet die Syntax von CSS? Wo definiert man CSS-Angaben?