Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in...

35
Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten

Transcript of Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in...

Page 1: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Thomas Rau, Peter Brichzin

Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten

Page 2: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Dateien können in unterschiedlicher Qualität verwaltet werden

# 2Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Quelle: https://xkcd.com/1459/

Page 3: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

In Softwareprojekten gibt es oft organisatorische Probleme, die der inhaltlichen Arbeit ablenken!

• Wie lassen sich die Teilergebnisse regelmäßig zusammenfügen?

• Wie vermeidet man, dass das Team blockiert ist, weil der Schüler mit wesentlichen Teilen des aktuellen Quelltextes krank zu Hause ist?

• Wie ermöglicht man, dass begeisterte Schülerinnen und Schüler zu Hause weiterentwickeln können?

• Wie lässt sich einfach dokumentieren, wer, wann, welche Teile der Software bearbeitet hat?

# 3Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 4: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Versionskontroll-Systeme lösen die dargestellten Probleme!

• Verteilter Zugriff auf Dateien als Voraussetzung für verteiltes kollaboratives Arbeiten

• Versionierung: Übersicht über verschiedene Versionen inklusiv der Dokumentation wer, wann, was geändert hat

• Datensicherheit, u.a. durch das Rücksetzen der Datei auf eine ältere Version

• Automatisches Zusammenführen (engl. merge) von Quelltexten bzw. Konflikterkennung, falls mehrere Entwickler Veränderungen im selben Bereich durchführen

# 4Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 5: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

# 5Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Agenda

1. Grundlegendes zu Versionsverwaltung

2. Übung 1: Auschecken

3. Übung 2: Abgeben und Aktualisieren

4. Übung 3: Konflikte

5. SVN-Server

6. Übung 4: Workflow für Lehrer

7. Erfahrungen

8. Anwendungsbeispiel Entwurfsmuster MVC

Page 6: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Bei einer zentralen Versionsverwaltung werden bei Änderungen nur die Unterschiede übertragen

# 6Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Quelle: https://commons.wikimedia.org/wiki/File:SVNvsGITServer_1.png

Page 7: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Bei einem verteilten Versionsverwaltungssytem besitzt jeder eine lokale Kopie inkl. der Historie

# 7Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Quelle: https://commons.wikimedia.org/wiki/File:SVNvsGITServer_2.png

Page 8: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Die grundlegenden Operationen bei Repositories sind Checkout, Commit und Update

• Checkout – Arbeitskopie erstellen:Lokal alle Inhalte des Versionskontrollsystems neu laden.

• Commit – Abgeben: Eine Änderung am Inhalt des Versionskontrollsystems: Eine semantische Einheit ohne Übersetzungsfehler, built-fähig

• Update – Aktualisieren: Von anderen abgegebene Änderungen lokal laden.

# 8Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 9: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Die Profis verwenden zwischen Entwicklung und Releases unterschiedliche Zweige.

# 9Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 10: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Impulse für kollaboratives Arbeiten kommen aus der Informatik, da dort Teamarbeit unumgänglich ist.

# 10Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 11: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Impulse für kollaboratives Arbeiten kommen aus der Informatik, da dort Teamarbeit unumgänglich ist.

# 11Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

AIR – Aftersales Information Research:

Inhalt: Reparaturanleitungen, Service- und Marketingpakete, Diagnosen, Befunde, Ersatzteile, …weltweit in 26 Sprachen

Aufwand ist größer als 100 Bearbeiterjahre !!!

Page 12: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

In der Entwicklungsumgebung BlueJ ist ein SVN-Client integriert

# 12Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Teamarbeits - Menü sichtbar machen

Page 13: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 1: Erstmalig ein BlueJ-Projekt aus einem Repository auschecken

# 13Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Bei einem öffentliches Repository ist für lesenden zugriff keine Autentifizierung nötig.

Menü Werkzeuge:Teamarbeit -->Arbeitskopie erstellen

engl.:Team--> checkout project

Page 14: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

# 14Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Agenda

1. Grundlegendes zu Versionsverwaltung

2. Übung 1: Auschecken

3. Übung 2: Abgeben und Aktualisieren

4. Übung 3: Konflikte

5. SVN-Server

6. Übung 4: Workflow für Lehrer

7. Erfahrungen

8. Anwendungsbeispiel Entwurfsmuster MVC

Page 15: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 1: Erstmalig ein BlueJ-Projekt aus einem Repository auschecken

