Softwaretechnikpraktikum: Vorlesung 2

Slides:



Advertisements
Ähnliche Präsentationen
PHP Extension und Application Repository
Advertisements

Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims cims.
Einführung in Subversion (SVN)
Programmieren im Großen von Markus Schmidt und Benno Kröger.
PC-Senioren Ludwigsburg
On the Criteria to Be Used in Decomposing Systems into Modules
PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN) PBUGG 2009, A. Schmidt.
Datenbankzugriff im WWW (Kommerzielle Systeme)
MS Office-Paket: Access
Software(technik)praktikum Tutorial: Subversion (SVN)
Literaturverwaltung und Wissensorganisation
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Fachpraktikum Graphische Benutzungsoberflächen Sommersemester 2008 Steffen Koch, Christoph Müller, Guido Reina, Christiane Taras, Michael Wörner Versionsverwaltung.
IMS Universität Stuttgart 1 Einführung in XML Hannah Kermes HS: Elektronische Wörterbücher Do,
Sortierverfahren Richard Göbel.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Christian Schindelhauer
Word Über- arbeitungs-F. Blog Groove inhaltlich Mittelding äußerlich Mittelding SharePoint DokumentPostings wenige viele Check-Out/-In Varianten Distribute.
Projekt Web Engineering
Teamorganisation: Versionsverwaltung
1 WS 2012 Software-Engineering II Versionsverwaltung.
Concurrent Versions System
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Grundschutztools
Ordner- und Dateistrukturen in Windows 7 (Teil 1)
GIT und Redmine Übung.
Simulation komplexer technischer Anlagen
Software-Projektführung
Aichinger Christian, Strasser Jürgen
Citavi im Prozess der wissenschaftlichen Arbeit
Lutz Rabe | Koordinierungsstelle für IT-Standards (KoSIT)
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Zusammenfassung der Vorlesung
Materialien zum Informatikunterricht (Pohlig-Häberle)
Internet: Funktionsweise und Dienste
Autopoll 2000.
Westfälische Wilhelms-Universität Münster 15-JAN-2004 Heinz-Hermann Adam Benutzung von tragbaren Computern Unter Windows in.
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
Analyse von Ablaufdiagrammen
Publikation auf Knopfdruck Judith Riegelnig Michael Grüebler 19. Oktober 2010 / Statistiktage Neuenburg.
EP Media Group SiteKist CMS Version 6.9. ©2014 EP Media Group Internet:
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
NDK Enterprise Technologien Informationen Infrastruktur und Fallstudie Daniel Nydegger Studienleiter Enterprise System Entwicklung.
Subversion für Anfänger und solche, die es noch werden wollen ;)
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
Concurrent Versions System
Analyseprodukte numerischer Modelle
Wissen praktisch ablegen
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Kommandozeile und Batch-Dateien Molekulare Phylogenetik – Praktikum
Fred 2.0 Projektvorstellung Christoph Müller
Information Rights Management Nutzen und Grenzen Daniel Schnyder.
Marco Behnke Git free & open source, distributed version control system Git.
Meta-Modell für Story-Diagramme und Expressions
Fragebogen Studierende
Hamburger BV AK Informations- und Medientechnik AK Betriebswirtschaft, Management und Vertrieb Heinz Friedrich Web-Portal 1 Internes Web-Portal.
->Prinzip ->Systeme ->Peer – to – Peer
WebComposition & WCML Ein Vortrag von Michael Capper & Lars Völker.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Universität der Bundeswehr München 1 Seminar – DBMS für spezielle Anwendungen Seminar DBMS für spezielle Anwendungen Versionen und Varianten.
Wir schaffen Wissen – heute für morgen Paul Scherrer Institut SwissFEL: Alfresco Themen: Dokumente versionieren Werner Zoller (ATK) PSI,
, Jens Rettig1 Einsatz von Versionsverwaltungstools im ORACLE – Umfeld Dipl.-Inform. Jens Rettig
Das SVN Eclipse Plugin. Wofür ist SVN gedacht? Nutzung von SVN mit Eclipse Perspektive einrichten Repository einbinden Mit dem Repository arbeiten Konflikt.
Orxonox SVN Subversion in Orxonox: ORXONOX DevelopmentFinished Versions trunk Maintainer Version Almost always running branches Developer Version Copies.
?.
Versionsmanagement & Workflows
 Präsentation transkript:

