Thomas Rau (mit Material von Peter Brichzin) Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten

Ähnliche Dokumente
Versionsverwaltung. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009

Tool-Chain. Übung. Eclipse, SVN, Ant, Cobertura, Metrics Labor "Software Engineering Experiment" Sebastian Meyer und Kai Stapel

Einführung in Subversion

Software Engineering in der Praxis

Versionsverwaltung. Seminar Softwareentwicklung in der Wissenschaft Robert Wiesner

Einführung in Subversion

BlueJ und Subversion Inhaltsverzeichnis

Versionskontrolle mit Subversion

Einführung zu Git. Das Nötigste für die Studienarbeit im Modul Datenkommunikation. Ege Inanc

NT-Seminarvortrag am 11. Dezember Einführung in die Versionsverwaltung CVS. von Gordon Cichon

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Versionsmanagement

Einführung in Subversion

SVN in use. Roger Burkhardt Fachhochschule Nordwestschweiz Hochschule für Technik Institut für Geistes- und Naturwissenschaft

Einführung in Subversion

Revisionskontrollsystem GIT

Einführung in Subversion

Software-Engineering Grundlagen des Software-Engineering

Versionskontrolle mit Subversion

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Software(technik)praktikum: SVN-Tutorial

Versionsverwaltung mit Subversion

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

Versionskontrolle. Verteilte Versionskontrollsysteme. Richard Madsack. 25. November Versionskontrolle. Richard Madsack.

Software Engineering

Dokumentenverwaltung mit CVS eine Einführung

Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

: Einführung in die Programmierung Übungsblatt 1

Versionskontrolle mit Subversion

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann

Fachpraktikum Graphische Benutzungsoberflächen Wintersemester 2010/2011

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Subversion als Werkzeug in der Software-Entwicklung Eine Einführung. Tobias G. Pfeiffer Freie Universität Berlin

Softwaretechnik (Allgemeine Informatik) Überblick

Versionsmanagement. Software(technik)praktikum: Vorlesung 2: Versionsmanagement

Software Engineering in der Praxis

Mitmachen bei Git(Hub)-Projekten!

Versionsmanagement. Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn

Versionskontrollsysteme

Versionsverwaltung mit Eclipse. PR1 - Medizinische Informatik (IMB) Dennis-Immanuel Czogalla

Versionsverwaltung mit SVN

: Einführung in die Programmierung I Übungsblatt 1

Versionskontrolle mit SVK

Fachpraktikum Graphische Benutzungsoberflächen Wintersemester 2007/08

Einführung in Subversion. Tutorium SWP

Programmieren 1 11 Versionsverwaltung mit Git - Grundlagen -

Versionsverwaltung mit Git

Migration von Subversion nach Mercurial und Einsatz dezentraler Versionskontrolle in Unternehmen

Sourcecodeverwaltung

Kurzanleitung Eclipse

Versionsverwaltung mit git

Informatik IIa: Modellierung. Frühlingssemester Nachholtest 27. Mai Lösungen

Enterprise PHP Tools

Zur Erinnerung: Wichtige Begriffe zum Arbeiten mit einem SVN/Subversion sind im Anhang unter Exkurs zu SVN-Begriffen erklärt.

Von SVN zu Git. Daniel Willmann cbna

Software Configuration Management (SCM)

Enes Kurnaz, Oliver Nagel Institut für Mathematik und Informatik. Versionsverwaltung mit Git

Einfu hrung in Subversion mit TortoiseSVN

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

JUnit (Version 4.x) Framework zur Unterstützung von Unit-Tests. Wir verwenden nicht JUnit 3.x. Ideen dahinter. Test-Methode

Versionsverwaltung mit SVN

Verteilte Versionskontrolle mit. Einführung und Nutzung von SVK FrOSCon 24./25. Juni 2006

Server und manueller Spieler

Subversion und Tortoise SVN Tutorial. Quelle: mit freundlicher Genehmigung von sd&m Research

Praktikum Ingenieurinformatik (PI)

Subversion. 17. Oktober Subversion. Norbert Perk. Warum Versionsverwaltung? Wie funktioniert. Was ist Subversion? Subversion- Server.

Git-Grundlagen für Entwickler. Thomas Claudius

git Datamining und Sequenzanalyse Markus Fleischauer, Kai Dührkop

Informationen zur Installation und Nutzung von Subversion (SVN)

Wie benutzt man TortoiseSVN

Versionsverwaltung mit Git

Konfigurationsmanagement mit Subversion, Ant und Maven

Überblick. SVN Einführung, Softwaretechnologie, Sommersemester 2007 R O O T S

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Kurzanleitung zu. von Daniel Jettka

Richard Bubel & Martin Hentschel

Versionierung und Dateistruktur

Versionsverwaltung im Domino Designer. Holger Chudek Perfect Chain

Mercurial. or how I learned to stop worrying and love the merge. Ted Naleid IAIK

Subversion Grundprinzipien und grundlegende Anwendung

CVS. The open standard for version control. (Concurrent Versions System) Maik Zemann CVS

Deutsches Help+Manual-Forum:

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

Continuous Integration (CI) Workshop

Versionskontrollsysteme. Uwe Berger & Markus Dahms <bralug@bralug.de>

Arbeiten mit dem Versionsverwaltungssystem. Jannik Kramer Proseminar Werkzeuge für das wissenschaftliche Arbeiten

