diff --git a/Lerntagebuch5.md b/Lerntagebuch5.md deleted file mode 100644 index df637f3..0000000 --- a/Lerntagebuch5.md +++ /dev/null @@ -1,87 +0,0 @@ -##SU 05 Lerntagebuch (23.11.2022) -##Daria Popa fdai7460 Matrikelnummer:1436682 - -### Lernziel => Was waren die wesentlichen Inhalte der letzten Vorlesung/Übung? - --Software-Projekte: - -Die Softwareprojekten werden nicht mehr einzeln ausgeführt, heutzutage ist es hauptsächlich eine Zusammenarbeit mehrerer Programmierentwickler. - -Da die Komplexität des Arbeitsprozesses steigt, sind diese in spezialisierte Arbeitsgruppen aufgeteilt, sodass ist die Einzelarbeit fast ausgeschlossen. - -Jeder beeinflusst jedem - --Da die Leistungen Einzelpersonen zusammengeführt werden und dabei sich verschiedene Sichten entwickeln, kann es meistens zu technischen als auch persönlichen Konflikten führen - --Vorteile von CI Systemen - -Automatisierung des Prozesses, die den Aufwand verringern - -Ausführen von den automatischen Tests, die den Arbeitsprozess beschleunigen, da es auch im Hintergrund laufen kann. - -Konfliktpotenzial ist geringer, wenn formale Prozesse eingesetzt werden - --Softwareentwicklungsprozess: - -Entwicklung des Programms zu dem jeder Entwickler Zugang hat und das Programm bzw. den Code sehen kann. Es ist am sinnvollsten, die neuste Version des Programms zu haben, um sich die Zeit und den Aufwand sparen zu können. Code kann auch von Entwicklern umändern werden, falls es nicht über einstimmig ist. - -Zu beachten ist, dass nur einzelne Versionen gespeichert werden - -Letztendlich wird ein Lieferprojekt erzeugt. - - -Semantische Versionierung: - MAJOR => einer Änderung bedeutet, dass es nicht mehr kompatible ist - MINOR => es sind zusätzliche Features, die zu des anderen Programmteil verträglich bleibt (Abwärtskompatibel) - PATCH=> die Fehler werden dadurch beheben, diese Veränderung ist für den Programmierteil abwärtskompatible - - -Regeln der semantischen Versionierung: - - ausschließlich Ziffern und Punkte - - MINOR und PATCH werden unabhängig voneinander inkrementiert - - wenn MAJOR erhöht, wird werden MINOR und PATCH auf 0 zurückgesetzt. - - wenn MINOR erhöht wird, wird PATCH auf 0 zurückgesetzt. - - -Source Code Management System: - -Der Source Code, auch als Quelltext oder Quellcode bezeichnet, ist der für Menschen lesbare Text in einer Programmiersprache. Ein Computer kann diesen automatisch in Maschinensprache übersetzen und das Programm lauffähig machen. - - • Eigene Arbeit sowie von den anderen Entwicklern wird gesichert - • Die Programmierungen werden bereitgestellt. - • Gleichzeitig sich veränderte Datei wird zusammengefügt - • Parallele Entwicklung verschiedener Features ist möglich - • Wechseln zwischen den Entwicklungsstufen möglich (branches) - - -Zu den Erstellungsprozessen gehören: - -Ausführung von automatisierten Test - -Ergebnisse aus einem Arbeitsprozess => Eine Datei von Quellcode, sodass es zu Lieferprogramm wird - -Bereitstellung von Software - - -Build-Tools =>Ein Build-System, auch Build-Tool genannt, ist ein Programm zum automatisierten den Prozess von Erzeugen der Software. Vom Code zum Anwendungsprogramm ermöglichen: - make (c~, gnu~) vorwiegend C/C++, keine Abhängigkeitsverwaltung - maven / gradle vorwiegend Java  npm vorwiegend JavaScipt / TypeScript - --Problem des CI: - -Automatisierter Test z.B nach der Arbeit durchführen, um zu wissen, was noch zu verbessern ist - -Kompilierbar bedeutet nicht immer, dass es ausführbar ist (bei Testen kann etwas Derartiges rauskommen, deswegen ist testen so wichtig - -Das Projekt muss nicht nur kompatibel sein, sondern muss auch funktionieren - - --Vorteile des automatisierten Tests: - -Wenn sich an der Software nicht ändert, kann der Test immer wieder durchgeführt werden und es solle gleiches Ergebnis kommen - -Im Vergleich zu dem manuellen Test, sind der automatisierte Test laufen immer wieder wiederholbar, dazu ist es viel schneller als manuelle Tests. - - --Grenzen automatisierter Tests: - -finden nur Abweichungen von gewünschten/bekanntem Verhalten, also die finden nicht das, was der Entwickler und Tester übersehen hat. - -finden keine neuen fachlichen Fehler - --Gemeinsames remote Repository: - -Alle Entwickler arbeiten gegen denselben Repository, zu der jeder Zugriff hat - -Vorteil: einfache Synchronisation - -Puschen=> für alle wird sichtbar und nutzbar - - - --Privater fork: - -es gibt ein zentrales remote Repository (= master), sowie ein separates remote Repository (= fork), das jeder Entwickler hat - -Jede lokale Repository hat 2 remote Repositories, origin also master, kann nur gelesen beziehungsweise nicht umgeändert werden, sowie Upstream, ein privater fork (eine Repository mit den Schreibrechten) - - -### Erkenntnis => Was kann ich für das Gruppenprojekt anwenden? - -Die Nutzung des CI Systems und desen automatisierten Tests, kann den Gruppenprojekt vorschnellen, vor allem der manuelle Tests sehr demotivierend sein könnten. Da die Softwareentwicklung von technischen als auch persönlichen Konflikten betroffen sein kann, ist es bedeutungsvoll verschiedene Sichten des Entwicklers zu berücksichtigen, sowie die in Betracht ziehen. - -### Wiederholung => Einen Begriff/Ein Thema in eigenen Worten erklären. -Softwareentwicklung ist heutzutage hauptsächlich nur möglich, wenn die Entwickler zusammen miteinander arbeiten und die dabei entstehende Probleme gemeinsam lösen. Um diese Arbeitsprozesse zu erleichtern, gibt es ein Continous Integration (CI) System, das automatische Tests des Softwareprogramms durchführt. Ein anderer sehr bedeutsamen Systeme ist Source Code Management (SCM) System, welches die Arbeiten der einzelner Entwickler speichert oder diese zur Verfügung gestellt werden. - -###Kritik => Was möchte ich dem Dozenten mitteilen? -