Softwaretechnikpraktikum: Vorlesung 2 14. April 2008 Versionsmanagement Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Versionsmanagement Motivation Softwaretechnikpraktikum: Vorlesung 2 Versionsmanagement Motivation 14. April 2008 Ausgangslage Softwareentwicklung ist Teamarbeit Viel (indirekte) Kommunikation nötig Entwicklungswissen muss dokumentiert wissen Software besteht aus vielen Dokumenten Lastenheft Pflichtenheft Analyse- und Designdokument Programmcode Dokumentation Handbuch Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Versionsmanagement Motivation Softwaretechnikpraktikum: Vorlesung 2 Versionsmanagement Motivation 14. April 2008 Konsequenz Verschiedene Personen greifen (gleichzeitig) auf Dokumente Oft bearbeiten verschiedene Personen gleichzeitig (unabhängig voneinander) dasselbe Dokument Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Versionsmanagement Motivation Softwaretechnikpraktikum: Vorlesung 2 Versionsmanagement Motivation 14. April 2008 Typische Probleme / Fragen Versionsmanagement Wo ist die aktuelle Version? Was ist die zuletzt lauffähige Version? Wo ist Implementierungsversion vom 01. April 2012? Und welche Dokumente beziehen sich auf diese Version? Welche Version wurde dem Kunden „Schäfer“ präsentiert? Änderungsmanagement Was hat sich seit letzter Woche geändert? Wer hat diese Änderung gemacht? Warum wurde diese Änderung gemacht? Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Versionsmanagement Motivation Einfache Lösungen Austausch der Dokumente via USB-Stick / Festplatte Austausch der Dokumente via Mail Netzwerkfestplatte Konventionen und Regeln werden im Team definiert Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Versionsmanagement Motivation Softwaretechnikpraktikum: Vorlesung 2 Versionsmanagement Motivation 14. April 2008 Einfache „Lösungen“ erzeugen neue Problem Konventionen und Regeln werden nicht eingehalten Koordination ist aufwendig und führt zu Verzögerungen Varianten und Konfigurationen werden von Hand verwaltet Versions- und Änderungsfragen nicht bzw. nur schwer beantwortbar Geistige Kapazität wird mit „Kleinkram“ verschwendet Fazit: Konventionen müssen technisch erzwungen werden! Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Versionsmanagement Motivation Softwaretechnikpraktikum: Vorlesung 2 Versionsmanagement Motivation 14. April 2008 Sinnvolle Lösung Versions- und Konfigurationsmanagementsysteme Lösen (bei vernünftiger Anwendung) alle genannten Probleme (fast) ohne Zusatzaufwand Bieten sogar Zusatzleistungen (z.B. einfache Datensicherung) Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Versionsmanagement Konzepte Repository Dokumente in hierarchischer Struktur Koordination der Zugriffe und Modifikationen, insbes. Wahrung der Konsistenz Versions- verwaltungs- system Zugriff und Modifikation von Dokumenten Nutzer Nutzer Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Konsistenzmechanismen Softwaretechnikpraktikum: Vorlesung 2 Konsistenzmechanismen 14. April 2008 Optimistische Mechanismen System erlaubt gleichzeitiges Bearbeiten des Dokuments durch verschiedenen Personen System erkennt und integriert die Änderungen (Merging) Evtl. funktioniert das nicht automatisch; dann muss der Konflikt manuell beseitigt werden Pessimistische Mechanismen System verbietet gleichzeitiges Bearbeiten des Dokuments durch verschiedenen Personen (Sperrprotokolle) Beide Mechanismen haben Vor- und Nachteile (hierzu später mehr) Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Repository Versions- verwaltungs- system Lokale Kopien des Repositories (Arbeitsverzeichnis) Nutzer Nutzer Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Pessimistischer Ansatz Softwaretechnikpraktikum: Vorlesung 2 14. April 2008 Ablauf zur Bearbeitung einer Datei file.txt: checkout file.txt < Bearbeitung der Datei > checkin file.txt Zwischen checkout und checkin kann kein anderer Nutzer die Datei verändern. Genaue Syntax und Optionen der Kommandos hängen vom Versionsverwaltungssystem ab. Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Softwaretechnikpraktikum: Vorlesung 2 14. April 2008 update - Nutzer aktualisiert seine lokale Kopie des Repositories commit - Nutzer übergibt seine lokale Kopie an das Repository (Versionsnummer wird inkrementiert) Ändern der lokalen Kopie durch Nutzer jederzeit erlaubt (es gibt keine Sperren) update und commit sind (nahezu) jederzeit erlaubt Genaue Syntax und Optionen der Kommandos hängen vom Versionsverwaltungssystem ab. Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Mischen (Merge): Szenario 1 Softwaretechnikpraktikum: Vorlesung 2 14. April 2008 file.txt file.txt file.txt Änderungen im Repository (durch commit anderer Benutzer) Änderungen im Arbeitsverzeichnis Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Mischen (Merge): Szenario 1 Softwaretechnikpraktikum: Vorlesung 2 14. April 2008 file.txt file.txt update (+ ggf. merge) Merge: Änderungen aus dem Repository (seit der letzten Aktualisierung) und der Änderungen im lokalen Verzeichnis Änderungen im Repository Aktualisierte Version im Arbeitsverzeichnis 14 Software(technik)praktikum: Vorlesung 2 Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013 14

