2. 2024-10-08
2.1. Maven
-
Motivation (Wieso maven)
-
Früher gab es für jede IDE ein eigenes Projektformat (ant). Es war nicht möglich zB ein Netbeans Projekt in Eclipse zu öffnen.
-
-
Was ist maven?
-
maven ist ein Package Manager
-
ein weiterer package manager ist gradle
-
-
Vorteile von maven
-
maven hat eine einheitliche Struktur der Projektstruktur (Dateien und Verzeichnisse)
-
Die Libraries (Abhängigkeiten) werden automatisch heruntergeladen.
-
Die Libraries werden optimiert gespeichert, dh nicht in jedem Projekt, sondern im Home-Verzeichnis
-
-
maven hat noch viel mehr Funktionalitäten …
-
3. Erstellen von Webseiten und Slides mit Asciidoctor
4. 2024-10-22 - Docker
-
Virtualisierung bezeichnet in der Informatik die Nachbildung eines Hard- oder Software-Objekts durch ein ähnliches Objekt vom selben Typ mit Hilfe einer Abstraktionsschicht. Dadurch lassen sich virtuelle (d. h. nicht-physische) Geräte oder Dienste wie emulierte Hardware, Betriebssysteme, Datenspeicher oder Netzwerkressourcen erzeugen. Dies erlaubt es etwa, Computer-Ressourcen (insbesondere im Server-Bereich) transparent zusammenzufassen oder aufzuteilen, oder ein Betriebssystem innerhalb eines anderen auszuführen. Dadurch können u. a. mehrere Betriebssysteme auf einem physischen Server oder „Host“ ausgeführt werden.
7. 2025-01-08
7.1. UML-Klassendiagramm
7.1.3. plantuml im code zeichnen

Person hansi = new Person("hansi");
hansi.setFirma(new Firma("IBM"));
System.out.printLine(hansi.getFirma().getName());
// IBM


7.1.4. Beziehungen CLD
-
Vererbung
-
Assoziation (benutzt)
-
Aggregation (Ganzes-Teile-Beziehung, zerstörungsfrei)
-
zB Auto - Autoreifen
-
-
Komposition (Ganzes-Teile-Beziehung, zerstörend)
-
zB Haus - Etage, Buch - Kapitel
-

Extension → Vererbung
Im Code gibt es zwischen Assoziation, Aggregation und Komposition keinen Unterschied |
8. 2025-01-14
8.1. UML (Unified Modeling Language)
8.1.1. Syntax (Schreibweise)
Die Syntax beschreibt die Regeln und die Schreibweise, die eingehalten werden müssen.
8.1.2. Semantik (Inhalt)
Die Semantik legt fest, welchen Inhalt oder welche Bedeutung die verschiedenen Elemente und Beziehungen haben.
8.1.3. Beispiel: UML-Diagramm
@startuml
class Person {
-firstName: String
+dob: Number
~method1()
#method2()
}
class Hobby {
}
(Person, Hobby) .. Ausfuerung
class Firma {
angestellte: List<Person>
}
Person "*" --> "0..1" Firma : arbeitet für >
Firma --> Person
@enduml
-
Signatur: Eine Signatur ist die Kombination aus einem Methodennamen, den Parametern und dem Rückgabewert. Sie dient zur eindeutigen Identifikation einer Methode.
-
Kardinalität: Beschreibt die Beziehung zwischen Tabellen oder Objekten, z. B. 1:1 oder n:m.
-
Multiplizität: Gibt an, wie viele Objekte einer Klasse instanziiert sein können.
8.2. MQTT-Server
Ein MQTT-Server dient als zentrale Datenplattform für die Kommunikation zwischen verschiedenen Systemen.
8.2.1. Prinzipien
-
Subscribe (Abonnement erstellen): Komponente abonnieren bestimmte Datenbereiche/Themen. Wenn neue Werte für diese Themen/Datenbereiche eintreffen, werden sie automatisch an die Abonnenten zugestellt.
-
Publizieren: Systeme können Daten zu spezifischen Themen senden, die dann von den Abonnenten empfangen werden.
8.3. Protokolle
Protokolle legen Verhaltensregeln für die Kommunikation zwischen Systemen fest. Sie sorgen dafür, dass Sender und Empfänger Daten einheitlich interpretieren können.
8.3.1. HTTP (Hypertext Transfer Protocol)
-
Hypertext: Ermöglicht, durch Anklicken von Links neue Seiten zu laden.
-
Anwendungsfall: Datenpakete in Form von HTML-Dokumenten übertragen.
8.4. Grob- vs. Feinentwurf
8.4.1. Grobentwurf
-
Konzentriert sich auf die grundlegende Struktur des Systems.
-
Definiert Hauptkomponenten und deren Beziehungen sowie Schnittstellen.
10. 2025-01-28
10.1. Asciidoctor
10.1.1. Admonitions
-
Voraussetzung
:icons: font
in Präambel
Das ist wichtig |
-
Admonition mit Block
Feeding the Werewolves
While werewolves are hardy community members, keep in mind the following dietary concerns:
|
10.2. Git Architecture

11. 2025-02-04
-
Aufgabe:
-
User Stories erstellen
-
Asciidoc-Präsentation für gh-pages erstellen
-
-
Benennung von Files:
-
Jedes Gespräch ist mittels Ergebnisprotokoll zu dokumentieren (vgl. minutes-of-meetings.adoc)
-
Bezeichnung: yyyy-mm-dd-topic.adoc
-
16. 2025-04-08

mvn io.quarkus.platform:quarkus-maven-plugin:3.21.1:create \ -DprojectGroupId=at.htl \ -DprojectArtifactId=webserver \ -Dextensions='rest'
19. 2025-06-03
-
https://achtung-designer.com/gestaltgesetze-die-designs-besser-machen/[Gestaltgesetze: 7 geniale Regeln, die deine Designs besser machen^
20. 2025-06-10
20.1. Übung
-
Erstellen eines Java-Webservers, der auf eine Datenbank zugreift.
-
Aus der Datenbank werden die Daten einer Tabelle ausgelesen und als html-table dargestellt.
-
Es ist ein Tabelle GREETING zu erstellen mit den Spalten:
-
ID (integer, primary key)
-
GREETING_TEXT (varchar(255)) zB "Hallo Welt", "Hallo Chris", "Hallo Hanan"
-
-
Aufruf mit http://localhost:8080/greeting/1 -→ "Hallo Welt"
-
Aufruf mit http://localhost:8080/greeting/2 -→ "Hallo Chris"
-
Aufruf mit http://localhost:8080/greeting/3 -→ "Hallo Hanan"
-
Die Datenbank ist eine Postgres-Datenbank, die in einem Docker-Container läuft.
-
Bauen Sie anschließend eine gh-actions-pipeline, die ein Docker-Image des Webservers baut und dieses in der GitHub Container Registry speichert.