You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

267 lines
7.0 KiB

2 years ago
2 years ago
2 years ago
2 years ago
  1. ## Lerntagebuch
  2. # Mein Lerntagebuch für Programmiermethoden und -werkzeuge
  3. Das ist ein Beispiel wie ein Lerntagebuch aussehen könnte.
  4. ## SU 01(21.10.2021)
  5. ### Lernziel
  6. - Organisatorisches
  7. - Versionskontrollsysteme allgemein
  8. - git
  9. - Vorteile
  10. - wie lege ich ein Repository an
  11. - vim (ein paar alltägliche Befehle)
  12. ### Erkenntnis
  13. Versionskontrolle werden wir im Projekt einsetzen, um
  14. 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.
  15. Außerdem kann ich als Developer mit den gelernten vim-Befehlen vor den anderen flexen.
  16. ### Kritik
  17. `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
  18. Dateien verschwinden von der Ausgabe, wenn ich `git commit`
  19. ausführe. Rote Dateien werden mit `git add` grün.
  20. ### Mitteilung
  21. an die Dozierenden Da dieser Punkt optional ist, lasse ich ihn
  22. weg. Aber wenn mich irgendwas stört oder begeistert, kann ich es
  23. hier anmerken.
  24. ## Uebung 01 (27.10.2022)
  25. ### Lernziel
  26. - SSH-Zugriff-zum-git-server-konfigurieren
  27. - SSH key pair generieren
  28. - oeffentlichen SSH key im Repository eintragen
  29. - Lokale Kopie auf SSh-Zugriff umstellen
  30. - Neue lokale Repositories
  31. ### Erkenntnis
  32. - einen ssh-key erstellt
  33. - öffentlichen Schlüssel zu gogs hinzugefügt
  34. - Master Branch erstellt
  35. ### kritik
  36. man muss die git-Konfigurationsdatei überprüfen und den url-Link in gitea/gogs SSH-Remote-Repository-Link ändern.
  37. ### Mitteilung
  38. ## Übung 02 (2.11.2022)
  39. ### Lernziel
  40. - legen Sie in Ihrem Repository die Datei Programmierparadigmen.md an.
  41. - 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.
  42. - Suchen Sie im Internet nach weiteren Programmierprinzipien und dokumentieren sie diese (Acronym, Langbezeichnung, Beschreibung) in der Obigen Datei.
  43. ### Erkenntnis
  44. Ein neu Datei als Programmierparadigmen.md an Gitea hochgeladet.
  45. ### Kritik
  46. Programmierprinzipien
  47. - SOLID
  48. - STUPID
  49. - KISS (Keep It Simple & Stupid)
  50. - FCoH (Favor Composition over Inheritance)
  51. - YAGNI (You Ain't Gonna Need It)
  52. - IOC (Inversion Of Control)
  53. - DI (Dependency Injection)
  54. - DRY (Don't Repeat Yourself)
  55. - DYC (Document Your Code)
  56. - Clean Code at All Cost
  57. ### Mitteilung
  58. ## SU 1(datum)
  59. ### Lernziel
  60. ### Erkenntnis
  61. ### Kritik
  62. ### Mitteilung
  63. ## Übung 3 (16.11.2022)
  64. clone link https://gogs.informatik.hs-fulda.de/Programmiermethoden_und_werkzeuge-public/UebungDebugging.git
  65. ### Lernziel
  66. - Führen Sie die Übung entsprechend den Anweisungen in der README.md-Datei aus.
  67. - Debugging
  68. ### Erkenntnis
  69. **Task 1 Uebung 1**
  70. - Nachdem Aktivieren Sie die Zeilen 36 bis 38 durch entfernen der beiden *slashes*.
  71. **Ausgaben sind:**
  72. enter an integer number: 5
  73. - input: 5, Schleifenvariable: 2, Ergebnis 1
  74. - input: 5, Schleifenvariable: 3, Ergebnis 2
  75. - input: 5, Schleifenvariable: 4, Ergebnis 1
  76. - number 5 passed check: true%
  77. enter an integer number: 34
  78. - input: 34, Schleifenvariable: 2, Ergebnis 0
  79. - number 34 passed check: false%
  80. enter an integer number: 89
  81. - nachdem schleifen es gibt
  82. - number 89 passed check: true%
  83. Nachdem einen Breakpoint an ziele 35 und zahl 45 eingeben es gibt
  84. - die Inhalte der Variablen sind nextInt: 45, i:2, ergebnis:1
  85. Nochmal lauft das Programm im Debug-modes und eingeben zahl ist 47
  86. - die Inhalte der Variablen sind nextInt: 47, i:2, ergebnis:1 dann nextInt: 47, i:3, ergebnis:2
  87. - am ende nextInt: 47, i:46 Ergebnis:1 check: true
  88. **Task 2 Uebung 2**
  89. Öffnen Sie das programm `Uebung2.java` im Editor
  90. - Starten Sie das Programm mehrfach (*"run as Java Application"*) und geben Sie verschiedenen natürliche Zahlen ein.
  91. - **natürliche zahlen sind 45, 14, 89 ergebnis sind False ingesamt**
  92. - setzen Sie einen BreakPoint in Zeile 40
  93. - Starten Sie das Programm wie bisher
  94. - Starten Sie das Programm im Debug-Modus und geben Sie die Zahl 45 ein
  95. - Notieren Sie die Inhalte der Variablen (this) nextInt: 23
  96. - this: **Uebung2@8**
  97. - count: **3**
  98. - Notieren Sie die Anzahl der Einträge in der *Debug View* (this): **this, count, in, out in total 4 mit Zwischenüberschritt**
  99. - in welcher Zeile steht der Debugger? 34->36
  100. - Notieren Sie die Anzahl der Einträge in der *Debug View* (this)
  101. - nextInt: **45**, count: **2**
  102. - in welcher Zeile steht der Debugger? **40**
  103. - Notieren Sie die Anzahl der Einträge in der *Debug View* (this) false
  104. - nextInt: **16**, count: **4** ergebnis: **false**
  105. **Beenden Sie den Debugger (*"Terminate"*)**
  106. ### Kritik
  107. ### Mitteilung
  108. ### Uebung 4 23.11.2022
  109. #### Source Code Management (SCM)
  110. **Lokale Respository**
  111. 1.1 Stage und Historic
  112. 1.2 Merge
  113. 1.3 rebase
  114. **Git Respositoty changes**
  115. ### Erkenntnis
  116. ### kritik
  117. ### Mitteilung
  118. ## SU 07 (07.12.2022)
  119. ### Lernziel
  120. - Relvante Literatur
  121. - Motivation
  122. - Grundlagen
  123. - Testmethodologie
  124. - TestProzess
  125. - Psychologische Aspekte
  126. ### Erkenntnis
  127. **Testmethodoligie - Bestandteile eine Tests**
  128. - Stichprobe
  129. - Testfälle
  130. - Testdaten
  131. - Testobekt
  132. - Testumgebung
  133. - Testziel
  134. - Soll-/Ist- Wertvergliech
  135. **Testziele**
  136. - Fehler aufzeigen
  137. - Qualität erfassen
  138. - Vertrauen erhöhen
  139. - Grenzen ermitteln
  140. **Testebenen**
  141. - Anwendung/System
  142. - Teilsystem/Modul
  143. - Codeebene/Unit
  144. **Testpyramide**
  145. - GUI Tests (end to end tests)
  146. business logik überprufen, functions und kommiunikation mit anderen components überprufen.
  147. - Integration tests
  148. - Component / Contract Tests
  149. - Unit Tests
  150. **Testnamen**
  151. Test werden benannt nach:
  152. - Ziel (Integration Test, Lasttest)
  153. - Methode (Regressionstest)
  154. - Testgegenstand (UI-test, Module-test, Unit-test)
  155. - Level (Systemtest)
  156. - Personen (Entwicklertest, Anwendertest)
  157. - Testabdeckung (Komplettest, partieller Test)
  158. **Qualitätskosten**
  159. - High Cost -> Poor Quality -> Failure Costs
  160. - High Cost -> Exceptional Quality -> Sweet Spot (prevention & Appraisal Cost)
  161. - Low Cost -> Exceptional Quality -> prevention & Appraisal Cost
  162. **Testprozess**
  163. **Testprozess - Ablauf**
  164. **Testprozess - Plannung**
  165. **Testprozess - Analyse & design**
  166. - basiert auf Anforderungsdokumentation
  167. - Testspezifikation
  168. - Testfaelle
  169. - Kritikalitaet
  170. - Testdaten
  171. - Testumgebung
  172. - Ausfuehrungsreihenfolge
  173. - Infrastruktur
  174. - Testkriterium
  175. **Testprozess - Testausfuerung**
  176. Testlog
  177. - aufgetretenes Fehlverhalten
  178. - Fehlerkategorie (high/medium/low)
  179. **Testprozess - Testnachbereitung**
  180. - Testreport
  181. - Zusammenfassung Testausfuehrungen
  182. - Vergleich mit frueheren Testlaeufen
  183. - Entscheidung ueber Lieferfaehigkeit
  184. ### kritik
  185. ### Mitteilung