Optimistischer Ansatz Mischen (Merge): Szenario 1 Softwaretechnikpraktikum: Vorlesung 2 14. April 2008 Bei gängigen Systemen funktioniert das erstmal nur mit Text-Dateien (z.B. .java oder .tex) file.txt file.txt update Änderungen im Repository Aktualisierte Version im Arbeitsverzeichnis Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Mischen (Merge): Szenario 2 Softwaretechnikpraktikum: Vorlesung 2 14. April 2008 file.txt file.txt file.txt Änderungen im Repository Änderungen im Arbeitsverzeichnis Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Mischen (Merge): Szenario 2 Softwaretechnikpraktikum: Vorlesung 2 14. April 2008 Konflikt file.txt file.txt file.txt update Änderungen im Repository Änderungen im Arbeitsverzeichnis Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Konflikte Softwaretechnikpraktikum: Vorlesung 2 Optimistischer Ansatz Konflikte 14. April 2008 Konflikte werden in der Datei im Arbeitsverzeichnis markiert: <<<<<< Änderung 1 ------ Änderung 2 >>>>>> Konflikte müssen vom Benutzer in seiner Arbeitskopie von Hand korrigiert werden. Hinweis: Konflikte entstehen nur Arbeitsverzeichnis Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Mergen binärer Dateien Softwaretechnikpraktikum: Vorlesung 2 Optimistischer Ansatz Mergen binärer Dateien 14. April 2008 Für Textdateien existieren gute Merge-Algorithmen Java, Latex, ... somit gut vergleichbar und mergebar Für binäre Dateien müssen separate Merge-Algorithmen vorhanden sein Beispiel: MS Word-Dokument Word bietet jedoch intern Vergleichs- und Mergeoptionen Hinweis: In Versionsverwaltungssystemen kann man angeben, ob eine Datei binär ist Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Frage bzgl. Commit Softwaretechnikpraktikum: Vorlesung 2 Optimistischer Ansatz Frage bzgl. Commit 14. April 2008 Frage: Was passiert, wenn der Nutzer ein commit durchführt, und dabei Änderungen im Repository noch nicht in sein Arbeitsverzeichnis übernommen hat? Antwort: Wird durch Repository-Client verboten. Client fordert, dass erst update ausgeführt wird Commit erst danach möglich Commit nur möglich, wenn lokales Repository konfliktfrei ist Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Commit-Unterbindung v100 Versions- verwaltungs- system v100 v100 Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Commit-Unterbindung v100 Versions- verwaltungs- system v100* v100* v100 Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Commit-Unterbindung v101 > commit > commit up-to-date check failed Versions- verwaltungs- system v100* v101 Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Commit-Unterbindung v101 > commit > commit up-to-date check failed > update M file.txt Versions- verwaltungs- system v101* v100* v101 Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Optimistischer Ansatz Commit-Unterbindung v101 v102 > commit > commit up-to-date check failed > update M file.txt Versions- verwaltungs- system > commit v102 v101* v101 Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Unterstützung für Versions-management in Eclipse 26 Software(technik)praktikum: Vorlesung 2: Versionsmanagement Software(technik)praktikum: Vorlesung 2 11.03.2013

