1. 2020-09-21

  • statische / dynamische Webseiten

  • VCS

2. 2020-10-05

2.1. Git

  • In enem Git Repository werden sämtliche Dateien des Working Copy - Folders als Snapshot verwenden.

  • Diese Snapshots werden Versionen genannt.

2.1.1. centralized vs distributed vcs

  • examples:

    • subversion,

    • ms team foundation server

centralvcs
Figure 1. centralized vcs
  • Single-point-of-failure

distributedvcs
Figure 2. distributed vcs

3. 2020-10-12

Entfall wegen Docker-Seminar

4. 2020-10-19

4.1. Ignorieren von Files

  • In einem File .gitignore werden sämtliche Dateien und Ordner angegeben, die NICHT ins Repo gespeichert werden, dh sie sind nicht Bestandteil einer Version (Schnappschuss)

  • Werden bereits im Repo enthaltene Files in die .gitignore eingetragen, so werden diese weiterhin committed

    • Diese Files sind vorher aus dem Repo zu löschen

4.2. Unstaging files

git restore --staged <files>
git restore --staged .

4.3. Short Version for git status

git status -s

4.4. Änderungen bis zum letzten Commit zurücknehmen

Falls ein geändertes File noch nicht commited wurde, kann man die Änderungen bis zum letzten commit zurücknehmen.

git restore <file>

oder

Sämtliche Änderungen des gesamten Snapshots werden zurückgesetzt
git restore .
  • Neu erstellte Files bleiben bestehen

  • Löschen neu erstellter Files

git clean -f
Dangerous operation

5. Den Zustand eines früheren Commits herstellen

ein File wurde zB gelöscht
git rm <file>
ein File wurde zB gelöscht
git restore --source=HEAD~1 <file-with-exact-path> (1)
1 HEAD~1 bedeutet, ein Commit vor dem letzten Commit (vorletzter Commit)

Das neu erstellte (bzw. zurückgeholte) File ist untracked.

5.1. Detached HEAD

  • In git gibt es mehrere Branches

    • Der Hauptbranch heißt in git master

    • in anderen VCS trunk

Diagram
Figure 3. Auf den letzten Commit zeigen sowohl MASTER als auch HEAD
Anzeigen der Commit-Id’s
git log --oneline
output
8ade525 (HEAD, master) remove unused code
db633a9 make the repo clean
028fc7c add important code
cc9fd84 remove unused code
9f57ec0 add minutes-of-meeting-template
3fb9399 initial commit
Der HEAD wird auf den (zB) ersten Commit gesetzt
# git checkout <commit-id>
git checkout 3fb9399
git log --oneline  (1)
1 Anzeigen der neuen History
  • mit git log --oneline, würde man nur alle früheren commits sehen

  • mit git log --oneline --all, würde man alle commits (auch die späteren) sehen

output
3fb9399 (HEAD) initial commit
Diagram
Figure 4. Detached HEAD
  • Wenn der HEAD-Pointer zu einem (früheren) Commit zeigt, spricht man von einem detached HEAD, dh MASTER und HEAD zeigen nicht mehr auf den selben (den letzten) Commit

  • Bei einem detached HEAD, sollten keinen neuen Commits durchgeführt werden

    • diese neuen Commits wären nicht mehr erreichbar

Diagram
Figure 5. würde man einen neuen Commit erstellen (wie hier abgebildet), so wäre dieser nicht mehr erreichbar, nachdem HEAD wieder auf den letzten commit gesetzt wird
Diagram

6. 2020-11-09

6.1. Blaming

6.2. Tagging

6.3. Semantische Versionisierung

7. 2020-11-11 (Ersatzstunde)

  • branch umbenennen

  • switch

  • dirty working copy

nächstes Video: stashing

8. 2020-11-16

8.1. Projektantrag

(project proposal)

Buch Kap. 2.1

8.2. Projektziele

