Simernjeet Singh
2 years ago
1 changed files with 211 additions and 112 deletions
-
323Lerntagebuch.md
@ -1,169 +1,268 @@ |
|||||
## Lerntagebuch |
## Lerntagebuch |
||||
### Übung 1 2.11.2022 |
|
||||
|
|
||||
### Lernziel |
|
||||
|
# Mein Lerntagebuch für Programmiermethoden und -werkzeuge |
||||
|
Das ist ein Beispiel wie ein Lerntagebuch aussehen könnte. |
||||
|
|
||||
|
## SU 01(21.10.2021) |
||||
|
### Lernziel |
||||
|
- Organisatorisches |
||||
|
- Versionskontrollsysteme allgemein |
||||
|
- git |
||||
|
- Vorteile |
||||
|
- wie lege ich ein Repository an |
||||
|
- vim (ein paar alltägliche Befehle) |
||||
|
|
||||
|
### Erkenntnis |
||||
|
Versionskontrolle werden wir im Projekt einsetzen, um |
||||
|
zu jeder Zeit den Entwicklungsstand einzusehen und paralleles Arbeiten an Dateien zu ermöglichen. Sollten Probleme an der Software auftreten, können wir zu einem funktionierenden Stand wechseln und durch das Commit-Log die Ursache ausfindig machen. |
||||
|
Außerdem kann ich als Developer mit den gelernten vim-Befehlen vor den anderen flexen. |
||||
|
|
||||
|
### Kritik |
||||
|
`git status` zeigt mir einen groben Zustand meines Git-Repositorys an. Manchmal werden Dateien oder Verzeichnisse dort rot oder grün angezeigt. Die grünen |
||||
|
Dateien verschwinden von der Ausgabe, wenn ich `git commit` |
||||
|
ausführe. Rote Dateien werden mit `git add` grün. |
||||
|
|
||||
|
### Mitteilung |
||||
|
an die Dozierenden Da dieser Punkt optional ist, lasse ich ihn |
||||
|
weg. Aber wenn mich irgendwas stört oder begeistert, kann ich es |
||||
|
hier anmerken. |
||||
|
|
||||
|
## Uebung 01 (27.10.2022) |
||||
|
### Lernziel |
||||
|
- SSH-Zugriff-zum-git-server-konfigurieren |
||||
|
- SSH key pair generieren |
||||
|
- oeffentlichen SSH key im Repository eintragen |
||||
|
- Lokale Kopie auf SSh-Zugriff umstellen |
||||
|
- Neue lokale Repositories |
||||
|
|
||||
|
### Erkenntnis |
||||
|
- einen ssh-key erstellt |
||||
|
- öffentlichen Schlüssel zu gogs hinzugefügt |
||||
|
- Master Branch erstellt |
||||
|
|
||||
|
### kritik |
||||
|
man muss die git-Konfigurationsdatei überprüfen und den url-Link in gitea/gogs SSH-Remote-Repository-Link ändern. |
||||
|
|
||||
|
### Mitteilung |
||||
|
|
||||
|
|
||||
|
|
||||
#### Übung 2 7.11.2022 |
|
||||
|
## Übung 02 (2.11.2022) |
||||
|
### Lernziel |
||||
|
- legen Sie in Ihrem Repository die Datei Programmierparadigmen.md an. |
||||
|
- Analysieren Sie die Programmiersprachen Java,C,Python,go,JavaScript und TypeScript hinsichtlich der in der Vorlesung genannten Kriterien und Schreiben sie ihre Analyse in Stichpunkten in die neu erstellte datei. |
||||
|
- Suchen Sie im Internet nach weiteren Programmierprinzipien und dokumentieren sie diese (Acronym, Langbezeichnung, Beschreibung) in der Obigen Datei. |
||||
|
|
||||
|
### Erkenntnis |
||||
|
Ein neu Datei als Programmierparadigmen.md an Gitea hochgeladet. |
||||
|
|
||||
einen ssh-key erstellt |
|
||||
öffentlichen Schlüssel zu gogs hinzugefügt |
|
||||
Branch erstellt |
|
||||
|
### Kritik |
||||
|
Programmierprinzipien |
||||
|
- SOLID |
||||
|
- STUPID |
||||
|
- KISS (Keep It Simple & Stupid) |
||||
|
- FCoH (Favor Composition over Inheritance) |
||||
|
- YAGNI (You Ain't Gonna Need It) |
||||
|
- IOC (Inversion Of Control) |
||||
|
- DI (Dependency Injection) |
||||
|
- DRY (Don't Repeat Yourself) |
||||
|
- DYC (Document Your Code) |
||||
|
- Clean Code at All Cost |
||||
|
|
||||
### Übung Debugging 16.11.2022 |
|
||||
#### Übung 3 |
|
||||
|
### Mitteilung |
||||
|
|
||||
clone link https://gogs.informatik.hs-fulda.de/Programmiermethoden_und_werkzeuge-public/UebungDebugging.git |
|
||||
|
|
||||
**Task 1 Uebung 1** |
|
||||
- Nachdem Aktivieren Sie die Zeilen 36 bis 38 durch entfernen der beiden *slashes*. |
|
||||
**Ausgaben sind:** |
|
||||
enter an integer number: 5 |
|
||||
- input: 5, Schleifenvariable: 2, Ergebnis 1 |
|
||||
- input: 5, Schleifenvariable: 3, Ergebnis 2 |
|
||||
- input: 5, Schleifenvariable: 4, Ergebnis 1 |
|
||||
- number 5 passed check: true% |
|
||||
|
## SU 1(datum) |
||||
|
### Lernziel |
||||
|
|
||||
enter an integer number: 34 |
|
||||
- input: 34, Schleifenvariable: 2, Ergebnis 0 |
|
||||
- number 34 passed check: false% |
|
||||
|
### Erkenntnis |
||||
|
### Kritik |
||||
|
|
||||
enter an integer number: 89 |
|
||||
- nachdem schleifen es gibt |
|
||||
- number 89 passed check: true% |
|
||||
|
### Mitteilung |
||||
|
|
||||
Nachdem einen Breakpoint an ziele 35 und zahl 45 eingeben es gibt |
|
||||
- die Inhalte der Variablen sind nextInt: 45, i:2, ergebnis:1 |
|
||||
|
## Übung 3 (16.11.2022) |
||||
|
|
||||
Nochmal lauft das Programm im Debug-modes und eingeben zahl ist 47 |
|
||||
- die Inhalte der Variablen sind nextInt: 47, i:2, ergebnis:1 dann nextInt: 47, i:3, ergebnis:2 |
|
||||
- am ende nextInt: 47, i:46 Ergebnis:1 check: true |
|
||||
|
clone link https://gogs.informatik.hs-fulda.de/Programmiermethoden_und_werkzeuge-public/UebungDebugging.git |
||||
|
|
||||
**Task 2 Uebung 2** |
|
||||
|
### Lernziel |
||||
|
- Führen Sie die Übung entsprechend den Anweisungen in der README.md-Datei aus. |
||||
|
- Debugging |
||||
|
|
||||
|
### Erkenntnis |
||||
|
**Task 1 Uebung 1** |
||||
|
- Nachdem Aktivieren Sie die Zeilen 36 bis 38 durch entfernen der beiden *slashes*. |
||||
|
**Ausgaben sind:** |
||||
|
enter an integer number: 5 |
||||
|
- input: 5, Schleifenvariable: 2, Ergebnis 1 |
||||
|
- input: 5, Schleifenvariable: 3, Ergebnis 2 |
||||
|
- input: 5, Schleifenvariable: 4, Ergebnis 1 |
||||
|
- number 5 passed check: true% |
||||
|
|
||||
Öffnen Sie das programm `Uebung2.java` im Editor |
|
||||
- Starten Sie das Programm mehrfach (*"run as Java Application"*) und geben Sie verschiedenen natürliche Zahlen ein. |
|
||||
|
enter an integer number: 34 |
||||
|
- input: 34, Schleifenvariable: 2, Ergebnis 0 |
||||
|
- number 34 passed check: false% |
||||
|
|
||||
- **natürliche zahlen sind 45, 14, 89 ergebnis sind False ingesamt** |
|
||||
|
enter an integer number: 89 |
||||
|
- nachdem schleifen es gibt |
||||
|
- number 89 passed check: true% |
||||
|
|
||||
|
Nachdem einen Breakpoint an ziele 35 und zahl 45 eingeben es gibt |
||||
|
- die Inhalte der Variablen sind nextInt: 45, i:2, ergebnis:1 |
||||
|
|
||||
- setzen Sie einen BreakPoint in Zeile 40 |
|
||||
- Starten Sie das Programm wie bisher |
|
||||
- Starten Sie das Programm im Debug-Modus und geben Sie die Zahl 45 ein |
|
||||
- Notieren Sie die Inhalte der Variablen (this) nextInt: 23 |
|
||||
- this: **Uebung2@8** |
|
||||
- count: **3** |
|
||||
- Notieren Sie die Anzahl der Einträge in der *Debug View* (this): **this, count, in, out in total 4 mit Zwischenüberschritt** |
|
||||
|
Nochmal lauft das Programm im Debug-modes und eingeben zahl ist 47 |
||||
|
- die Inhalte der Variablen sind nextInt: 47, i:2, ergebnis:1 dann nextInt: 47, i:3, ergebnis:2 |
||||
|
- am ende nextInt: 47, i:46 Ergebnis:1 check: true |
||||
|
|
||||
- in welcher Zeile steht der Debugger? 34->36 |
|
||||
- Notieren Sie die Anzahl der Einträge in der *Debug View* (this) |
|
||||
- nextInt: **45**, count: **2** |
|
||||
|
**Task 2 Uebung 2** |
||||
|
|
||||
|
Öffnen Sie das programm `Uebung2.java` im Editor |
||||
|
- Starten Sie das Programm mehrfach (*"run as Java Application"*) und geben Sie verschiedenen natürliche Zahlen ein. |
||||
|
|
||||
- in welcher Zeile steht der Debugger? **40** |
|
||||
- Notieren Sie die Anzahl der Einträge in der *Debug View* (this) false |
|
||||
- nextInt: **16**, count: **4** ergebnis: **false** |
|
||||
|
- **natürliche zahlen sind 45, 14, 89 ergebnis sind False ingesamt** |
||||
|
|
||||
**Beenden Sie den Debugger (*"Terminate"*)** |
|
||||
|
|
||||
### Uebung 4 23.11.2022 |
|
||||
|
- setzen Sie einen BreakPoint in Zeile 40 |
||||
|
- Starten Sie das Programm wie bisher |
||||
|
- Starten Sie das Programm im Debug-Modus und geben Sie die Zahl 45 ein |
||||
|
- Notieren Sie die Inhalte der Variablen (this) nextInt: 23 |
||||
|
- this: **Uebung2@8** |
||||
|
- count: **3** |
||||
|
- Notieren Sie die Anzahl der Einträge in der *Debug View* (this): **this, count, in, out in total 4 mit Zwischenüberschritt** |
||||
|
|
||||
#### Source Code Management (SCM) |
|
||||
|
- in welcher Zeile steht der Debugger? 34->36 |
||||
|
- Notieren Sie die Anzahl der Einträge in der *Debug View* (this) |
||||
|
- nextInt: **45**, count: **2** |
||||
|
- in welcher Zeile steht der Debugger? **40** |
||||
|
- Notieren Sie die Anzahl der Einträge in der *Debug View* (this) false |
||||
|
- nextInt: **16**, count: **4** ergebnis: **false** |
||||
|
|
||||
**Lokale Respository** |
|
||||
1.1 Stage und Historic |
|
||||
1.2 Merge |
|
||||
1.3 rebase |
|
||||
|
**Beenden Sie den Debugger (*"Terminate"*)** |
||||
|
|
||||
|
### Kritik |
||||
|
|
||||
|
### Mitteilung |
||||
|
|
||||
**Git Respositoty changes** |
|
||||
|
|
||||
#### Vorlesung 07.12.2022 |
|
||||
|
|
||||
##### Test |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
**Testmethodoligie - Bestandteile eine Tests** |
|
||||
|
### Uebung 4 23.11.2022 |
||||
|
|
||||
- Stichprobe |
|
||||
- Testfälle |
|
||||
- Testdaten |
|
||||
- Testobekt |
|
||||
- Testumgebung |
|
||||
- Testziel |
|
||||
- Soll-/Ist- Wertvergliech |
|
||||
|
#### Source Code Management (SCM) |
||||
|
|
||||
**Testziele** |
|
||||
|
**Lokale Respository** |
||||
|
1.1 Stage und Historic |
||||
|
1.2 Merge |
||||
|
1.3 rebase |
||||
|
|
||||
- Fehler aufzeigen |
|
||||
- Qualität erfassen |
|
||||
- Vertrauen erhöhen |
|
||||
- Grenzen ermitteln |
|
||||
|
|
||||
**Testebenen** |
|
||||
|
|
||||
- Anwendung/System |
|
||||
- Teilsystem/Modul |
|
||||
- Codeebene/Unit |
|
||||
|
**Git Respositoty changes** |
||||
|
|
||||
**Testpyramide** |
|
||||
|
|
||||
- GUI Tests (end to end tests) |
|
||||
business logik überprufen, functions und kommiunikation mit anderen components überprufen. |
|
||||
- Integration tests |
|
||||
|
|
||||
- Component / Contract Tests |
|
||||
- Unit Tests |
|
||||
|
### Erkenntnis |
||||
|
|
||||
**Testnamen** |
|
||||
|
### kritik |
||||
|
|
||||
Test werden benannt nach: |
|
||||
- Ziel (Integration Test, Lasttest) |
|
||||
- Methode (Regressionstest) |
|
||||
- Testgegenstand (UI-test, Module-test, Unit-test) |
|
||||
- Level (Systemtest) |
|
||||
- Personen (Entwicklertest, Anwendertest) |
|
||||
- Testabdeckung (Komplettest, partieller Test) |
|
||||
|
### Mitteilung |
||||
|
|
||||
**Qualitätskosten** |
|
||||
|
|
||||
- High Cost -> Poor Quality -> Failure Costs |
|
||||
- High Cost -> Exceptional Quality -> Sweet Spot (prevention & Appraisal Cost) |
|
||||
- Low Cost -> Exceptional Quality -> prevention & Appraisal Cost |
|
||||
|
|
||||
|
## SU 07 (07.12.2022) |
||||
|
|
||||
**Testprozess** |
|
||||
|
### Lernziel |
||||
|
- Relvante Literatur |
||||
|
- Motivation |
||||
|
- Grundlagen |
||||
|
- Testmethodologie |
||||
|
- TestProzess |
||||
|
- Psychologische Aspekte |
||||
|
|
||||
|
### Erkenntnis |
||||
|
**Testmethodoligie - Bestandteile eine Tests** |
||||
|
|
||||
**Testprozess - Ablauf** |
|
||||
|
- Stichprobe |
||||
|
- Testfälle |
||||
|
- Testdaten |
||||
|
- Testobekt |
||||
|
- Testumgebung |
||||
|
- Testziel |
||||
|
- Soll-/Ist- Wertvergliech |
||||
|
|
||||
|
**Testziele** |
||||
|
|
||||
**Testprozess - Plannung** |
|
||||
|
- Fehler aufzeigen |
||||
|
- Qualität erfassen |
||||
|
- Vertrauen erhöhen |
||||
|
- Grenzen ermitteln |
||||
|
|
||||
**Testprozess - Analyse & design** |
|
||||
|
**Testebenen** |
||||
|
|
||||
- basiert auf Anforderungsdokumentation |
|
||||
- Testspezifikation |
|
||||
- Testfaelle |
|
||||
- Kritikalitaet |
|
||||
- Testdaten |
|
||||
- Testumgebung |
|
||||
- Ausfuehrungsreihenfolge |
|
||||
- Infrastruktur |
|
||||
- Testkriterium |
|
||||
|
- Anwendung/System |
||||
|
- Teilsystem/Modul |
||||
|
- Codeebene/Unit |
||||
|
|
||||
|
**Testpyramide** |
||||
|
|
||||
|
- GUI Tests (end to end tests) |
||||
|
business logik überprufen, functions und kommiunikation mit anderen components überprufen. |
||||
|
- Integration tests |
||||
|
|
||||
|
- Component / Contract Tests |
||||
|
- Unit Tests |
||||
|
|
||||
|
**Testnamen** |
||||
|
|
||||
|
Test werden benannt nach: |
||||
|
- Ziel (Integration Test, Lasttest) |
||||
|
- Methode (Regressionstest) |
||||
|
- Testgegenstand (UI-test, Module-test, Unit-test) |
||||
|
- Level (Systemtest) |
||||
|
- Personen (Entwicklertest, Anwendertest) |
||||
|
- Testabdeckung (Komplettest, partieller Test) |
||||
|
|
||||
|
**Qualitätskosten** |
||||
|
|
||||
|
- High Cost -> Poor Quality -> Failure Costs |
||||
|
- High Cost -> Exceptional Quality -> Sweet Spot (prevention & Appraisal Cost) |
||||
|
- Low Cost -> Exceptional Quality -> prevention & Appraisal Cost |
||||
|
|
||||
|
|
||||
|
**Testprozess** |
||||
|
|
||||
|
**Testprozess - Ablauf** |
||||
|
|
||||
**Testprozess - Testausfuerung** |
|
||||
|
|
||||
Testlog |
|
||||
- aufgetretenes Fehlverhalten |
|
||||
- Fehlerkategorie (high/medium/low) |
|
||||
|
**Testprozess - Plannung** |
||||
|
|
||||
|
**Testprozess - Analyse & design** |
||||
|
|
||||
**Testprozess - Testnachbereitung** |
|
||||
|
- basiert auf Anforderungsdokumentation |
||||
|
- Testspezifikation |
||||
|
- Testfaelle |
||||
|
- Kritikalitaet |
||||
|
- Testdaten |
||||
|
- Testumgebung |
||||
|
- Ausfuehrungsreihenfolge |
||||
|
- Infrastruktur |
||||
|
- Testkriterium |
||||
|
|
||||
- Testreport |
|
||||
- Zusammenfassung Testausfuehrungen |
|
||||
- Vergleich mit frueheren Testlaeufen |
|
||||
- Entscheidung ueber Lieferfaehigkeit |
|
||||
|
**Testprozess - Testausfuerung** |
||||
|
|
||||
|
Testlog |
||||
|
- aufgetretenes Fehlverhalten |
||||
|
- Fehlerkategorie (high/medium/low) |
||||
|
|
||||
|
**Testprozess - Testnachbereitung** |
||||
|
|
||||
|
- Testreport |
||||
|
- Zusammenfassung Testausfuehrungen |
||||
|
- Vergleich mit frueheren Testlaeufen |
||||
|
- Entscheidung ueber Lieferfaehigkeit |
||||
|
|
||||
|
### kritik |
||||
|
|
||||
|
### Mitteilung |
Write
Preview
Loading…
Cancel
Save
Reference in new issue