Fernstudium Informatik
Weiterbildung für schlaue Köpfe

Inhalt im Detail

Video 1: Generics (1)

Dieses Video beschreibt die Lernziele und den Inhalt der Lehrveranstaltung "Komponentenbasierte und generative Software-Entwicklung". Weiterhin wird dargelegt, warum die Veranstaltung mit der Vermittlung bestimmter Java-Grundlagen beginnt. Anschließend geht es dann um generische Datentypen, die seit Version 5 zum Sprachumfang von Java gehören. Dabei werden die Vorzüge derartiger Datentypen anhand mehrerer Beispiele erläutert, aber auch deren unter Umständen komplizierte Handhabung kritisch bewertet.

Video 2: Generics (2) / Reflection (1)

In diesem Video werden die Betrachtungen von Generics vertieft. Schwerpunkte dabei sind Typenkompatibilität, Wildcards, Vererbung im Zusammenhang mit Generics sowie generische Methoden. Danach wird die Behandlung des Themas Reflection begonnen. Über Reflection können zur Laufzeit eines Java-Programms Informationen über Klassen, Methoden und Attribute bezogen werden. Weiterhin kann beispielsweise der Zugriff auf den aktuellen Wert eines Attributes erfolgen, obwohl dieses als privat gekennzeichnet ist.

Video 3: Reflection (2)

Nach der Einführung zu Reflection im vorhergehenden Video wird das Thema in diesem Video anhand einiger ausführlicher Demonstrationsprogramme näher betrachtet.

Video 4: Annotationen

Mit Annotationen lassen sich Meta-Informationen direkt im Java-Quelltext platzieren. Diese lassen sich beispielsweise zur Laufzeit des Java-Programmes über Reflection auslesen und können zur Beeinflussung des Programmablaufs verwendet werden.

Video 5: Dynamische Proxies / Class Loading und Hot Deployment (1)

Dynamische Proxies dienen als Stellvertreter für andere Objekte und bilden die Grundlage für das Verständnis der aspektorientierten Programmierung. Mit ihnen lassen sich zum Beispiel nachträglich Logging-Funktionalitäten zu Klassen hinzufügen, ohne diese selbst ändern zu müssen. Anschließend beschäftigt sich dieses Video mit der Fähigkeit der Java-VM, bereits geladene Klassen im laufenden Betrieb durch geänderte Versionen auszutauschen. Auf diese Weise lassen sich beispielsweise Servlets eines Servlet-Containers ohne Neustart aktualisieren.

Video 6: Class Loading und Hot Deployment (2) / Prototypisches Komponentensystem

Dieses Video setzt zunächst die Betrachtungen über Class Loading und Hot Deployment fort. Unter anderem wird ein Beispiel präsentiert, in dem eine Klasse in mehreren Versionen gleichzeitig benutzt wird und wo dann entsprechend das statische Attribut dieser Klasse mehrfach vorhanden ist. Der größte Teil dieses Videos beschäftigt sich mit einem einfachen, selbst entwickelten Komponentensystem, das dazu dienen soll, eine erste Vorstellung von Komponenten und Komponenten-Frameworks zu erhalten. Dabei kommen u.a. Reflection, Annotationen und Hot Deployment zum Einsatz.

Video 7: Komponenten / Java Beans / OSGi (1)

Dieses Video beschäftigt sich zunächst mit unterschiedlichen Definitionen von Komponenten und stellt vor, was in diesem Modul unter Komponenten verstanden wird. Danach wird als erstes Beispiel eines einfachen Komponentenmodelles Java Beans präsentiert. Da Java Beans im Wesentlichen aus historischen Gründen behandelt wird, ist die Betrachtung entsprechend kurz. Das letzte Thema dieses Videos ist das Komponentenmodell OSGi, welches unter anderem von der Entwicklungsumgebung Eclipse verwendet wird. Ein besonderer Bestandteil von OSGi ist die sogenannte "Service Registry", durch die Komponenten VM-lokal veröffentlicht werden.

Video 8: OSGi (2) / Eclipse (1)

Nachdem die Behandlung des Themas OSGi abgeschlossen wird, richtet sich der Fokus im restlichen Teil des Videos auf Eclipse. Eclipse basiert zwar, wie zuvor bereits erwähnt, auf dem Komponentenmodell OSGi. Allerdings bringt Eclipse einen eigenen Kopplungsmechanismus für Komponenten über sogenannte Erweiterungspunkte mit, deren Handhabung in diesem Video anhand mehrerer Beispiele erläutert wird.

Video 9: Eclipse (2) / EJB (1)

Das Video gibt zuerst weitere Informationen zur Entwicklung von Eclipse-Komponenten, die typischerweise Eclipse-Plugins heißen. Der zweite Teil des Videos dreht sich um ein weiteres Komponentenmodell namens Enterprise Java Beans (EJB), das speziell im kommerziellen Bereich von enormer Bedeutung ist. Dieses Video führt in die Grundlagen von EJB-Komponenten ein.

 Enterprise Java Beans (0:14:01)

Video 10: EJB (2)

In diesem Video wird das Komponentensystem EJB weiter verfolgt. Thema dieses Videos sind sogenannte Session Beans, die innerhalb eines EJB-Servers existieren und deren Methoden von Clients verwendet werden können. Dabei unterscheidet man zwischen Stateless, Stateful und Singleton Session Beans.

Video 11: EJB (3)

Im vorherigen Video wurde erläutert, dass man den Zustand von Session Beans als transient bezeichnet, da er nicht dauerhaft gehalten wird. Zur Persistierung, das heißt zur dauerhaften Ablage von Daten in einer Datenbank, greifen Session Beans im Rahmen der Java Persistence Architecture (JPA) auf sogenannte Entities zurück. Eng damit verbunden ist das Thema Transaktionssteuerung. Dieses Video beschäftigt sich schwerpunktmäßig mit diesem Teil von EJB.

Video 12: Spring

Bei Spring handelt es sich nicht um ein Komponentenmodell, sondern um ein Framework, welches sich besonders die Entkopplung von Anwendungskomponenten zum Ziel setzt. Dieses Video geht auf die Themen Dependency Injection und aspektorientierte Programmierung mit Spring ein.

Video 13: Modellgetriebene Software-Entwicklung

Ziel der modellgetriebenen Software-Entwicklung ist es, Teile eines Programmes aus Modellen heraus automatisch erzeugen zu lassen. Auf diese Weise müssen nur noch diejenigen Teile, die nicht generiert werden können, von Hand geschrieben werden.

Quiz-Fragen zur Auflockerung

 Quiz: Math.round (0:07:12)

Alle 13 Videos enthalten zur Auflockerung und Entspannung ein Quiz mit einer hoffentlich überraschenden Auflösung. Meistens (aber nicht immer) geht es dabei um Effekte der Programmiersprache Java. Als Beispiel wird hier das Quiz zum Thema Runden angeführt: Mit der statischen Methode Math.round() lassen sich Fließkommazahlen kaufmännisch zu ganzen Zahlen runden. Dass es beim Hantieren mit Fließkommazahlen schnell zu unerwarteten Effekten kommen kann, zeigt dieses Quiz.