Buch Kap. 2.3

bis Seite 53 (inkl. Operationalisierung)

HÜ: Erarbeiten des Begriffs "Operationalisierung" mit Beispielen.

8.2.1. Vorgangsweise zur Erstellung des Projektantrags

Voraussetzung:

8.3. Erstellen einer AsciiDoctor - Doku-page (inkl gh-pages)

  • Checkout des Classroom-Repositories (ist derzeit noch leer)

  • Hinzufügen der Asciidoctor-Erweiterung zum Projekt

  • Erstellen eines Documents project-proposal.adoc im asciidoc-Verzeichnis

  • im github-repo im dafür vorgesehenen Bereich (About) den Url der gh-pages (index) eintragen

  • Eintragen des gh-pages Link zum project-proposal in das README.md

<<project-proposal.adoc#, open project proposal>>
  • Nach Fertigstellung, einchecken ins classroom-github-repository.


  • Beachte:

    • Lösche das asciidocs-demo - Verzeichnis

    • Lösche das Bild animal-pet-cute-kitten-45201.jpg

    • Zum abgeben ein commit/push durchführen

      • Die gh-pages müssen erstellt sein

      • Sämtliche Files müssen im Repo enthalten sein

8.4. How to install Docker under Windows

  • install from App Store → WSL2 → Ubuntu

  • or use dual-boot

9. 2020-11-23

9.1. Kontrollieren der Projektaufträge

9.2. Festlegen der Projektgruppen

Projekte - Themenvergabe
Team Members Notes

Team 1: End-to-End-Event-Management

  • 6 Bogdan, Sebastijan

  • 9 Grbic, Antonio

  • 7 Bounab, Sofiane PL

  • 1 Abazovic, Edina

Team 2: Work Monitor

  • 26 Tran, Michael PL

  • 13 Hirsch, Nico

  • 28 Zhao, Denis

  • 25 Tea, Vivian

Team 3: Hotel Room Booking System

  • 2 Ablinger, Raphael PL

  • 24 Sugic, Oliver

  • 15 Kerschbaum, Philipp

  • 18 Neudorfer, Niklas

Team 4: RankCar

  • 19 Pavelescu, Darius-Cristian PL

  • 3 Aichinger, Niklas

  • 4 Bajim, Nadia

  • 10 Handel, Christoph

  • 27 Tunc Johannes

  • Entitäten:

    • Car

    • Category

    • Rating

    • Comments

Team 5: Restaurant Management System

  • 11 Hartl, Anna

  • 16 König, Julia PL

  • 12 Hautzmayer, Sheila

  • 17 Melcher, Tamara

Team 6: Watering Reminder

  • 5 Baumgartner, Lukas

  • 20 Pelzeder, Joachim PL

  • 23 Soltysiak, Dominik

Team 7: finoview

  • 14 Keintzel, Florian PL

  • 22 Remplbauer, Markus

  • 21 Rathberger, Jakob

PL …​ Projektleiter

9.3. Projektrepositories erstellen

v modell

informationswuerfel

10. 2020-11-30

10.1. Wdhlg. Begriff Operationalisierung und Indikatoren

  • quantifizierbar → etwas zählbar, messbar oder wiegbar machen

  • operationalisieren → einen abstrakten Begriff mit Indikatoren ausdrücken.

  • Indikatoren → Zahlen die auf etwas hinweisen (lat. indico …​ anzeigen) Werden gemessen, gezählt oder gewogen.

  • Kennzahlen → werden aus anderen Kennzahlen oder Indikatoren berechnet.

10.2. Stakeholder

  • Arbeiten nicht direkt am Projekt mit, sind aber von den Auswirkungen betroffen → Betroffene

10.3. Zielarten

zielarten

  • Qualität → Ist das, was der Kunde wünscht (keine "offizielle" Definition).

10.4. Projektauftrag

