Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
73 Cards in this Set
- Front
- Back
Erläutern Sie einen möglichen Aufbau eines Projektmanagements |
Zu Anfang wird ein Lenkungsausschuss gebildet. In diesem Lenkungsausschuss sitzt der Auftraggeber, Vertreter der Fachabteilung und Vertreter des Auftragnehmers. Von ihnen wird ein Projektleiter beauftragt, der wiederum seine Entwicklter oder Teilteamleiter und seinen Chefdesigner beauftragt. Der Projektleiter hält direkten Kontakt zu den Vertretern des Arbeitnehmers und berichtet dem Lenkungsausschuss. Zusätzlich benennt der Lenkungsausschuss einen Qualitätsbeauftragten, der an den Lenkungsausschuss und an den Projektleiter berichtet. |
|
Wer sind typischerweise die Stakeholder in einem IT-Projekt und welche Funktionen und Ziele haben Sie? |
Management
|
|
Warum ist die Aufwandsplanung der schwierigste Teil der Projektplanung und wie geht man damit um? |
• man weiß noch nicht viel über das Projekt
|
|
9 Disziplinen RUP |
Sechs "Kernarbeitsschritte"
|
|
4 Phasen RUP
|
Inception
Elaboration Construction Transition |
|
RUP Inception |
Erste Konzeptionsphase
|
|
RUP Elaboration |
• Architektur
|
|
RUP Construction |
• UML Diagramme überarbeitet
|
|
RUP Transition |
• Abnahme und Akzeptanztests |
|
Beschreiben Sie die Softwareentwicklung mit RUP |
RUP ist ein iteratives Vorgehensmodell zur Softwareentwicklung. Die Arbeitsschritte werden für jede Iteration in neun Disziplinen aufgeteilt.
Dazu gibt es in RUP vier Phasen, in denen die oben genannten Arbeitsschritte mehr oder weniger intensiv zum Einsatz kommen. Jede Phase ist in eine oder mehrere Phasen unterteilt und resultiert in einem Meilenstein. |
|
Erläutern Sie die Softwareentwicklung mit Scrum |
Scrum ist ein inkrementelles und iteratives Vorgehensmodell. Die Projektlaufzeit wird in Sprints unterteilt. Am Anfang wird entworfen, später programmiert und getestet. Jeder Sprint dauert ungafähr gleich lang und liefert am Ende ein funktionsfähiges Inkrement für die auszuliefernde Software.
|
|
Welche Rollen gibt es im SCRUM Modell? |
Product Owner
Team
ScrumMaster |
|
Was macht der Product Owner bei Scrum? |
• Verantwortlich für das künftige Produkt
|
|
Was macht das Team bei Scrum? |
• Alle Teammitglieder arbeiten am aktuellen Sprint mit (Vollzeit) |
|
Was macht der Scrum Master? |
• sorgt für störungsfreies Arbeiten des Teams |
|
Welche Beziehungsarten kennen Sie? Nennen Sie 3 und erläutern Sie. |
Assoziation
Aggregation
Komposition |
|
Was ist der Zusammenhang von Vererbung, Spezialisierung und Generalisierung? |
Eigenschaften der übergeordneten Klasse übernehmen (wiederverwenden). Spezialisierung ist die Blickrichtung von oben nach unten (allgemein zu speziell), Generalisierung ist die Blickrichtung von unten nach oben (speziell zu allgemein) |
|
Was ist ein Versionierungssystem und wozu dient es? |
Ein Versionierungssystem dient der Erfassung von Änderungen an Dokumenten und Dateien. Hauptaufgaben sind:
|
|
Welche Arten von Versionierungssystemen gibt es? |
• Zentrales Versionierungssystem (z.B. Subversion) |
|
Erläutern Sie die prinzipielle Arbeitsweise von GIT! |
Git ist ein dezentrales Versionierungssystem. Während der Entwickler arbeitet, braucht er keinen Netzwerkzugriff da er ein lokales Repository inklusive Versionsgeschichte hat. Zu Projektbeginn führt jeder Entwickler "Clone" aus, um eine Kopie von Origin als lokales Repository zu erzeugen. Mit "Pull" können aktualisierte Dateien von Origin in das lokale Repository herunter geladen werden. Mit Commit werden lokal geänderte Dateien in das lokale Repository übernommen. "Push" lädt die lokalen Änderungen in "origin". Mit "Branching kann ein neuer Zweig erstellt und durch "Merging" kann er wieder zusammen geführt werden. |
|
Was ist der Unterschied zwischen einem Fast-Forward Merge und einem 3-Way Merge? |
Bei einem Fast-Forward-Merge gab es keine Änderungen an den bearbeiteten Dateien durch andere Nutzer. Der Feature-Branch kann einfach mit dem Master-Branch gemerged werden. |
|
Was sind Regressionstests? |
Unter einem Regressionstest versteht man in der Softwaretechnik die Wiederholung von Testfällen, um sicherzustellen, dass Modifikationen in bereits getesteten Teilen der Software keine neuen Fehler ("Regressionen") verursachen. |
|
Beschreiben Sie Test-Drive Development! |
Zyklus: Einen Test implementieren
Vorteile |
|
Beschreiben Sie Behavior-Driven Development (BDD)! |
Voraussetzung für eine korrekte Implementierung der Tests ist, dass der Entwickler die User Story verstanden haben muss. Um das zu gewährleisten, bietet BDD eine formalisierte Sprache, mit der unmissverständlich die Anforderungen für den Entwickler definiert werden können. |
|
Was gehört zum Build-Management? |
• Übersetzung Quell- und Testcode
Beispiele: Maven, Gradle, Ant, Jenkins (Continuos Integration) |
|
Erklären Sie die prinzipielle Arbeitsweise eines Ticketsystems am Beispiel JIRA! |
Ein Ticketsystem erlaubt Entwicklern Tickets zu formulieren, in denen Sie Aufgaben definieren.
Die Tickets können anhand ihrer Dringlichkeit priorisiert werden.
|
|
Welche Themen kann ein Ticket in einem Ticketsystem haben? |
• Bug |
|
Welche Dringlichkeitsarten gibt es bei einem Ticketsystem? |
• Blocker • Critical |
|
Was ist Continuous Integration und welche Ziele sollen damit erreicht werden? |
• Quellcode in einem Versionierungssystem verwalten, z.B. Git
|
|
Erläutern Sie die prinzipielle Funktionsweise von Ereignissen bei Javascript! |
Es erfolgte eine Benutzereingabe, beispielsweise ein Mausklick. Wenn ein Eventhandler vorhanden ist, wird der zugehörige Javascriptcode ausgeführt, ansonsten die Standardaktion des Browsers. Nach Ausführung des Javascriptcodes wird ebenfalls die Standardaktion des Browsers ausgeführt.
|
|
Was sind die Ziele eines Ajax Request und wie funktioniert er?
|
Ziele
• Kürzere Antwortzeiten o indem nur die wirklich notwendigen Daten übertragen werden • kein komplettes Neuladen von Webseiten Funktionsweise Ein Ereignis löst einen XMLHttpRequest (XHR) aus. Daraufhin schickt der Browser einen Partial Request (Anfrage nach XML-Daten als Teil eines DOM-Baums) an den Web Server, der mit einem Partial Response (XML-Daten) antwortet. Eine Callback Methode wartet auf das Ergebnis des Servers, aktualisiert nach Erhalt der Antwort die HTML- und CSS-Daten im Dom-Baum und aktualisiert so das User Interface. |
|
Was ist DOM und wofür braucht man es? |
DOM: Document Object Model |
|
Wie kann die Performance von Ajax Requests verbessert werden? |
• Keine unnötigen Requests |
|
Was ist ein zustandsloses Protokoll? |
keine Unterscheidung zwischen |
|
Was sind die Vor- und Nachteile von zustandslosen Protokollen? |
Vorteile |
|
Wie kann mit den Nachteilen von zustandslosen Protokollen umgegangen werden? |
Verwendung von CDI-fähigen Beans -> Daten können für die erforderliche Gültigkeitsdauer auf Serverseite gespeichert werden. |
|
Wie funktioniert rollenbasierter Zugriffsschutz? |
Dynamische Zugriffsrechte
|
|
Erläutern Sie das Observer Pattern! |
Das beobachtete Objekt bietet einen Mechanismus, um Beobachter an- und abzumelden, sowie um diese über Änderungen zu informieren. Es kennt seine Beobachter nur über die Schnittstelle Beobachter. Jede Änderung wird an jeden angemeldeten Beobachter gemeldet. Die Beobachter implementieren eine Methode um auf Änderungen zu reagieren. |
|
Erläutern Sie das MVC Pattern! |
Model
View
Controller |
|
Wie sieht eine Schichten-Architektur mit Java EE aus? |
• Webseiten |
|
Was ist eine Thin Server Architecture? |
Server
Client |
|
Was ist JAXB? |
JAXB: Java Architecture for XML Binding |
|
Was ist JPA? |
JPA: Java Persistence API -> Siehe OR-Mapping |
|
Was ist die orm.xml? |
Die orm.xml erlaubt die Definition der Persistenz von Klassen in einem xml-File. Das ist immer dann sinnvoll, wenn die Persistenz bestimmter Klassen während der Laufzeit geändert werden soll, was nicht möglich wäre, wenn die Persistenz mit Annotationen festgelegt wäre. |
|
Was ist OR-Mapping, wie funktioniert es und wieso benötigt man es? |
object-relational mapping ist eine Technik, mit der Objekte in einer relationalen Datenbank abgelegt werden können. |
|
Was ist JAX-RS? |
JAX-RS: Java API for RESTful Web Services |
|
Nennen Sie eine Erweiterung für JSF! |
Richfaces |
|
Was ist CDI? |
CDI: Contexts and Dependency Injection |
|
Welche Patterns werden mit CDI umgesetzt? |
Singleton - @ApplicationScoped |
|
Welche Kontexte für CDI kennen Sie? |
@RequestScoped |
|
Erläutern Sie das Prinzip der Proxy-Klassen und Business-Methoden (auch mit CDI)! |
Mit Proxy Klassen wird das Proxy Pattern umgesetzt. Die Kontrolle über ein Objekt wird auf ein vorgelagertes Proxy Objekt verlagert. Die Proxy Klasse erbt hierbei vom eigentlichen Objekt. So können zwischen dem eigentlichen Objekt und dem Proxy Objekt Interceptoren eingebaut werden. CDI setzt so verschiedene Verwaltungsaufgaben um, z.B. ein Singleton erstellen, die Bean Validation oder auch Transaktionen. |
|
Was ist JTA? |
JTA: Java Transaction API |
|
Beschreibe das Interceptor-Pattern! |
Das Interceptor Pattern ist ein Entwurfsmuster aus der Kategorie Verhaltensmuster. Es ermöglicht die Erweiterung eines Frameworks oder einer Middleware, ohne diese selbst zu verändern. |
|
Was ist JAX-WS? |
JAX-WS: Java API for XML Web Services |
|
Was ist der Vorteil von loser Kopplung und wie wird Sie erreicht? |
Komponenten können leicht ausgetauscht werden, sie kann durch DI erreicht werden. |
|
Was heißt Lightweight Server? |
Ein Lightweight Server ermöglicht kleine WAR-Dateien. |
|
Was gehört zum Java Web Profile? |
• JPA |
|
Was sind WebSockets? |
WebSocket ist ein Standard, der Echtzeitkommunikation im Web verbessern soll. Da HTML nur halbduplexe Kommunikation beherrscht, wurde vor dem WebSocket Standard für eine bidirektionale Verbindung jeweils ein Request für ein- und ein anderer für ausgehende Verbindungen benötigt. Das hatte den Nachteil, dass der Server zusätzliches I/O Handling bewältigen musste und das sich der Daten Overhead verdoppelte. WebSockets lassen eine bidirektionale Verbindung zu und helfen so durch eine Reduzierung des Datenvolumens (weniger Overhead) und eine Reduzierung des I/O Handling im Server, eine Echtzeitanwendung deutlich zu beschleunigen. |
|
Wie funktioniert ein Server-Callback für geschützte URIs? |
• Client frägt eine geschützte Resource an |
|
Was ist HTTPS? |
HTTP mit TLS |
|
Beschreiben Sie das Keystore und Truststore Modell für Server und Client! |
Der Server erstellt mit einem Keytool den Keystore, d.h. er generiert den öffentlichen und privaten Schlüssel. Dann erstellt er das Server Zertifikat, d.h. er exportiert den öffentlichen Schlüssel aus dem Keystore. Dieses Zertifikat wird von einer neutralen "Certificate Authority" geprüft und ausgestellt. Der Client importiert das Zertifikat in seinen Truststore. |
|
Beschreiben Sie das Pattern "Page Objects" und @FindBy! |
Ein Page Object bildet die Funktionen einer Webseite in public Methoden ab. Um die Funktionen einer Webseite zu finden, können sie mit der Annotation @FindBy identifiziert werden. Funktionen der Webseite können mit id's, CSS-Klassen, Tagnamen, usw. gefunden werden. Der Vorteil ist die vereinfachte Testbarkeit, vor allem auch bei Änderungen am UI, da Änderungen zentral an einer Stelle getätigt werden können. |
|
Mit welchem Produkt kann das Testen bei Continous Integration durchgeführt werden? |
Arquillian |
|
Wie funktioniert der Client-Modus von Arquillian? |
Zum Testen der Applikation von Client Seite. |
|
Wie funktionieren In-Container Tests? |
Zum Testen des Anwendungskerns. |
|
Was ist das Ziel von Arquillian Graphene? |
einfaches API für Page Objekte von Selenium einschl. Ajax und einem einfachen "Waiting API" innerhalb von Integrationstests mit Arquillian |
|
Beschreiben Sie den prinzipiellen Ablauf eines JUnit Tests! |
Mit @BeforeClass können zu Beginn die Werte initialisiert werden, die während der JUnit Tests benötigt werden. Sie gelten für die gesamte Laufzeit der Tests. Mit @Before können vor jeder Testmethode Werte erneut gesetzt werden, diese gelten dann nur für die jeweilige Testmethode. Jede Testmethode muss mit @Test gekennzeichnet sein. Nach dem Test werden gegebenenfalls mit @After die Werte erneut gesetzt. Nach den Tests wird ggf. @AfterClass aufgerufen, um Werte wieder auf Normalwerte zu setzen. |
|
Was sind Unit Tests? |
Tests, die funktionale Einzelteile von Anwendungen testen. |
|
Was sind Integrationstests? |
Das Testen des Zusammenspiels verschiedener, von einander abhängiger Komponenten einer Anwendung. |
|
Typischer Ablauf eines Jobs in Jenkins? |
1. Quellcode aus dem Versionierungssystem herunterladen |
|
Was ist cross-side request forgery und wie kann es verhindert werden? |
CSRF ist, wenn ein Angreifer eine Transaktion in einer Webanwendung durchführt. Er macht dies, indem er einem bereits angemeldeten, unbeteiligten User ein HTTP-Request unterschiebt. Dies kann verhindert werden, indem auf jeder Seite ein sogenanntes Page-Token in einem Hidden-Field eingebunden wird. JSF besitzt ein derartiges Token – den ViewState. In der faces-config.xml können protected views definiert werden. So wird der ViewState zusätzlich verschlüsselt und CSRF wird unmöglich. |
|
Beschreibe das Design-Pattern "Active Record"! |
Beim Design Pattern Active Record erbt jedes Objekt, dass persistente Daten enthält, von einer Klasse, die die Zugriffsmethoden auf eine Datenbank kapselt. Jedes Business Object ist somit eine Abbildung einer Tabellenzeile in einer Datenbank. Modifikationen in einem Geschäftsobjekt werden mit den geerbten Methoden von dem Objekt selbst in die Datenbank geschrieben. Wird ein Objekt neu angelegt, wird auch eine neue Zeile in einer Datenbanktabelle angelegt. Nachteile sind, dass es schwierig ist, komplexe Vererbungshierarchien aufzubauen, da jedes Geschäftsobjekt von dem Datenbankobjekt erben muss. Außerdem sind Unit Tests umständlicher, da zum Testen der Anwendung eine funktionierende Datenbank oder zumindest sinnvolle Mockobjekte erforderlich sind. |
|
Beschreiben Sie das Data Access Object Pattern! |
Das DAO ist ein Entwurfsmuster, mit dem der Zugriff auf verschiedene Datenquellen gekapselt wird. Die angesprochene Datenquelle kann gewechselt werden, ohne dass der aufrufende Code geändert werden muss. Das Data Access Object erstellt ein Transferobjekt auf Basis der zugrundeliegenden Datenquelle. Das Business Object erhält dieses Transfer Object und legt die Daten darin ab. Anschließend führt das DAO mit diesen Daten die gewünschte Modifikation der Datenquelle durch. |