##entfällt: LE 11 | VF - Versions- und Fehlermanagement Flashcards

1
Q

Continous Integration

A

Continous Integration

  • Mehrere Aufgaben die von folgenden Tools unterstützt werden können:
    • Quellen ziehen, sichern und verwalten: CVS, Gít
    • Vorgänge automatisieren und in den Buildprozess integrieren: Ant
    • Codequalität mittels Tests sicherstellen: lunit
    • Fehler- und Anforderungsverwaltung: BugZilla
  • Ziel ist es jederzeit lauffähigen Code bereit stellen zu können
  • Source ist immer an einer zentralen Stelle gehalten
  • Entwickler fühlt sich weniger als Einzelkämpfer sondern als Teil eines Teams
  • Entwicklungsarbeit gilt als erfolgreich wenn der gesamte Zyklus durchlaufen wurde und das Produkt oder der Prototyp fehlerfrei arbeitet und erfolgreich integriert ist
  • Integrationsbuilds können mit einem Klick durchgeführt werden
  • Cl spart viel Geld, Fehler werden früher erkannt und behoben, Prototypen einfacher integriert und ausreichend getestet werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Versionsmanagement

A

Versionsmanagement

  • Bezeichnet allgemein den Vorgang der Verwaltung von Sourcecode in verschiedenen Versionen durch Softwarewerkzeuge
  • Geordnete und zentrale Datenhaltung
  • Release- und Entwicklungsmanagement um bestimmte Entwicklungsstände jederzeit geordnet ausgeben zu können oder zu verfolgen
  • Kann selbst Teil des Konfigurationsmanagements sein
  • Change-Management ist die Summe folgender Systeme:
    • Versionsmanagement
    • Release-Management
    • Konfigurationsmanagement
  • Versionsmanagement ohne Werkezuge im großen nicht möglich
    • Verwaltung von Versionszweigen
    • Fehlersuche
    • Etc
  • Anforderungen für Versionskontrollsystem
    • Snapshots müssen vorgenommen werden können
    • Sourcecode muss in das zentrale Repo übertragen werden können
    • Verantwortungen und Kontrolle über den Code muss transparent sein
    • Nachvollziehbar sein wer welche Änderung vorgenommen hat und welche Features integriert sind
    • Konflikte sollten aufgelöst oder zumindest transparent gemacht werden
    • Muss leicht zu handhaben sein
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Grundlegende Konzepte der Versionsverwaltung

A

Grundlegende Konzepte der Versionsverwaltung

  • Entwickler entwickelt in seiner lokalen Sandbox W
  • Code wird entweder initial neu „eingecheckt” oder für die Arbeit „ausgecheckt”
  • Kern bei allen Versionsvenıvaltungen ist ein „Repository“ das idR eine Serveranwendung darstellt
  • Einchecken von Code wird mit einem Log-Eintrag versehen (unter anderem für Revisions-Dokumentation)
  • Jede Datei bekommt eine Revisionsnummer zur eindeutigen Identifizierung und zum
  • Nachvollziehen der Änderungen
  • Dateien können für Bearbeitung gesperrt werden
  • Versionskontrollsysteme müssen Konflikte auflösen oder diese zumindest transparent machen
  • Checkout: aktuelle Version laden und lokal sichern. Die lokale Version ist dann die
  • Arbeitsversion die erstmal niemand sieht
  • Checkin: die Arbeitsversion wird wird zur offiziellen Projektversion und allen beteiligten zur Verfügung gestellt
  • 2x Checkout führt nach Änderung und Checkin zu Parallelversionen. Konfigmanager muss entscheiden was geschehen soll (verwerfen, beide zusammenführen, etc.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Branches und Tags

A

Branches und Tags

  • Aufgabe der Versionsverwaltung ist es, sich alle Versionen aller Dateien zu merken
  • Bei Update werden z.B. immer nur die neuesten Daten/geänderten übertragen
  • „Tag“ beschreibt einen symbolischen Namen/frei wählbaren Bezeichner der quasi eine Momentaufnahme des Arbeitsstandes einer Datei darstellt
  • Ein „Branch” (Fork), Zweig, ist eine Abspaltung von einer anderen Version, so dass unterschiedliche Versionen parallel weiterentwickelt werden können.
  • Der Hauptentwicklungszweig wird idr „Trunk” oder „Master” genannt Branches können wieder in den Master integriert werden
  • Revision: Bei einzelnen Dateien spricht man von einer Version oder Revision
  • Release: Bei einer Menge von Dateien, die ausgezeichnet wurden, spricht man von einem Release
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Vorteile der Versionsverwaltung

A

Vorteile der Versionsverwaltung

  • Mehrere Versionen einer Anwendung können verwaltet werden
  • Im Fehlerfall kann auf eine frühere Version zurückgegriffen werden
  • Integrität der Dateien gewährleistet, da alle zu einem Versionsstand passen
  • Dokumentation der Änderungen kann direkt für ein ChangeLog und für offizielle Dokumentationen genutzt werden
  • Aggressive Codeänderungen wie in agilen Modellen wird unterstützt und passiert auf sicherem Boden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Locking Strategien

A

Locking Strategien

  • Locking meint das Sperren von Dateien
  • Pessimistic Locking/ Lock-Modify-Unlock
    • Die Datei an der gearbeitet wird, wird gesperrt
    • Sperren werden vergessen und führen zu Problemen
    • Disjunktes Arbeiten an verschiedenen Stellen in der gleichen Datei wird dadurch unmöglich
  • Optimistic Locking / Copy-Modify-Merge
    • Fast immer wird Optimistic Locking angewendet
    • Erlaubt gleichzeitiges Arbeiten an der gleichen Datei
    • Selten werden gleiche Codezeilen parallel bearbeitet
    • Einchecken meist sehr einfach (ein Klick) wodurch häufig eingecheckt wird und die Wahrscheinlichkeit von Konflikten stark minimiert wird
    • Auftretende Konflikte lassen sich idr durch Differenzdarstellung schnell beheben
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

zentrale Versionskontrolle

A

zentrale Versionskontrolle

  • Zentral:
    • CVS, Subversion
    • Es gibt ein zentrales Repo zur Bereitstellung der Revisionen
    • Lokale Arbeitskopie für Anwender
    • Historie wird zentral vorgehalten
    • Operationen die auf Daten des Repos zugreifen oder Daten überführen sollen benötigen eine Verbindung zum Repository
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Verteilte Versionskontrolle

A

Verteilte Versionskontrolle

  • Verteilt:
    • Git, Mercurial
    • Jeder Anwender besitzt sein eigenes, lokales Repository
    • Die einzelnen Repositories tauschen über bestimmte Operationen Informationen aus (push, pull)
    • Lokale, eigene Repos ermöglichen weitgehend unabhängiges Arbeiten
    • Gemeinsame Plattform durch Remote-Repository
    • Jedes eigene Repo hat eigene Branches und Historien
    • Push: transfer von lokal zu externem Repo
    • Pull: transfer von externen ins lokale Repo
  • Vorteile/ Nachteile
    • Vorteile:
      • Unabhängiges und schnelles Arbeiten wird möglich
      • Keine Netzwerkanbindung erforderlich
      • Alle nötigen Informationen in der lokalen Sandbox
      • Demokratisch und kommunikativ
    • Nachteile:
      • Jeder Entwickler muss die Infrastrukturdes verteilten Netzes kennen
      • Revisionsnummer müssen durch global eindeutige Hashwerte ersetzt werden, was als aufwendig bewertet wird
How well did you know this?
1
Not at all
2
3
4
5
Perfectly