Kap. 2.5

  • Meilenstein → Termin mit einer sachlichen Inhaltskomponente, welche überprüfbar ist.

Erstellen eines Projektauftrags pro Gruppe und einchecken Project-Repository.
tree
  • Es besteht die Wahl zwischen maven und gradle

10.5. Build-Tools

10.5.1. Aufgaben eines Build-Tools

  • Durchführen des Build-Prozesses

    • Kompilieren der Sourcen

    • Linken der Libraries

    • Durchführen der Tests

    • …​

10.5.2. Ant

  • Another Neat Tool

  • sehr flexibel, keine Struktur

  • in einem xml-File (zB. build.xml bei Netbeans) können Build-Steps selbst definiert werden

  • Cons

    • in jeder IDE eine eigene Struktur

    • Projekte konnten zwischen IDEs nicht ohne Anpassungen ausgetauscht werden

    • Die Libraries müssen manuell heruntergeladen werden → lib-Folder

    • Es wurde Ivy benötigt, um die Libraries automatisch herunterzuladen

10.5.3. Maven

  • Pros (Vorteile)

    • fixe Struktur mit life-cycle

    • sehr großes Ökosystem

    • Automatischer Download der benötigten Libraries zentral am Arbeits-PC (.m2- Verzeichnis im HOME)

    • in Foren und Beispielen im Netz meist maven

    • großes Ökosystem an Libraries und Plugins

  • Cons (Nachteile)

    • zu fixer life-cycle, unflexibel

    • xml als Notation der pom.xml

10.5.4. Gradle

  • Pros

    • sehr flexibel

    • kein xml, sondern eine DSL (Domain-Specific-Language) für die Konfiguration

      • Groovy (wie Ruby, aber auf der JVM)

      • (Kotlin)

    • verwendet intern maven und dessen großes Ökosystem

10.6. UML-Klassendiagramm

cld01
  • Konvention → Vereinbarung

  • Signatur einer Methode: Scope + Rückgabewert + Methodenname + Parameterleiste

  • Objekt (Object) = Instanz einer Klasse; mit Identität und Zustand

  • Beispiel: PKW

    • Anwendungsfall 1: Transport von Personen

    • Anwendungsfall 2: Transport von Gütern

    • Anwendungsfall 3: Cruisen auf der Landstraße (Statussymbol)

  • Eigenschaften von Objekten

    • Objektidentität

objektidentitaet

  • Datenkapselung datenkapselung

  • Polymorphismus (Vielgestaltigkeit)

polym
Duck donald = new Duck();
donald.say(); // quack
Cat mimi = new Cat();
mimi.say(); // miau

List<Animal> animals = new LinkedList<>();
animals.add(donald);
animals.add(mimi);
animal.get(0).say(); // quack
annimal.get(1).say(); // miau
  • Vererbung

10.6.1. Beziehungen zwischen Objekte

Generalisierung (Vererbung)
Assoziation
assoziation01
assoziation02
Figure 6. unidirektional
assoziation03
Figure 7. unidirektional
assoziation04
Figure 8. bidirektional
Aggregation
  • "Ganze-Teile"-Beziehung, die zerstörungsfrei zerlegt werden kann

  • Bsp

    • Auto + Autoreifen

Komposition
  • "Ganze-Teile"-Beziehung, die nicht zerstörungsfrei zerlegt werden kann

  • Bsp

    • Haus + Stockwerk

    • Buch + Kapitel

  • Zustand eine Objekts → Werte der Attribute / Klassenfelder

10.6.2. Zwei Arten der Darstellung assoziativer Tabellen

  • Assoziative Tabellen werden zur Auflösung von *:*-Beziehungen gebraucht

Ausgangssituation
Diagram
Notation 1
Diagram
Notation 2
Diagram
Notation 1 & 2 als ERD
Diagram
HÜ - Klassendiagramm für Bsp Kinokette (gezeichnet in plantuml)