Vergleich: Pessimistisch vs Optimistisch Softwaretechnikpraktikum: Vorlesung 2 14. April 2008 Pessimistische Mechanismen ++ keine Konflikte -- kein gleichzeitiges Arbeiten an demselben Dokument (bei großen Dateien behindert es die Teamarbeit) -- Dateien können unabsichtlich lange gesperrt sein Optimistische Mechanismen -- Konflikte (oft vermeidbar bei sehr guter Absprache) ++ gleichzeitiges Arbeiten an Dokumenten möglich Für typische Softwareprojekte (große und verteilt arbeitende Teams) haben sich die optimistischen Mechanismen als zweckmäßiger erwiesen - Vergleich mit Ablauf tauschen? Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Versionierungsart Repository-Versionierung Je commit gibt es eine neue Repository-Nummer Head ist neueste Repository-Version <<changed>> <<added>> V4 Main.java Appl.java >>commit <<added>> >>commit V3 main.html <<added>> >>commit V2 index.html <<added>> Main.java >>commit V1 Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Versionierungsart Dateiversionierung Jede Datei hat ihre eigene Version Je Commit werden Versionsnummern der Dateien inkrementiert Konfiguration: Menge von Dateiversionen Konfiguration: Heute (head) Release V1.2 V1.2 V1.1 V2.0 V1.1 V1.1 V1 V1 V1 V1 Main.java Appl.java index.html main.html Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Weitere Features von Versionsmanagementsystemen Softwaretechnikpraktikum: Vorlesung 2 Weitere Features von Versionsmanagementsystemen 14. April 2008 Zugriff auf alte Versionen Alte Versionen sind jederzeit zugreifbar (wichtiger Unterschied zu simpler Netzwerkfestplatte) Versionsvergleich Differenz der Dateien markiert Änderungen Branching Alternative Entwicklungszweige ermöglichen das Versionieren von Varianten (z.B. Implementierung eines alternativen Benutzerinterfaces) Tagging Versionen markieren (z.B. Release 1.0) Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Weitere Features von Versionsmanagementsystemen Softwaretechnikpraktikum: Vorlesung 2 Weitere Features von Versionsmanagementsystemen 14. April 2008 Kommitkommentar Mit jedem commit kann (und sollte) man in einem kurzen Kommentar angeben, welche Änderungen vorgenommen wurden Mailbenachrichtung Bei Änderungen von Dateien können automatisch Nachrichten an andere Nutzer verschickt werden Blame-Analyse Man kann für jede Datei feststellen, welche Zeile von welchem Nutzer zuletzt bearbeitet wurde (blame) Verknüpfung mit Ticketmanagementsystem Tickets (z.B. Trac) für Bug-Reports und Features-Requests können sich auf Versionsnummern beziehen Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Inhalt für das Repository Softwaretechnikpraktikum: Vorlesung 2 Inhalt für das Repository 14. April 2008 Welche Dokumente und Dateien gehören ins Repository? Alle Dokumente und Dateien, die zur Software und ihrem Entwicklungsprozess gehören und nicht automatisch aus den anderen Dateien oder Dokumenten generiert werden können z.B. Keine temporären Latex-Dateien *.aux, *.bbl, ... …vermeiden, trotzdem Kopien anzulegen! (Kopie (1) von …, Kopie (2) von …, Kopie (3) von …) Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Softwaretechnikpraktikum: Vorlesung 2 Praktikum: SVN 14. April 2008 Im Praktikum nutzen wir optimistische Mechanismen Konkret: Subversion (SVN) Wird eingesetzt bei Apache, SourceForge, Google Code, ... Features: Commit-Kommentare Mailbenachrichtung bei jedem Checkin Blame-Analyse Verknüpfbar mit Ticketmanagementsystem (z.B. Trac) Viele SVN-Clients, u.a. Subclipse und Subversive für Eclipse TortoiseSVN Integriert sich in Windows-Explorer Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Softwaretechnikpraktikum: Vorlesung 2 Praktikum: SVN 14. April 2008 SVN unterstützt nur Repository-Versionierung SVN unterscheidet zwischen trunk (Stamm): Standardentwicklungspfad tags (Markierung): Meilensteine, Abgaben, Release, ... branch (Verzweigung): temporäre Pfade für Varianten Zeit http://commons.wikimedia.org/wiki/File:Subversion_project_visualization.svg Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013

Zusammenfassung Versionsmanagementsysteme erleichtern das gemeinsame Arbeiten an Dokumenten und Dateien Änderungen sind nachverfolgbar Alte Versionen sind zugreifbar Im Praktikum nutzen wir das optimistische Verfahren SVN Üben Sie das Arbeiten mit SVN Nutzen Sie unser Tutorial auf der Webseite. Nutzen Sie die Tutorials im Web Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11.03.2013