Browse Source

Woche10

master
Haytham Daoula 2 years ago
parent
commit
88d7021558
  1. 42
      Lerntagebuch.md

42
Lerntagebuch.md

@ -175,7 +175,7 @@ werden soll.
# Woche 9 # Woche 9
## 1. Was sind die wesentliche Inhalte von Woche 3 ?
## 1. Was sind die wesentliche Inhalte von Woche 9 ?
- Was ist eine Test Driven Developement und warum es beim Entwicklung wichtig ist? - Was ist eine Test Driven Developement und warum es beim Entwicklung wichtig ist?
- TDD oder Testgetriebene Entwicklung ist ein Vorgang, bei dem Testfälle vor dem Code geschrieben werden, der diese Fälle validiert. - TDD oder Testgetriebene Entwicklung ist ein Vorgang, bei dem Testfälle vor dem Code geschrieben werden, der diese Fälle validiert.
@ -200,3 +200,43 @@ werden soll.
- Testhareness : ein Testharness ist eine Sammlung von Software- und Testdaten, die von Entwicklern zum Unit-Test von Softwaremodellen während der Entwicklung verwendet wird. - Testhareness : ein Testharness ist eine Sammlung von Software- und Testdaten, die von Entwicklern zum Unit-Test von Softwaremodellen während der Entwicklung verwendet wird.
- KPI (key performance indicator) : ist eine Methode zur Analyse von Software-Quellcode und quellcodebezogenen IT-Systemen, um Einblicke in geschäftskritische Aspekte der Entwicklung eines Softwaresystems zu gewinnen, wie z. B. Team-Performance, Time-to-Market, Risikomanagement, Fehlervorhersage und vieles mehr. - KPI (key performance indicator) : ist eine Methode zur Analyse von Software-Quellcode und quellcodebezogenen IT-Systemen, um Einblicke in geschäftskritische Aspekte der Entwicklung eines Softwaresystems zu gewinnen, wie z. B. Team-Performance, Time-to-Market, Risikomanagement, Fehlervorhersage und vieles mehr.
# Woche 10
## 1. Was sind die wesentliche Inhalte von Woche 10 ?
- Die Größe eines Projekts bestimmt seine Komplexität, die Anzahl der Entwickler und wie die Einzelleistungen zusammengeführt wurden.
- Bei dem Zusammenführen der Einzelleistungen entstehen die folgende Probleme : Widerspruch Kreativität gegen Konformität, teschnische Konflikte und persönliche Konflikte die zum großen Aufwand führen können.
- Um diese Probleme zu vermeiden und um die Konflikte zu verringern, verwendet man Continuous Integration Systemen.
- Die Vorteile von CI Systemen sind : Verringerung des Konfliktpotentials durch formale Prozesse, und der Aufwand durch automatisierte Prozesse.
- CI zählt als eine Vorstufe zu Continuous Delivery.
- Eine Entwicklungsumgebung des Programmierers (IDE) bietet viele Funktionalitäten die, die Programmierung leichter macht wie z.B. Syntax highlighting, Syntax-Vervollständigung, Navigation, Fehler-Lokalisierung, usw.
- Durch eine Source Code Management System (SCM) kann man die Arbeit eizelner Entwickler sichern, eine zentrale Verfügbarmachung realisieren, Zusammenführung parallel geänderter Dateien, paralelle Entwicklung verschiedener Features ermöglichen, Zugriff auf Releases und zwischen Entwicklungständen wechseln.
- Unter Abhängigkeiten versteht man was nicht selbst im Buid-Lauf erstellt oder erzeugt ist, z.B. Packages in Java oder libraries in C/C++.
- Man kann bei der Abhängigkeitsverwaltung auf einzelne Versionen zugreifen und innerhalb der Organisation eine zentrale Bereitstellung realisieren.
- Das Build ermöglicht die Übersetzung von Code, das Erzeugen von Liefer-Artefakte und die Ausführung von automatisierte Tests und Deployment.
- Ein Continuous Integration Server überwacht das SCM, indem merge conflicts oder Build errors vermieden wurden, außerdem werden dadurch Ergebnisse berichtet.
- Als Erweiterung für Continuous Delivery findet man noch das Staging System und das Produktion System.
### Ablauf des CI-Prozesses
- Der Ablauf des CI-Prozesses besteht aus 6 Schritte : Checking Change, Fetch Change, Build, Test, Ergebnisauswertung und schließlich die Benachrichtigung.
- 1. Chekin Change : Veröffentlichen der Änderung und Erstellung der eigener Branch.
- 2. Fetch Change : Änderungen feststellen ,zeitgesteuert und ereignisgesteuert.
- 3. Build : merge and compile.
- 4. Test : muss nur nach erfolgreichen Compile durchgeführt, Testframework starten (Ceedling,unity,CMock) und Ergebnisse sammeln.
- 5. Ergebnisauswertung : Status von merge, compile und Test ermitteln, Änderung übernehmen beim Erfolgsfall.
- 6. Benachrichtigung : muss zeitnah sein und soll über Mail, SMS, Whatsapp usu. geschick worden.
- Die automatisierte Tests sind wiederholbar, erkennen Laufzeitfehler, dokumentieren gewünschtes Verhalten, können allerdings fachlichen Fehler und Abweichungen von unbekanntem Verhalten nicht finden.
## 2. Was kann man für das Teamprojekt anwenden ?
- Man lernt wie leichter ein Projekt zu organisieren sein kann, mithilfe von SCM, CI und CD.
- Tests sind entscheidend in einem Projekt, dadurch erkennt man Fehler und korrigiert sie um einen effizienten Code zu schreiben.
- durch den Ablauf des CI-Prozesses, lernt man in welche Reihenfolge eine erfolgreichen Gruppenprojekt ausgeführt ist.
## 3. Begriff/Thema erklären :
- Continuous integration : Unter kontinuierlicher Integration (Continuous Integration, CI) versteht man die automatisierte Integration von Codeänderungen mehrerer Beteiligter in ein einziges Softwareprojekt.
- Continuous delivery : Continuous Delivery ist die Fähigkeit, Änderungen aller Art - einschließlich neuer Funktionen, Konfigurationsänderungen, Fehlerbehebungen und Experimente - sicher, schnell und nachhaltig in die Produktion oder in die Hände der Benutzer zu bringen.
Loading…
Cancel
Save