Die Firma STAR-MOVIES betreibt eine Kinokette mit mehreren Kinos (Name, Adresse, …​ ).

In jedem Kino können mehrere Säle untergebracht sein, in denen die Filme gezeigt werden. Der Sitzplan jedes Saales soll festgehalten werden; für jeden Sitz muss eine Reihe und ein Platz angegeben sein. Eine Loge soll wie eine Reihe verwaltet werden.

Die Erstellung eines Spielplanes muss möglich sein. Es können pro Saal natürlich mehrere Filme an einem Tag gezeigt werden. Um die freien Sitze einer Vorstellung feststellen zu können, ist jeder Kartenkauf zu vermerken. Auf jeder Eintrittskarte soll aufscheinen: Kino, Saal, Filmtitel, Datum, Beginnzeit, laufende Nummer innerhalb der Vorstellung, Reihe, Platz, Preis.

Für die Preisgestaltung ist vorzusehen: Jede Reihe eines Saales hat einen Standardpreis, für bestimmte Vorstellungen können die Reihenpreise aber auch individuell festgelegt werden. Für Auskunftszwecke sollen die Schauspieler mit ihren persönlichen Daten (Nachname, Vorname, Nationalität, Geburtsdatum, Todesdatum, Bemerkung, …​ ) erfasst werden und die Aussage möglich sein, welche Schauspieler in welchen Filmen mitgespielt haben.

Die analogen Aussagen sollen auch für Regisseure möglich sein, wobei angenommen werden kann, dass es für einen Film nur einen Regisseur gibt. Es ist allerdings möglich, dass bei einem Film der Regisseur auch mitspielt.

Die sonstigen Daten eines Filmes umfassen: Titel, Art (Krimi, Western, Jugendfilm, …​ ), Herstellungsjahr, Land, Sprache, Dauer, Verleih, etc.

11. 2020-12-14

12. 2020-12-16

  • (Ersatztermin für Montag 2020-12-14 → Physik-Test)

12.1. Übung "Bibliothek"

Eine Bibliothek möchte ein Online-System einführen, das die Verwaltung der Buchbestände, das Auffinden von Büchern nach Fachrichtung und Stichworten ermöglicht.

Die Daten über Bücher entstehen beim Einkauf, wo Autor, Titel, Verlag, Kurzerklärung, ISBN- Nummer usw. erfasst werden. Ein Buch kann in mehreren Exemplaren angekauft werden.