Apache Subversion (SVN)

Proseminar Unix-Tools CVS Daniel Weber & Zhen Zhang Betreuer: Volker Baier

Git - Grundlagen und Anwendungen

Apache Subversion (SVN)

Versionsmanagement mit Subversion

Enterprise PHP Tools

Semesterprojekt Semantic Text Browsing

Versionsverwaltung von Softwareartefakten. Dr. Thorsten Arendt Marburg, 05. November 2015

Apache Subversion (SVN)

Framework zur Unterstützung von Unit-Tests

Versionsverwaltung mit git. Christoph Knabe FB VI

Transkript:

(mit Material von Peter Brichzin) Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten

In Softwareprojekten gibt es oft organisatorische Probleme, die von 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? #2

Dateien können in unterschiedlicher Qualität verwaltet werden Quelle: https://xkcd.com/1459/ #3

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 #4

Überblick 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 #5

Bei einer zentralen Versionsverwaltung werden bei Änderungen nur die Unterschiede übertragen https://commons.wikimedia.org/wiki/file:svnvsgitserver_1.png Paul Vincent, Creative Commons Attribution 3.0 Unported #6

Bei einem verteilten Versionsverwaltungssytem besitzt jeder eine lokale Kopie inkl. der Historie Quelle: https://commons.wikimedia.org/wiki/file:svnvsgitserver_2.png Paul Vincent, Creative Commons Attribution 3.0 Unported #7

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. #8

Die Profis verwenden zwischen Entwicklung und Releases unterschiedliche Zweige. Thomas, Rau Peter Brichzin INFOS ILTB2015, 2016,Darmstadt Erlangen #9

In der Entwicklungsumgebung BlueJ ist ein SVNClient integriert Teamarbeits-Menü sichtbar machen # 10

Überblick 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 # 11

Übung 1: Erstmalig ein BlueJ-Projekt aus einem Repository auschecken Bei einem öffentliches Repository ist für lesenden Zugriff keine Authentifizierung nötig. Menü Werkzeuge: Teamarbeit Arbeitskopie erstellen (Englisch: Team checkout project) # 12

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

Übung 1: Erstmalig ein BlueJ-Projekt aus einem Repository auschecken 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. Benutzer: fortbildung Passwort: ********** Server: svn.code.sf.net/p/fortbildung/code Path: [leer] Protokoll: https # 14

Übung 2: Abgeben (Commit) und Aktualisieren (Update) Authentifizierung über Benutzername und Passwort # 15

Übung 2: Abgeben (Commit) und Aktualisieren (Update) 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 aussagekräftigen Beschreibung (Kommentar) ab. Führen Sie weitere Updates und Commits durch. Sollten irgendwelche Konflikte auftreten, so ignorieren Sie diese vorläufig. # 16

Übung 2: Schülerergebnisse # 17

Übung 2: Schülerergebnisse # 18

Übung 2: Das Repository speichert die Historie der Dokumentatenablage Rufen Sie den Status ab. Nachteil an BlueJ-Client: Keine Information über Autor und Datum INFOS ILTB2015, 2016,Darmstadt Erlangen # 19

Grundsätzliche Abfolge # 20

Übung 3: Konflikte Aufgabe: Checken Sie das Projekt SVN Aufgabe 2 aus und ergänzen Sie eine noch nicht vorhandene getter- oder settermethode für ein Attribut der Klasse Held. Führen Sie dann einen Commit durch (bzw. vorher ein eventuell eingefordertes Update). # 21

Übung 3: Konflikte automatisch zusammenführen # 22

Übung 3: Konflikte manuell zusammenführen # 23

Überblick 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 # 24

Der Server Zum Beispiel: SourceForge Vorteile: kostenlos Nachteile: öffentlich, User müssen einzeln angelegt werden # 25

Übung 4: Workflow für die Lehrkraft Tortoise SVN Auswahl von zu synchronisierenden Verzeichnissen # 26

Übung 4: Workflow für die Lehrkraft Checkout SVN Client: Tortoise SVN Checkout über Kontextmenü in der Dateiverwaltung # 27

Übung 4: Workflow für die Lehrkraft Tortoise SVN Auswahl von zu synchronisierenden Verzeichnissen # 28

Workflow für die Lehrkraft: Update und Commit # 29

Überblick 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 # 30

Erfahrungen Rückmeldungen aus der Praxis Typische Probleme Randall Munroe/xkcd, Creative Commons Attribution-NonCommercial 2.5 # 31

Anwendungsbeispiel Entwurfsmuster MVC # 32

Anwendungsbeispiel Entwurfsmuster MVC # 33

Anwendungsbeispiel Entwurfsmuster MVC # 34

Anwendungsbeispiel Programmier-AG # 35

Anwendungsbeispiel Programmier-AG # 36

Anwendungsbeispiel Programmier-AG # 37

Fazit Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten # 38

Versionskontrollsysteme bieten bei (Softwareentwicklungs-)Projekten einen großen Mehrwert In Softwareprojekten gibt es oft organisatorische Probleme, die der inhaltlichen Arbeit ablenken! Versionskontroll-Systeme bieten mit Verteiltem Zugriff Versionierung Datensicherheit Automatischem Zusammenführen Lö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. Material: ddi.ifi.lmu.de/fortbildungen # 39