# 15Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 16: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 1: Erstmalig ein BlueJ-Projekt aus einem Repository auschecken

# 16Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Aufgabe: Checken Sie beliebige Projekte aus dem Server aus, aber auf jeden Fall das BlueJ-Projekt „SVN Aufgabe 1“ für den nächsten Schritt.

Page 17: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 2: Abgeben (Commit) und Aktualisieren (Update)

# 17Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Authentifizierung über Benutzername und Passwortinfos2015!#!

Page 18: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

# 18Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Legen Sie in „SVN Aufgabe 1“ eine neue Klasse an, die das Interface „Tier“ implementiert. Die Klasse „Loewe“ kann als Beispiel dienen.

Aktualisieren Sie.

Geben Sie Ihre Änderungen mit einer aussage-kräftigen Beschreibung (Kommentar) ab.

Führen Sie weitere Updates und Commits durch. Sollten Konflikte auftreten, so ignorieren Sie diese.

Übung 2: Abgeben (Commit) und Aktualisieren (Update)

Page 19: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

# 19Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Rufen Sie den Status ab.

Nachteil an BlueJ-Client: Keine Information über Autor und Datum

Übung 2: Das Repository speichert die Historie der Dokumentatenablage

Page 20: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Grundsätzliche Abfolge

# 20Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 21: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 3: Konflikte

# 21Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Aufgabe: Checken Sie das Projekt „SVN Aufgabe 2“ aus und ergänzen Sie eine noch nicht vorhandene getter- oder setter-Methode für ein Attribut der Klasse „Held“. Führen Sie dann einen Commit durch (bzw. vorher ein eventuell einge fordertes Update).

Page 22: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 3: Konflikte automatisch zusammenführen

# 22Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 23: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 3: Konflikte manuell zusammenführen

# 23Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 24: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

# 24Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Agenda

1. Grundlegendes zu Versionsverwaltung

2. Übung 1: Auschecken

3. Übung 2: Abgeben und Aktualisieren

4. Übung 3: Konflikte

5. SVN-Server

6. Übung 4: Workflow für Lehrer

7. Erfahrungen

8. Anwendungsbeispiel Entwurfsmuster MVC

Page 25: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Der Server

# 25Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Z.B. SourceForgeVorteile: KostenlosNachteile: öffentlich, User müssen einzeln angelegt werden

Page 26: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 4: Workflow für die Lehrkraft

# 26Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Tortoise SVN – Auswahl von zu synchronisierenden Verzeichnissen

Page 27: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 4: Workflow für die Lehrkraft – Checkout

# 27Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

SVN Client:Tortoise SVN –

Checkout über Kontextmenü in der Dateiverwaltung

Page 28: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Übung 4: Workflow für die Lehrkraft

# 28Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Tortoise SVN – Auswahl von zu synchronisierenden Verzeichnissen

Page 29: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Workflow für die Lehrkraft: Update und Commit

# 29Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 30: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

# 30Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Agenda

1. Grundlegendes zu Versionsverwaltung

2. Übung 1: Auschecken

3. Übung 2: Abgeben und Aktualisieren

4. Übung 3: Konflikte

5. SVN-Server

6. Übung 4: Workflow für Lehrer

7. Erfahrungen

8. Anwendungsbeispiel Entwurfsmuster MVC

Page 31: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Erfahrungen

# 31Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Rückmeldungen aus der PraxisTypische Probleme

Page 32: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Anwendungsbeispiel Entwurfsmuster MVC

# 32Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 33: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Anwendungsbeispiel Entwurfsmuster MVC

# 33Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Page 34: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

# 34Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Fazit

Repositories zur Unterstützung von

kollaborativen Arbeiten in

Softwareprojekten

Page 35: Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.

Versionskontrollsysteme bieten bei (Software-entwicklungs-)Projekten einen großen Mehrwert

• In Softwareprojekten gibt es oft organisatorische Probleme, die der inhaltlichen Arbeit ablenken! Versionskontroll-Systeme bieten mitVerteiltem ZugriffVersionierungDatensicherheitAutomatischem ZusammenführenLösungen zu den Problemen.

• Repositories vereinfachen dem Lehrer das Verteilen von Daten.• Mit Versionskontrollsysteme können Schülerinnen und Schüler

deutlich und schnell erfahren, welchen Gewinn kollaboratives Arbeiten hat.

# 35Thomas Rau, Peter Brichzin INFOS 2015, Darmstadt

Material: ddi.ifi.lmu.de/fortbildungen