Alle weiteren Daten entstehen beim Entlehnen und der (hoffentlichen) Rückgeben der Bücher. Daher sollte auch festgestellt werden können, wer, wie lange und bis wann welches Buch entlehnt hat. Bei Verzug wird dem Betreffenden eine Mahnung per Post geschickt. Die maximale Ausleihdauer und die Mahnspesen sind je nach Buch unterschiedlich.

  • Aufgabe: Erstellen sie ein Klassendiagramm in plantUML → <nachname>.puml

  • Exportieren Sie das CLD als png → <nachname>.png

  • Geben Sie die beiden Files am Classroom-Server ab (github: https://classroom.github.com/a/0UvNu-JI)

Diagram
Figure 9. Musterlösung

13. 2020-12-21

13.1. Class Diagram erarbeitet

13.2. TODO bis nach Weihnachten

13.2.1. ERD erstellen

  • Das Klassendiagramm als ERD in Crow-Foot-Notation erstellen

13.2.2. Pflichtenheft

  • Im Buch Kapt. Pflichtenheft lesen

13.2.3. Datenmodell in SQL implementieren

13.2.4. Docker auf Entwicklermaschinen installieren

13.3. Technologie im Projekt

  • JavaFX

  • JDBC

  • postgresql (gedockert)

13.4. Demnächst zu tun

  • Crashkurs:

    • JDBC

    • assertJ-core

    • assertJ-db

    • Ausführen von Skripten

13.5. Übungen

13.5.1. Sparverein

Ausgangssituation
  • Der Kassier eines Sparvereins möchte die Einzahlungen der Sparvereinsmitglieder EDV-mäßig verwalten.

  • Eine Einzahlung findet 1x pro Monat an einem bestimmten Tag statt.

  • Für jede Einzahlung ist das Sparvereinsmitglied, der Betrag und das Einzahlungsdatum zu vermerken.

  • Vergisst jemand auf eine Einzahlung, so muss er bei der nächsten Einzahlung Strafe zahlen. Da die Strafen für Ausflüge, …​. verwendet werden, müssen die Strafbeträge extra gespeichert werden.

  • Der Kassier sollte am Jahresende die Möglichkeit haben, den Gesamtbetrag zu jedem Mitglied leicht berechnen zu können.

Aufgabenstellung
  • Erstellen Sie ein Klassendiagramm, um obigen Sachverhalt abzubilden.

  • Verwenden Sie hierzu plantUML.

  • Das Datenmodell soll der 3. Normalform entsprechen (vgl. ERD).

  • Erstellen Sie ein .puml-File sowie ein pdf-File. (<nachname>_sparverein.puml,<nachname>_sparverein.pdf)

13.5.2. Motelreservierungssystem

Ausgangssituation

Modellieren Sie ein Reservierungssystem für Motels, welches die Reservierung von Zimmern, sowie die Verwaltung von Aufenthalten erlaubt. Motels werden durch eine Nummer eindeutig identifiziert, befinden sich in einer bestimmten Stadt und stellen Zimmer verschiedener Kategorien zur Verfügung. Kunden führen Reservierungen für einen geplanten Aufenthalt durch. Der tatsächliche Aufenthalt kann von den Plandaten bezüglich Terminen und Zimmer abweichen. Zum Aufenthalt sind weiters die getätigten Ausgaben mit Bezeichnung, Datum und Uhrzeit zu speichern.

Aufgabenstellung
  • Erstellen Sie ein Klassendiagramm, um obigen Sachverhalt abzubilden.

  • Verwenden Sie hierzu plantUML.

  • Das Datenmodell soll der 3. Normalform entsprechen (vgl. ERD).

  • Erstellen Sie ein .puml-File sowie ein pdf-File. (<nachname>_motel.puml,<nachname>_motel.pdf)

13.5.3. Wasserwerk Kugelmugel

Ausgangssituation

Die Stadtverwaltung von Kugelmugel hat sich entschlossen, das Abrechnungssystem für den Wasserverbrauch der Abnehmer (Kunden) grundlegend zu reorganisieren. Es soll zu diesem Zweck ein neues EDV-System entwickelt werden. Bisher wurden die Zählerstände der einzelnen Abnehmer von den Wasserkassierern der Stadt vierteljährlich abgelesen und gleichzeitig wurden bei diesen Besuchen die Abrechnungen des vorhergehenden Quartals vorgelegt und die entsprechenden Rechnungsbeiträge eingehoben.

Mit Hilfe des EDV-Systems und der entsprechenden Datenbankapplikation soll nun folgende Vorgangsweise realisiert werden:

  • Einmal im Jahr wird der Zähler (eindeutige Gerätenummer) von einem Kontrollorgan überprüft, der Wasserstand abgelesen und der Verrechnungsstelle übermittelt.

  • Die Zähler eines Abnehmers werden dann abgerechnet und die Wasserabnehmer erhalten vierteljährlich einen Zahlschein, mittels dem sie eine Teilzahlung für den Wasserverbrauch leisten. Dieser Teilbetrag wird vom Wasserwerk vorgeschrieben und errechnet sich aufgrund des letzten Jahresverbrauchs. Eine Kontrolle der Zahlungen soll über EDV möglich sein.

  • Bei den Abrechnungen ist zu berücksichtigen, dass die Abnehmer auch mehrere Zähler installiert haben können.

Aufgabenstellung
  • Erstellen Sie ein Klassendiagramm, um obigen Sachverhalt abzubilden.

  • Verwenden Sie hierzu plantUML.

  • Das Datenmodell soll der 3. Normalform entsprechen (vgl. ERD).

  • Erstellen Sie ein .puml-File sowie ein pdf-File. (<nachname>_kugelmugel.puml, <nachname>_kugelmugel.pdf)

14. Lecture 2020-01-11

14.1. Aufgabe: Erstellen eines Pflichtenheftes für jedes Projekt

  • Einchecken ins Git-Repo

  • Anlegen von Github-Repos

    • keine Leerzeichen im Pfad (zB "Program Files")

    • keine deutschen Sonderzeichen

    • Reponamen immer Kleinschreibung mit Hyphen (kebab-case)

15. Lecture 2020-01-18 - JDBC

  • Wir verwenden zusätzlich zu JDBC eine Bibliothek namens myBatis, um SQL-Skripts ausführen zu können.

  • Warum verwenden wir hierzu nicht JDBC?

    • JDBC dient eher dazu einzelne SQL-Statements an die Datenbank zu schicken und dann das Ergebnis im Java-Programm zu verarbeiten

Gruppe Bezeichnung Zweck Statements

DML

Data Manipulation Language

Erstellen/Ändern/Löschen von Daten

INSERT/UPDATE/DELETE

DDL

Data Definition Language

Erstellen/Ändern/Löschen von Datenstrukturen zB Tabelle,View,…​

CREATE/ALTER/DROP

DQL

Data Query Language

Erstellen von Abfragen

SELECT

TCL

Transaction Control Language

Durchführen von Transaktionen (unteilbare Folge von Statements)

COMMIT/ROLLBACK/SET SAVEPOINT

DCL

Data Control Language

Erstellen von Berechtigungen

GRANT/REVOKE

properties

  • Stammdaten

  • Bewegungsdaten, sind periodenbezogen, gelten meist für ein Geschäftsjahr

  • (Lookup-Tables) als Ersatz für Enumerationen

15.1. JDBC

  • Connection

    • Verbindung zur Datenbank

  • Statement

    • konkrete SQL-Statement

    • Statement vs prepared Statement

15.2. assertJ-db

labs/jdbc-demo

16. 2021-01-25

eventmgr

17. 2021-02-01 - Scrum

17.1. Präsentation Scrum

  • Präsentation Scrum wurde besprochen

  • Stakeholder …​ Betroffene

  • priorisieren …​ nach Wichtigkeit ordnen

  • Domain (Domäne) …​ Fachbereich

  • Domain Object Model (DOM)

    • nicht-technische Klassen, die den Bereich (die Domäne) des Kunden betreffen, zB

      • Kunde

      • Produkt

      • Rechnung

      • Rechnungsposition

    • kann man vielleicht als objektorientiertes ERD bezeichnen

    • nicht zu verwechseln mit Document Object Model (HTML)

  • Repository …​ Sammlung von Dingen, Artefakten, …​

17.2. Verwenden von github-projects

  • Erstellen eines gh-Projects

  • Erstellen von Meilensteinen

  • Zuordnen von Issues

17.3. Übung: Erstellen der User Stories und der ersten Tasks

Termin: bis nach den Ferien

  • Erstellen eines Labels "user-story"

  • Erstellen von mehreren Issues mit Label "user-story" entsprechend dem Foliensatz

  • Für (jede) user-story werden mehrere Tasks erstellt und

    • dem Projekt

    • und dem Teammitglied zugeordnet

    • Anmerkung: die zeitlich näheren US werden bezüglich Tasks detaillierter spezifiziert

18. 2021-03-01

project overview

one repo per aggregate

19. 2021-03-08

19.1. Curriculum SYP3

  • Git

    • Aufbau von Versionierungssystemen

    • Arten von Versionierungssystem

    • Arbeitsabläufe (workflows)

      • clone

      • commit

      • branch

      • merge

      • u.v.a.m.

  • Docker

    • Dockerfile

    • docker-compose

    • docker hub (registry)

  • UML

    • Use Case Diagram

    • Class Diagram

    • Object Diagram

    • State Diagram

    • Activity Diagram

    • Deployment Diagram (Verteilungsdiagramm)

    • Kompositionsstrukturdiagramm

  • doc-as-code

    • asciidoctor

    • plantuml

  • github

    • pages

    • projects

  • Vorgehensmodelle

    • Was ist ein Vorgehensmodell?

    • Welchen Zweck erfüllen Vorgehensmodelle?

    • Arten:

      • klassische V.

        • Wasserfallmodell

        • V-Modell

      • agile V.

        • Scrum (Epic, User Story, Task)

        • ev. auch Kanban, soweit es github betrifft

    • Wie geht man bei einem konkreten Projekt vor?

  • Projektdokumentation

    • Projektantrag

    • Projektauftrag

    • Pflichtenheftes

    • Systementwurf (Grob- und Feinentwurf)

  • Qualitätssicherung

    • einfache Unit-Tests mit junit und assertJ-core

    • einfache DB-Tests mit assertJ-db (und ev. JDBC, JDBC-metadata)

cld

19.2. Besprechen des SYP3-Curriculums

19.3. Scrum-Foliensatz (Wiederholung)

  • inkl. Vorgehensmodelle

20. 2021-03-15

20.1. LZK Band

20.2. Docker

21. 2021-03-22

Gruppe 2

21.1. Docker Einführung

  • Arten der Nutzung von Docker

    • Betrieb von Software (zB WebServer, DB-Server, usw)

    • Utility Container (zB AsciiDoc)

Mehrere Container können ein Docker-Image nutzen

docker01

Überblick Docker-Images, -Container, -Volumes, …​

docker02

21.2. Automatisierung (gh-actions, Jenkins)

pipeline
Figure 10. Pipeline

22. 2021-04-12 Gruppe 1

23. 2021-04-19 Gruppe A

  • Was ist ein Dienst? (Listener an einem Port)

    • zB für Web, Db usw

  • Java und C#: compile, …​.

23.1. Dockerfile

23.1.1. Erstellen eines nginx-Servers

Dockerfile
FROM nginx:1.19.10
COPY html /usr/share/nginx/html
EXPOSE 80
html/index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>3ahif</title>
</head>
<body>
<h1>Hello 3ahif!</h1>
</body>
</html>

24. 2021-04-26 docker-compose Gruppe B

25. 2021-05-03 docker-compose Gruppe A

  • Bis zu Servlets (SimpleServlet, BlockingServlet)

26. 2021-05-03 docker-compose Gruppe B

  • Begonnen mit Servlets

  • work/docker-compose/servlet-jdbc-demo (Musterlösung)

  • work/docker-compose/servlet-jdbc-demo-3ahif (Gruppe A + B → git-branch)

27. 2021-05-17

  • ganze Klasse anwesend

  • LZK: UCD, FA, NFA

27.1. Scrum

  • Foliensatz Vorgehensmodelle (Scrum) bis Folie 25 (zum 3. Mal wiederholt)

28. 2021-06-01

28.1. LZK Docker

29. 2021-06-07

29.1. Repository per Aggregate

repo per aggregate

  • Repositories

    • Vorteile: abstrahieren der Persistenzschicht

29.2. Wiederholung Pflichtenheft

  • Vorlagen-Dokumente im Moodle

  • ein Pflichtenheft dient u.a. dazu,

    • dem Kunden ermöglichen, sich vom zu erstellenden Softwaresystem ein Bild zu machen.

    • als Vertragsgrundlage zwischen Kunden und Softwareersteller

    • als Grundlage zum Erstellen von Testfällen