Integration von Versionsverwaltungssystemen in die kooperative Programmierumgebung XPairtise

Größe: px
Ab Seite anzeigen:

Download "Integration von Versionsverwaltungssystemen in die kooperative Programmierumgebung XPairtise"

Transkript

1 FernUniversität in Hagen Fakultät für Mathematik und Informatik Integration von Versionsverwaltungssystemen in die kooperative Programmierumgebung XPairtise als Bachelorarbeit vorgelegt von Timo Kanera Iltisweg Troisdorf (Matrikel-Nr ) angefertigt am Lehrgebiet Praktische Informatik VI - Kooperative Systeme - der FernUniversität in Hagen Betreut durch Dr. Till Schümmer Juli 2008

2

3 Zusammenfassung Mit XPairtise entstand an der FernUniversität in Hagen ein Plug-in für die Entwicklungsumgebung Eclipse, das es räumlich entfernten Entwicklern erlaubt, kooperative Softwareentwicklung nach dem Prinzip des Distributed Pair Programming durchzuführen. Eines der Kernprobleme, die es dabei zu lösen gilt, ist die Synchronisation der benötigten Projektdaten zwischen den beteiligten Entwicklern. Bisher mussten hierfür grundsätzlich komplette Projektinhalte auf den zentralen XPairtise-Server übertragen werden, was schnell einen Performance-Engpass darstellen konnte. Im Zuge dieser Arbeit wird die Konzeption und Implementierung einer Erweiterung beschrieben, die es XPairtise ermöglicht, die Dienste der weit verbreiteten Versionsverwaltungssysteme CVS und Subversion verwenden zu können, um das für die Synchronisation anfallende Datenaufkommen zwischen dem XPairtise-Server und den Teilnehmern einer Pair-Programming-Sitzung zu minimieren. Zusätzlich wurde die Fähigkeit hinzugefügt, in einer einzelnen Sitzung mehrere Projekte verwenden zu können. iii

4

5 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung Aufbau dieser Arbeit Grundlagen Pair Programming Distributed Pair Programming Eclipse Das Eclipse-Plug-in XPairtise Die XPairtise-Architektur Versionsverwaltungssysteme CVS Subversion Anforderungsanalyse Ein Beispielszenario Betrachtung des Beispielszenarios Anforderungskatalog Stand der Technik Status Quo - Synchronisation von Ressourcen in XPairtise Verwandte Anwendungen XecliP Saros NetBeans Developer Collaboration Zusammenfassung Lösungskonzept Erweiterung der bestehenden Architektur Integration von Versionsverwaltungssystemen Die Eclipse Team API Wahl des Integrationsansatzes Wahl des Subversion-Plug-ins Umsetzung der Anforderungen Details der Umsetzung Übersicht über die Implementierung Paket de.fuh.xpairtise.common.network v

6 Inhaltsverzeichnis Paket de.fuh.xpairtise.common.replication.elements Paket de.fuh.xpairtise.common.util Paket de.fuh.xpairtise.plugin.core Paket de.fuh.xpairtise.plugin.core.resources Paket de.fuh.xpairtise.plugin.core.resources.vc Paket de.fuh.xpairtise.plugin.core.resources.util Paket de.fuh.xpairtise.plugin.ui.xpviews.sessiongallery Paket de.fuh.xpairtise.plugin.ui.util Paket de.fuh.xpairtise.server Paket de.fuh.xpairtise.server.xml Subversion-Integration durch separates Plug-in Interaktion der Komponenten Fazit Zusammenfassung Ausblick Literaturverzeichnis 65 A CD-Beilage 67 B Eidesstattliche Erklärung 69 vi

7 Abbildungsverzeichnis Abbildungsverzeichnis 2.1 Die XPairtise-Perspektive Die XPairtise-Netzwerk-Architektur Revisionsverlauf eines SVN-Projektes Die XecliP-Perspektive Der XecliP-Playback-View Die Saros-Netzwerk-Architektur Saros in Aktion Die Oberfläche des NetBeans-Developer-Collaboration-Moduls Sperrung einzelner Regionen im NetBeans-Editor Verteilung der Änderungen auf die Paketstruktur von XPairtise Klassendiagramm der Verwaltung von Ressourcen auf dem Client Commit-Dialog mit automatisch erstellter Kommentarvorlage Klassendiagramm der Integration von Versionsverwaltungssystemen Anzeige nötiger Änderungen während der initialen Synchronisation Änderungen an der Sitzungsübersicht Der überarbeitete Projektauswahldialog Dekoration mehrerer Projekte im Package Explorer Erkennung, Analyse und Versand einer Änderung Empfang und Reproduktion einer Änderung vii

8

9 1 Einleitung Die Arbeit in räumlich verteilten Gruppen ist auch in der Softwareentwicklung heute zunehmend der Normalfall. Pair Programming eignet sich in seiner herkömmlichen Form nur sehr eingeschränkt für den Einsatz in solchen Gruppen, da sich die Entwicklerpaare zwingend am selben Ort aufhalten müssen. Abhilfe können hier Software-Lösungen zur Durchführung von Distributed Pair Programming schaffen, die es unter Verwendung moderner Kommunikationsvebindungen auch entfernten Teilnehmern erlauben, Pair Programming zu betreiben. An der FernUniversität in Hagen entstand mit XPairtise [XPa08] ein solches Werkzeug in Form eines Plug-ins für die Entwicklungsumgebung Eclipse. Eine der grundlegenden Aufgaben dieser Werkzeuge ist die Synchronisation der benötigten Arbeitsdaten zwischen den Teilnehmern. XPairtise beruht auf einem klassischen Client-Server-Modell. Benötigte Projektdaten mussten bisher grundsätzlich komplett auf den zentralen XPairtise-Server übertragen und bei Bedarf von dort zu den einzelnen Teilnehmern übertragen werden. Dieser einheitliche Ansatz erleichterte zwar die Konzeption und Implementierung, kann sich jedoch schnell als Flaschenhals herausstellen, wenn Projektgröße und Teilnehmerzahl steigen und nur begrenzte Bandbreite zur Verfügung steht. Software-Projekte, die von verteilten Gruppen entwickelt werden, stehen jedoch in aller Regel bereits unter Kontrolle eines Versionsverwaltungssystems und werden von allen Entwicklern aus einem zentralen Repository bezogen. Es bietet sich daher an, diese bestehende Repository-Anbindung auch in XPairtise zu verwenden, um das zwischen den Teilnehmern einer Pair-Programming-Sitzung und dem XPairtise- Server für die Synchronisation von Projektdaten anfallende Datenaufkommen so weit wie möglich zu minimieren. Diese Arbeit beschreibt die Konzeption und Implementierung einer solchen Erweiterung von XPairtise. Zusätzlich wurde die Fähigkeit implementiert, in einer einzelnen Sitzung mehrere Projekte verwenden zu können. 1.1 Aufbau dieser Arbeit Nach dieser Einleitung gliedert sich der weitere Verlauf dieser Ausarbeitung in sechs weitere Kapitel: 1

10 1. Einleitung Kapitel 2 gibt zunächst einen Überblick über einige der für diese Arbeit relevanten Themenkomplexe. Kapitel 3 beschäftigt sich mit der Herleitung und Analyse der Anforderungen, die der endgültigen Implementierung zugrunde liegen. Kapitel 4 beleuchtet den Stand der Technik anhand einiger verwandter Anwendungen. Ein Hauptaugenmerk liegt dabei auf den verschiedenen Realisierungen der Synchronisation der benötigten Arbeitsdaten. Kapitel 5 beschreibt das gewählte Lösungskonzept zur Umsetzung der in Kapitel 3 herausgearbeiteten Anforderungen. Kapitel 6 gibt einen Überblick über die endgültige Implementierung des in Kapitel 5 beschriebenen Lösungskonzeptes. Kapitel 7 fasst die Ergebnisse dieser Arbeit zusammen und gibt einen Ausblick auf mögliche zukünftige Erweiterungen. 2

11 2 Grundlagen In den folgenden Abschnitten werden zunächst die für diese Arbeit relevanten Themenkomplexe vorgestellt. 2.1 Pair Programming Pair Programming ist eine Entwicklungsmethode, die besonders in agilen Vorgehensmodellen der Softwareentwicklung Verwendung findet. Vor allem durch die Popularität des Extreme Programming fand es in den vergangenen Jahren zunehmend Beachtung. Pair Programming sieht die Zusammenarbeit in Paaren von jeweils zwei Entwicklern gemeinsam an einem Rechner vor, den sie im Wechsel bedienen. Einer der beiden Entwickler programmiert aktiv und erläutert dabei seine Gedankengänge und sein Vorgehen dem anderen Teilnehmer. Diese Rolle wird üblicherweise als Driver bezeichnet. Ihm zur Seite sitzt der Navigator, der das Vorgehen des Drivers verfolgt und seine Änderungen kontrolliert, ihn auf erkannte Fehler hinweist und konstruktive Vorschläge macht. Die Wahrscheinlichkeit, Probleme im aktuell bearbeiteten Programmausschnitt möglichst früh zu erkennen und zu beheben, wird durch diese fortwährende Begutachtung stark erhöht. Darüber hinaus besitzt der Navigator eine globalere Sichtweise auf die Problematik als der Driver, dessen Hauptaugenmerk ja auf dem aktuellen Programmausschnitt liegt. Der Navigator kann daher auch eher weitreichendere Gedanken zu gewählten Problemlösungsstrategien direkt in die Sitzung einfließen lassen. Gestützt auf Befragungen und kontrollierte Experimente (vgl. [Wil00]) nennen Cockburn und Williams [CW01] vielfältige positive Effekte, die durch Pair Programming erzielt werden können: Wirtschaftlichkeit: Trotz der doppelten personellen Besetzung ergeben sich im Schnitt lediglich um 15% gestiegene Entwicklungskosten durch die Umstellung auf Pair Programming. Dem gegenüber stehen stark sinkende Kosten für Fehlerbereinigung und Tests, da Pair Programming meist zu robusterem Code führt. Zufriedenheit: Arbeiten in Paaren wird unter befragten Entwicklern fast durchgehend als angenehmer und erfüllender empfunden als die Einzelarbeit. 3

12 2. Grundlagen Entwurfsqualität: Der kontinuierliche Gedanken- und Ideenaustausch der Teilnehmer (Pair-Think) führt zu qualitativ ausgereifteren Entwürfen und zu kompakterem, hochwertigerem Code. Kontinuierliche Prüfung: Durch die Arbeit in Paaren unterliegen Entwurf und Umsetzung ständiger Kontrolle (Pair-Reviews). Probleme können daher meist sehr früh erkannt und behoben werden. Problemlösung: Durch wechselseitigen, aufeinander aufbauenden Ideenaustausch (Pair-Relaying) werden schneller Lösungen für komplexe Probleme gefunden. Lernen: Die Gruppenmitglieder lernen fortwährend voneinander (Pair-Learning). Dies bezieht sich sowohl auf generelles Fachwissen als auch auf Kenntnisse über das aktuelle Projekt. Regelmäßiger Wechsel der Paarkonstellationen ermöglicht somit eine Verbreitung der nötigen Kenntnisse innerhalb des Teams auf natürliche Weise. Gruppenbildung und Kommunikation: Die Arbeit in wechselnden Paaren verbessert die Fähigkeit der Teammitglieder, miteinander zu diskutieren und zu arbeiten. Informationsfluss und Teamdynamik werden gestärkt. Mitarbeiter- und Projektleitung: Durch wechselnde Paare erhalten alle Teilnehmer Kenntnisse über alle Teile der Codebasis. Ein kurzfristiger personeller Ausfall ist dadurch durch die Teamleitung wesentlich einfacher zu kompensieren Distributed Pair Programming Mit der ständig steigenden Verfügbarkeit und Verbreitung von breitbandigen Kommunikationsverbindungen wird die Möglichkeit der Arbeit in räumlich verteilten Gruppen zunehmend attraktiver. Dies betrifft auch die Softwareentwicklung. Zahlreiche große Software-Projekte werden seit langem erfolgreich von weltweit verteilten Teams entwickelt. Eines der besten Beispiele stellt die Open-Source- Bewegung dar. Pair Programming eignet sich in seiner ursprünglichen Form offensichtlich kaum für den Einsatz in solchen verteilten Teams, da die Paare sich während der Arbeit zwingend am selben Ort befinden müssen. Diese Einschränkung nennt auch Maurer [Mau02] als einen großen Nachteil des Extreme Programming in seiner Originalform. Als zweites Problem sieht er wegen der fast vollständigen Ersetzung klassischer Projektdokumentation durch direkte Kommunikation eine mangelnde Skalierbarkeit des Verfahrens für die Verwendung in großen Entwicklerteams. Das Konzept des Distributed Pair Programming (DPP) stellt die Bemühung dar, diesen Einschränkungen entgegenzuwirken. Ziel ist es, auch räumlich verteilten 4

13 2.1 Pair Programming Entwicklern unter Verwendung moderner Kommunikationsverbindungen die Möglichkeit zu geben, Pair Programming zu betreiben. Stotts et al. [SWN03] fassen die wichtigsten Vorteile von Distributed Pair Programming zusammen: Distributed Pair Programming bietet eine stark erhöhte Orts- und Zeitflexibilität. Es ist kein Ortswechsel der Teilnehmer nötig, Sitzungen können ohne lange Planung und Anreise sehr spontan durchgeführt werden. Die ständig wachsende Verbreitung mobiler Informations- und Kommunikationssysteme ermöglicht außerdem Sitzungen mit mobilen Teilnehmern. Die Tatsache, dass alle Teilnehmer über einen eigenen Bildschirm verfügen, führt zu einer stark verbesserten Übersichtlichkeit. Der Navigator kann seinen Rechner während der laufenden Sitzung für weitere unterstützende Tätigkeiten, z.b. die Informationssuche im Internet verwenden. Die Teilnehmer sind gezwungen, digitale Versionen von Ideen und Entwürfen zu erstellen, die sie in einer herkömmlichen Pair-Programming-Sitzung auf Papier oder einem Whiteboard erstellen würden. Auf diese Weise entstandene Inhalte können später für Dokumentationszwecke innerhalb des Teams genutzt werden. Die Teilnehmer neigen weniger zu Abschweifungen in private Konversationen und bleiben durchgehend auf die Aufgabe fokussiert, da jegliche Kommunikation über den Computer abläuft. Für die Durchführung von Distributed Pair Programming werden Software-Werkzeuge benötigt, die es den Teilnehmern ermöglicht, direkt miteinander zu kommunizieren und gemeinsam an einer Datenbasis zu arbeiten. Hierfür bietet sich einerseits eine Kombination bestehender Entwicklungs- und Kommunikationswerkzeuge mit Remote-Desktop-Systemen wie VNC [RSFWH98] an, die eine Fernsteuerung des lokalen Rechners durch einen oder mehrere entfernte Teilnehmer erlauben. Dieses Modell zeichnet sich vor allem durch seine hohe Flexibilität aus, da die Teilnehmer völlig frei in der Wahl der in einer Sitzung verwendeten Programme sind. Da jegliche Aktionen direkt auf dem Host ausgeführt werden, entfällt außerdem das Problem des Abgleichs der benötigten Arbeitsdaten zwischen den Teilnehmern. Dem gegenüber steht meist ein hohes Datenaufkommen durch die ständige Übertragung des gesamten Bildschirminhaltes des Hosts zu den Teilnehmern, was die problemlose Verwendbarkeit über Kommunikationsverbindungen mit geringer Bandbreite stark einschränken kann. Stotts et al. [SWN03] evaluierten diesen Ansatz im Zuge zweier Feldversuche und kommen zu durchaus positiven Ergebnissen. Sie berichten jedoch auch von zahlreichen kleineren Problemen mit einigen der verwendeten Werkzeuge. Hinzu 5

14 2. Grundlagen kommen erhöhte Komplexität und Lernaufwand durch die Vielzahl der benötigten Programme. Die Alternative bilden speziell für die Durchführung von Distributed Pair Programming ausgelegte Werkzeuge, die die für eine möglichst komplette Abbildung des herkömmlichen Pair-Programming-Szenarios auf eine verteilte Umgebung wünschenswerten Funktionen direkt unterstützen. Hierzu gehören neben dem Abgleich der benötigten Arbeitsdaten und Editor-Inhalten zwischen den Teilnehmern üblicherweise auch integrierte Kommunikationsmöglichkeiten sowie die Bereitstellung eines entsprechenden Rollen- und Sitzungsmodells. Die Auswahl an entsprechenden Werkzeugen ist jedoch heute noch gering. Mit XPairtise (vgl. Abschnitt 2.3) entstand ein weiteres, das die Grundlage für diese Arbeit darstellt. 2.2 Eclipse Eclipse [ECL08] ist ein Open-Source-Projekt zur Entwicklung einer erweiterbaren Plattform und eines Frameworks zur Entwicklung von Software jeglicher Art. Eclipse geht ursprünglich aus der Entwicklungssoftware IBM Visual Age for Java hervor, deren Quellcode im November 2001 freigegeben wurde. Geleitet wird das Projekt heute durch die Eclipse Foundation, eine rechtlich eigenständige gemeinnützige Genossenschaft, die 2004 durch das durch IBM geführte Eclipse- Konsortium gegründet wurde. Beginnend mit der Version 3.0 erfuhr die Eclipse-Architektur einige grundlegende Änderungen. Ursprünglich als vollständige erweiterbare Entwicklungsumgebung konzipiert, stellt Eclipse seither nur noch den schlanken Kern der Plattform dar. Jegliche Funktionalität wird durch einzelne Plug-ins bereitgestellt, die durch diesen Kern hinzugeladen werden. Diese Architektur wird als Eclipse Rich Client Platform (RCP) bezeichnet. Sie basiert auf Equinox, einer ebenfalls durch das Eclipse- Projekt erstellten Implementierung der OSGi-Spezifikation [OSG08]. Dank der Rich Client Platform eignet sich Eclipse als Grundlage für den Aufbau verschiedenster Werkzeuge. Auch wenn Eclipse und alle verfügbaren Plug-ins komplett in Java entwickelt wurden, müssen sich auf Eclipse basierende Projekte jedoch nicht auf Java beschränken. So existieren beispielsweise entsprechende Plug-ins, um Eclipse als Entwicklungsumgebung für C/C++ zu nutzen. Die bekannteste Verwendung von Eclipse ist jedoch nach wie vor die Nutzung als Entwicklungsumgebung für Java. Zu diesem Zweck wird in Form des Eclipse SDK (Software Development Kit) eine Kombination der Eclipse-Kernplattform mit Werkzeugen für die Java-Entwicklung und die Entwicklung eigener Eclipse-Plug-ins angeboten. 6

15 2.3 Das Eclipse-Plug-in XPairtise Die grafische Oberfläche der Eclipse-Komponenten basiert auf dem GUI-Framework SWT (Standard Widget Toolkit), welches ebenfalls im Rahmen des Eclipse-Projektes entwickelt wird. SWT bedient sich zur Darstellung seiner Elemente der nativen GUI- Komponenten des jeweiligen Betriebssystems, vergleichbar mit dem SUN AWT. Dies ermöglicht ein natives Erscheinungsbild der Applikationen auf verschiedenen Plattformen und potentielle Geschwindigkeitsvorteile, auf Kosten einer maximalen Plattformunabhängigkeit. Zum Zeitpunkt der Erstellung dieser Arbeit existierten SWT-Implementierungen für Windows, UNIX (GTK 2 und Motif), Mac OS X, sowie QNX. Die Eclipse-Oberfläche setzt sich aus drei Grundelementen zusammen: Editoren: Editoren sind Fenster zur Anzeige und Bearbeitung von Inhalten. Der übliche Fall sind Text-Editoren zur Bearbeitung von Quelltext in unterschiedlichen Programmiersprachen, wobei es für die verschiedenen unterstützten Sprachen meist eigene Editor-Varianten gibt. Darüber hinaus existieren jedoch auch speziellere Editoren, beispielsweise zur visuellen Erstellung von grafischen Benutzeroberflächen. Sichten: Bei Sichten (Views) handelt es sich um Fenster zur geordneten oder gruppierten Anzeige von Informationen und zur Navigation in diesen Informationen. Bekannte Beispiele sind der Package Explorer zur Anzeige von Dateisystem-Elementen in einer baumartigen Struktur oder Sichten zur Anzeige von Detailinformationen zu Elementen, die momentan in Editoren geöffnet sind. Einzelne Sichten lassen sich sehr flexibel innerhalb der Eclipse-Oberfläche platzieren. Perspektiven: Perspektiven definieren Zusammenstellungen und Anordnungen von Sichten und Editoren innerhalb der Eclipse-Oberfläche. Plug-ins definieren üblicherweise eigene Perspektiven, die nur die für sie relevanten Sichten enthalten. Diese vorkonfigurierten Perspektiven können dann durch den Benutzer flexibel an die eigenen Bedürfnisse angepasst werden. 2.3 Das Eclipse-Plug-in XPairtise XPairtise [XPa08] ist ein Eclipse-Plug-in, welches Distributed Pair Programming auf Eclipse-Basis ermöglicht. Entwickelt wurde es im Wintersemester 2006/2007 im Zuge des Fachpraktikums CSCW (Computer Supported Cooperative Work) im Lehrgebiet Kooperative Systeme der FernUniversität in Hagen. Zu den gebotenen Fähigkeiten zählen die Unterstützung von Benutzerrollen und Benutzergruppen, schneller Rollenwechsel zwischen Driver und Navigator, eine übersichtliche Verwaltung von Programmiersitzungen, ein verteilter Editor, der weitgehend unabhängig von der verwendeten Programmiersprache arbeitet, die automatische Synchronisation der benötigten Projektressourcen zwischen den Teilnehmern, eine Chat-Funktion 7

16 2. Grundlagen zur direkten Kommunikation zwischen den Teilnehmern sowie ein verteiltes Whiteboard zur gemeinsamen Anfertigung von Entwürfen und Skizzen. Abbildung 2.1 zeigt die Oberfläche der Eclipse IDE mit den verschiedenen von XPairtise beigesteuerten Sichten. Zu sehen sind der Editor (grün umrahmt), das verteilte Whiteboard (rot umrahmt), die Sitzungsübersicht (blau umrahmt), die Benutzerübersicht (gelb umrahmt), die Chat-Ansicht (lila umrahmt) sowie Kontrollflächen und Anzeigen für Verbindungsstatus und Rollenzuweisung (orange umrahmt). Abbildung 2.1: Die XPairtise-Perspektive Die XPairtise-Architektur XPairtise basiert auf einer klassischen Client-Server-Architektur. Jegliche Kommunikation zwischen Teilnehmern erfolgt über den zentralen XPairtise-Server. Als grundlegender Transportmechanismus wurde der Java Message Service (JMS) [JMS08], eine von SUN Microsystems entwickelte nachrichtenbasierte Middleware, gewählt. JMS deckt viele der von XPairtise benötigten Modelle des Nachrichtenaustausches (beispielsweise asynchrone 1:n Verteilung von Nachrichten) bereits ab. Da es sich bei JMS lediglich um eine Spezifikation handelt, musste eine konkrete 8

17 2.3 Das Eclipse-Plug-in XPairtise Implementierung gewählt werden. Die Wahl fiel auf das von der Apache Foundation entwickelte Open-Source-Projekt ActiveMQ (AMQ) [AMQ08]. Die zentrale Komponente von JMS stellt der Nachrichten-Vermittler (Message Broker) dar, der für die Verteilung der Nachrichten zwischen den einzelnen JMS- Clients zuständig ist. Der XPairtise-Server fungiert in diesem Modell lediglich als weiterer JMS-Client, der über den Broker Nachrichten von Clients empfängt (siehe Abbildung 2.2). publish XPairtise Client (Plug in) queue XPairtise Server publish queue queue AMQ Broker publish queue queue XPairtise Client (Plug in) publish queue XPairtise Client (Plug in) Abbildung 2.2: Die XPairtise-Netzwerk-Architektur Das grundlegende Applikationsmodell von XPairtise stellen replizierte Objekte dar. Jegliche Inhalte, die zwischen den Teilnehmern ausgetauscht werden, werden auf entsprechende replizierte Objekte (auch als replizierte Elemente bezeichnet) abgebildet. Entsprechende Objekttypen repräsentieren beispielsweise Benutzerinformationen, Chat-Nachrichten, oder Editor-Kommandos. Diese replizierten Objekte werden auf dem Server in Listen (replicated lists) organisiert und in serialisierter Form mit Hilfe von JMS-Objektnachrichten zu den Clients transportiert. JMS definiert zwei unterschiedliche Modelle des Nachrichtenversands, die beide von XPairtise genutzt werden: Nachrichtenwarteschlangen (message queues) erlauben den gezielten Versand von Nachrichten an einen festen Empfänger, der auf Nachrichten aus der Warteschlange wartet (n:1-versand). 9

18 2. Grundlagen Das Anmelde-Versendesystem (publish-subscribe) erlaubt den Versand von Nachrichten zu einem bestimmten Thema (message topic) an eine Gruppe von Empfängern, die dieses Thema abonniert haben (n:m-versand). Nach dem Start meldet der XPairtise-Server zunächst eine Warteschlange am Broker an, die für eingehende Nachrichten der Clients genutzt wird. In die Gegenrichtung kann der Server eingehende Nachrichten entweder direkt beantworten oder separate Nachrichten an einzelne Clients schicken. Für diesen Zweck wird eine weitere Warteschlange für jeden Client angelegt, die zum Beispiel für die initiale Übertragung des bisherigen Inhaltes der replizierten Listen nach dem Verbindungsaufbau genutzt wird. Zur Identifizierung der Teilnehmer durch den Server wird jedem Client bei der Anmeldung ein eindeutiger Identifikator (session token) zugeteilt, der dann zur Markierung von Nachrichten an den Server genutzt wird. Neben den gezielten Warteschlangen werden durch den Server im Laufe einer Sitzung außerdem mehrere Topics für den Gruppenversand der Updates der verschiedenen replizierten Listen angelegt. In der aktuellen Implementierung schickt nur der Server selbst Nachrichten an diese Topics. Von Clients stammende Nachrichten nehmen grundsätzlich erst den Weg über den Server, der die anfallenden Aktualisierungen in den replizierten Listen vornimmt und repliziert. 2.4 Versionsverwaltungssysteme Versionsverwaltungssysteme (auch Versionskontrollsysteme) stellen eines der wichtigsten Werkzeuge in der Entwicklung komplexer Software dar. Sie dienen zur zentralen Verwaltung des Datenbestandes eines Projektes und kontrollieren den gemeinsamen Zugriff der Entwickler darauf. Alle Änderungen, die im Laufe des Entwicklungszyklus am Quelltext des Projektes anfallen, werden erfasst und als neuer Versionsstand in das Archiv (Repository) aufgenommen. Zusammengefasst ergeben diese Versionsstände eine Historie über den gesamten Änderungsverlauf des Projektes. Entwickler können den Änderungsverlauf einzelner Dateien nachvollziehen, gezielt auf ältere Zwischenstände zurückgreifen und bei Bedarf fehlerhafte Änderungen zurücknehmen. Die Vielzahl der heute verfügbaren Versionsverwaltungssysteme unterscheidet sich in ihrem Funktionsumfang und in den Details der Umsetzung der angebotenen Funktionen teils recht stark. Die grundlegenden Arbeitsschritte im Umgang mit den Systemen sind jedoch immer weitgehend die selben (vgl. auch [Bae05]): 10

19 2.4 Versionsverwaltungssysteme Import: Um ein Projekt unter die Kontrolle eines Versionsverwaltungssystems zu stellen, muss es zunächst durch einen Import dem Repository hinzugefügt werden. Checkout: Als Checkout wird der Bezug einer lokalen Arbeitskopie des verwendeten Projektes aus dem Repository bezeichnet. Dies ist der grundlegende Schritt, um mit einem unter Versionskontrolle stehenden Projekt zu arbeiten. Im Normalfall wird hierdurch die aktuellste Version der Projektdaten bezogen, durch Angabe eines entsprechenden Identifikators (Revisionsnummer oder Datum) können jedoch meist auch gezielt ältere Entwicklungsstände bezogen werden. Commit: An der lokalen Arbeitskopie des Projektes vorgenommene Änderungen können mittels eines Commits (auch Checkin) an das Versionsverwaltungssystem übergeben werden. Üblicherweise wird hierbei auch die Angabe eines die Änderungen beschreibenden Kommentars angeboten, der später zusammen mit Zeitstempel und Benutzerkennung in der Historie des Änderungsverlaufs mit angezeigt wird. Add/Remove: Neue Dateien, die dem Versionsverwaltungssystem bisher nicht bekannt sind, können mittels Add nachträglich dem Repository hinzugefügt werden. Entsprechend lassen sich mittels Remove Dateien aus dem Repository entfernen (ohne jedoch ihre bisherige Historie zu verlieren). Update: Ist die lokale Projektkopie auf einem älteren Stand als die Projektdaten im Repository, so lässt sie sich mit Hilfe eines Updates auf den aktuellen Stand bringen. Neben diesen grundlegenden Schritten sind zwei weitere Eigenschaften zu nennen, die von nahezu allen aktuellen Versionsverwaltungssystemen unterstützt werden: Branches: Branches (Zweige) erlauben die Pflege verschiedener Entwicklungszweige eines einzelnen Projektes. Nach Erstellung eines neuen Zweiges lassen sich Änderungen gezielt in diesen Zweig übernehmen, ohne den Hauptzweig (Trunk) zu beeinflussen. Komplette Zweige lassen sich später wieder zusammenführen oder einzelne Änderungen eines Zweiges selektiv in einen anderen übernehmen (Merge). Tags: Tags erlauben die Markierung eines projektweiten Zwischenstandes, beispielsweise um eine fertige Version zu definieren. Hierfür wird dieser Stand mit einem symbolischen Namen versehen, über den später jederzeit darauf zurückgegriffen werden kann. Arbeiten mehrere Entwickler an einem Projekt, so ist es Aufgabe des Versionsverwaltungssystems, den gemeinsamen Zugriff aller Benutzer auf die gemeinsame Datenbasis zu koordinieren. Ziel ist hierbei einerseits, allen Teilnehmern zu ermöglichen, möglichst ohne Einschränkungen an beliebigen Teilen des Quelltextes 11

20 2. Grundlagen arbeiten zu können, andererseits jedoch Konflikte zu vermeiden, die bei gemeinsamer Bearbeitung sich überschneidender Bereiche durch mehrere Benutzer entstehen können. Solche Konflikte lassen sich am einfachsten durch eine pessimistische Nebenläufigkeitskontrolle vermeiden, die die Bearbeitung einer Datei zu jedem Zeitpunkt jeweils nur durch einen Benutzer erlaubt. Dieses Modell liegt einigen älteren Versionsverwaltungssystemen zugrunde, ist allerdings sehr restriktiv und widerspricht dem Ziel der möglichst uneingeschränkten Nutzung. Moderne Versionsverwaltungssysteme erlauben daher meist die gleichzeitige Bearbeitung einer Datei durch mehrere Benutzer und lösen entstehende Konflikte, so weit möglich, zum Commit- Zeitpunkt selbst auf oder fordern eine manuelle Auflösung der Konflikte durch den Entwickler. Zu den heute am häufigsten verwendeten und auch im Eclipse-Umfeld am besten unterstützten Versionsverwaltungssystemen gehören CVS und das daran angelehnte jüngere Subversion. Auf diesen beiden Systemen lag daher auch das Hauptaugenmerk der in dieser Arbeit vorgestellten Implementierung. Im Folgenden werden diese beiden Systeme kurz näher vorgestellt CVS Eines der bekanntesten Versionsverwaltungssysteme ist das Concurrent Versions System (CVS) [CVS08]. Es entstand ursprünglich im Jahr 1986 in Form einiger UNIX-Skripte als Front End für das Versionsverwaltungssystem RCS. Ziel war es, RCS um die Möglichkeit der Verwaltung mehrerer Dateien gleichzeitig und die Verwendbarkeit durch mehrere Benutzer gleichzeitig zu erweitern wurde diese Skriptsammlung dann mit erweiterter Funktionalität in die Programmiersprache C portiert und wird bis heute gepflegt. Zur Datenhaltung wird weiterhin das von RCS verwendete Format genutzt. CVS verwendet eine Client-Server-Architektur mit einem zentralen Repository. CVS-Client-Programme sind heute für alle gängigen Betriebssysteme verfügbar. So existieren neben dem ursprünglichen Kommandozeilen-Programm inzwischen vielfältige grafische Oberflächen sowie eingebettete CVS-Unterstützung in verschiedenen Entwicklungsumgebungen. Auch die Eclipse IDE verfügt standardmäßig bereits über ein CVS-Plug-in. Alle im letzten Abschnitt beschriebenen grundlegenden Arbeitsschritte werden von CVS unterstützt. Insbesondere war es das erste Versionsverwaltungssystem, welches das Branch-Konzept implementierte. Leider werden Commits durch CVS nicht als atomare Transaktionen gehandhabt. Dies kann zu inkonsistenten Zuständen 12

Subversion. von Stefan Arndt, Christian Autermann und Dustin Demuth. 5. November 2009

Subversion. von Stefan Arndt, Christian Autermann und Dustin Demuth. 5. November 2009 Subversion von Stefan Arndt, Christian Autermann und Dustin Demuth 5. November 2009 Inhaltsverzeichnis 1 Versionierung 1 1.1 Zweck von Versionierung................................. 1 1.2 Geschichtliches......................................

Mehr

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de

CVS-Einführung. Sebastian Mancke, mancke@mancke-software.de CVS-Einführung Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation und Anforderung Sobald ein Softwaresystem anwächst, ergeben sich Probleme im Umgang mit dem Quell Code. CVS (Concurrent

Mehr

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

Subversion als Werkzeug in der Software-Entwicklung Eine Einführung. Tobias G. Pfeiffer Freie Universität Berlin Subversion als Werkzeug in der Software-Entwicklung Eine Einführung Tobias G. Pfeiffer Freie Universität Berlin Seminar DG-Verfahren, 9. Juni 2009 Voraussetzungen/Ziele des Vortrags Situation Der Zuhörer

Mehr

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

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN) Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN) Prof. Dr. Rolf Dornberger Software-Engineering: 7.3 Versionsmanagement-Systeme

Mehr

Versionsverwaltung mit git. Christoph Knabe FB VI 17.04.2014

Versionsverwaltung mit git. Christoph Knabe FB VI 17.04.2014 Versionsverwaltung mit git Christoph Knabe FB VI 17.04.2014 Inhalt Probleme bei Software-Entwicklung Begriffe in git Geschichte von git Installation Was ist verteilt an git? Mischen verteilter Änderungen

Mehr

31.01.2013. Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle

31.01.2013. Vorlesung Programmieren. Versionskontrollsysteme. Ziele von VCS. Versionskontrolle Vorlesung Programmieren Versionskontrolle Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer Versionskontrollsysteme Wie organisiert man die

Mehr

Software Engineering I

Software Engineering I Software I Übungsblatt 1 + 2 Claas Pinkernell Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Welche Werkzeuge? Programmiersprache Java Integrierte Entwicklungsumgebung Eclipse

Mehr

Klicken Sie, um das Format des Titeltextes zu bearbeiten

Klicken Sie, um das Format des Titeltextes zu bearbeiten Klicken Sie, um das Format des Titeltextes zu bearbeiten Versionsverwaltung mit SVN Eike Slogsnat 18.01.2013 1 Gliederung Wichtige Linux-Befehle Aufgaben einer Versionsverwaltung Struktur Befehle Verzweigungen

Mehr

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

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

git & git-flow Jens Sandmann 14.12.2013 Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 git & git-flow Jens Sandmann Warpzone Münster e.v. 14.12.2013 Jens Sandmann (WZ) git & git-flow 14.12.2013 1 / 31 Überblick 1 git Versionskontrolle Allgemein VCS mit git 2 git flow 3 git nutzen 4 Anhang

Mehr

Kurzanleitung zu. von Daniel Jettka 18.11.2008

Kurzanleitung zu. von Daniel Jettka 18.11.2008 Kurzanleitung zu Tigris.org Open Source Software Engineering Tools von Daniel Jettka 18.11.2008 Inhaltsverzeichnis 1.Einführung...1 2.Das Projektarchivs...3 2.1.Anlegen des Projektarchivs...3 2.2.Organisation

Mehr

Praktikum Ingenieurinformatik (PI)

Praktikum Ingenieurinformatik (PI) Praktikum Ingenieurinformatik (PI) Verteilte Versionskontrolle mit Git und Github Björn Meyer Fachgebiet Technische Informatik 1 Agenda Einleitung Motivation Versionskontrolle Ansätze Git Funktionen Arbeiten

Mehr

eclipse - Entwicklungsumgebung und mehr ETIS SS05

eclipse - Entwicklungsumgebung und mehr ETIS SS05 eclipse - Entwicklungsumgebung und mehr ETIS SS05 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung

Mehr

Kapitel 2. Software Configuration Management mit CVS und SVN

Kapitel 2. Software Configuration Management mit CVS und SVN Vorlesung Softwaretechnologie Wintersemester 2008 R O O T S Kapitel 2. Software Configuration Management mit CVS und SVN Motivation und Grundbegriffe Arbeiten mit SVN und CVS Vergleich von SVN und CVS

Mehr

Subversion. Einstieg in die. Versionskontrolle

Subversion. Einstieg in die. Versionskontrolle Versionskontrolle mit Subversion Einstieg in die Versionskontrolle Dipl.Ing.(FH) K. H. Marbaise Agenda Wozu Versionskontrolle? Was leistet Versionskontrolle? Historie zu Subversion Projekt Handling Installation

Mehr

Das Interceptor Muster

Das Interceptor Muster Das Interceptor Muster Implementierung des Interceptor Musters basierend auf OSGi and Friends Benjamin Friedrich Hochschule für Technik und Wirtschaft des Saarlandes Praktische Informatik - Entwurfsmuster

Mehr

Versionskontrolle mit Subversion

Versionskontrolle mit Subversion mit im Rahmen der Projektarbeit "Moderne Methoden der Parallelverarbeitung" Michael Süß Universität Kassel http://www.se.e-technik.uni-kassel.de/se/index.php?id=494 Michael Süß, November 23, 2004 mit -

Mehr

Versionsverwaltung von Softwareartefakten. Dr. Thorsten Arendt Marburg, 06. November 2014

Versionsverwaltung von Softwareartefakten. Dr. Thorsten Arendt Marburg, 06. November 2014 Versionsverwaltung von Softwareartefakten Dr. Thorsten Arendt Marburg, 06. November 2014 Überblick Warum ist die Versionsverwaltung von Softwareartefakten wichtig? Wie verwaltet man Softwareartefakte?

Mehr

SVN-Tutorial für WEBMM7

SVN-Tutorial für WEBMM7 SVN-Tutorial für WEBMM7 SVN-Tutorial für WEBMM7... 1 Einleitung... 2 Grundprinzip von CVS... 2 Was ist Subversion?... 2 Unterschiede Subversion/CVS... 2 SmartSVN... 3 Installation / Einrichtung... 3 Update...10

Mehr

Subversion und Trac. Michael Trunner. 23. Januar 2008. Fachschaft Informatik und Softwaretechnik Universität Stuttgart

Subversion und Trac. Michael Trunner. 23. Januar 2008. Fachschaft Informatik und Softwaretechnik Universität Stuttgart Subversion und Trac Michael Trunner Fachschaft Informatik und Softwaretechnik Universität Stuttgart 23. Januar 2008 Michael Trunner SVN & Trac (1/ 30) 1 Vorwort 2 Subversion alias SVN 3 Trac Michael Trunner

Mehr

Effizientes Änderungsmanagement in Outsourcing- Projekten

Effizientes Änderungsmanagement in Outsourcing- Projekten Effizientes Änderungsmanagement in Outsourcing- Projekten Dr. Henning Sternkicker Rational Software IBM Deutschland GmbH Sittarder Straße 31 52078 Aachen henning.sternkicker@de.ibm.com Abstract: Es werden

Mehr

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git

Einführung in Verteilte Versionskontrollsysteme. am Beispiel von Git Einführung in Verteilte Versionskontrollsysteme am Beispiel von Git Diplominformatiker (BA), Git Benutzer seit 2009 Daniel Böhmer Leibniz Institut für Troposphärenforschung 8. März 2012 Verteilte Versionskontrollsysteme/Git

Mehr

Seminar. Bachelor Wirtschaftsinformatik

Seminar. Bachelor Wirtschaftsinformatik Seminar Bachelor Wirtschaftsinformatik Generalthema: Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen Versionierung von Java-Anwendungen mit Git Christian Ondreka Versionsverwaltung mit

Mehr

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03.

Software-Engineering 2. Software-Engineering 2. Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03. Software-Engineering 2 Entwicklungsumgebungen (IDE) IT works. Klaus Mairon www.mairon-online.de 22.03.2009 1 Entwicklungsumgebungen, CASE-Tools, CASE-Werkzeuge unterstützen den Software-Entwicklungsprozess

Mehr

Versionsmanagement mit Subversion

Versionsmanagement mit Subversion Versionsmanagement mit Subversion Einführung + Demo Lehrstuhl Softwaretechnik Softwarepraktikum 2005 Nicolas Gümbel Motivation Mitglieder einer Software Entwicklungsgruppe müssen: gemeinsamen Zugriff auf

Mehr

Zentrale und Dezentrale Versionsverwaltung in Open Source Projekten Konzeptvorstellung Masterarbeit

Zentrale und Dezentrale Versionsverwaltung in Open Source Projekten Konzeptvorstellung Masterarbeit Zentrale und Dezentrale Versionsverwaltung in Open Source Projekten Konzeptvorstellung Masterarbeit Jana von dem Berge Institut für Informatik FU Berlin 05.12.08 Zentrale und Dezentrale Versionsverwaltung

Mehr

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

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann SVN-Einführung für das SEP DS und CM Julian Timpner, Stefan Brenner, Stephan Rottmann 23. April 2014 Subversion (SVN) - Allgemeines Versionsverwaltung für Dokumente Primär für reine Textdateien (*.txt,

Mehr

Client/Server-Systeme

Client/Server-Systeme Fachbereich Informatik Projektgruppe KOSI Kooperative Spiele im Internet Client/Server-Systeme Vortragender Jan-Ole Janssen 26. November 2000 Übersicht Teil 1 Das Client/Server-Konzept Teil 2 Client/Server-Architekturen

Mehr

Git II. Dezentrale Versionsverwaltung im Team

Git II. Dezentrale Versionsverwaltung im Team Git II Dezentrale Versionsverwaltung im Team Themenbereiche Arbeit mit Remote Repositories Austausch zwischen Repositories Änderungen rückgängig machen Zusammenarbeit über Workflows Git hat mehr als nur

Mehr

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, 04.01.2008, Berlin

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, 04.01.2008, Berlin Crashkurs Subversion / Trac / Provisioning Jan Zieschang, 04.01.2008, Berlin Agenda 2 Subversion Das SCM TortoiseSvn Der Client Trac Das Tracking-Tool Provisioning Das Provisioning Tool Arbeiten mit Subversion/TortoiseSvn

Mehr

Werkzeuge für das Softwarekonfigurationsmanagement

Werkzeuge für das Softwarekonfigurationsmanagement Werkzeuge für das Softwarekonfigurationsmanagement Hauptseminar Frank Herrmann Technische Universität Dresden Institut für Systemarchitektur Gliederung Ziele des Softwarekonfigurationsmanagements SCM-Standardwerkzeug

Mehr

Quellcodeverwaltung mit SubVersion

Quellcodeverwaltung mit SubVersion Access-Stammtisch-Stuttgart 06.05.2010 Quellcodeverwaltung mit SubVersion Thomas Möller, www.team-moeller.de Vorstellung Thomas Möller dipl. Sparkassenbetriebswirt Arbeit mit Access seit 1997 Seit 2000

Mehr

Versionsverwaltung mit SVN

Versionsverwaltung mit SVN Versionsverwaltung mit SVN Jan-Philipp Kappmeier Technische Universität Berlin 11. 04. 2012 Versionsverwaltung Typische Situation in der Softwareentwicklung Mehrere Personen arbeiten an einem Projekt Arbeiten

Mehr

Contents. Subversion Einrichten. Vorbereitung Folgende Tools werden benötigt. Ladet diese herunter und befolgt die Installationsanweisungen.

Contents. Subversion Einrichten. Vorbereitung Folgende Tools werden benötigt. Ladet diese herunter und befolgt die Installationsanweisungen. Contents Subversion Einrichten 1 Vorbereitung 1 Public & Private key generieren 1 PuTTY konfigurieren 2 Repository einrichten 3 Subversion konfigurieren 3 Arbeiten mit TortoiseSVN 4 Subversion Einrichten

Mehr

Verteilte Versionskontrolle mit GIT. 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Verteilte Versionskontrolle mit GIT. 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln Verteilte Versionskontrolle mit GIT 17.04.2012 - Dortmund Ansgar Brauner - GreenPocket GmbH - Köln 1 über mich 32 Jahre alt Softwareentwickler bei der Firma GreenPocket in Köln Java EE Entwickler und Rails

Mehr

Deployment Deployment Seite 1 / 25

Deployment Deployment Seite 1 / 25 Seite 1 / 25 Versionskontrolle Seite 2 / 25 Verteilte Versionskontrollsysteme Seite 3 / 25 Seite 4 / 25 Zusammenfassung Versionskontrolle Wir verwenden bei der Entwicklung das dezentralisierte Versionskontrollsystem

Mehr

Open Source IDE - eclipse ETIS SS04

Open Source IDE - eclipse ETIS SS04 Open Source IDE - eclipse ETIS SS04 Gliederung Motivation Geschichte Architektur Platform Runtime Eclipse Platform Java Development Tools (JDE) Plugin Development Environment (PDE) Zusammenfassung 2 Motivation

Mehr

Eclipse und Java Einheit 05: Arbeiten im Team: CVS

Eclipse und Java Einheit 05: Arbeiten im Team: CVS Eclipse und Java Einheit 05: Arbeiten im Team: CVS Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis 1 Source

Mehr

Permanente Integration Einstellung und Prozess versus Werkzeuge

Permanente Integration Einstellung und Prozess versus Werkzeuge Consulting Guild AG Methodenberatung für Projekte im 21. Jahrhundert Permanente Integration Einstellung und Prozess versus Werkzeuge Inhalt: Einleitung 1 Worum geht's hier überhaupt? 2 Überblick 2 Permanente

Mehr

SVN Windows Howto. Inhaltsverzeichnis. 1 Revisionsgeschichte

SVN Windows Howto. Inhaltsverzeichnis. 1 Revisionsgeschichte Inhaltsverzeichnis SVN Windows Howto DI Werner Damböck (2008) public: svn://193.170.118.37/et/howto/svn-howto-htl-et.pdf source: svn://193.170.118.37/damb/howto/svn-howto-htl-et.odt 1 Revisionshierarchie...1

Mehr

Einführung in die Softwaretechnik 10. Konfigurationsmanagement

Einführung in die Softwaretechnik 10. Konfigurationsmanagement 10. Konfigurationsmanagement Klaus Ostermann (mit Folien von Christian Kästner) 1 Agenda Verteiltes Arbeiten Versionskontrolle Konzepte CVS / SVN Git Fehlerverwaltung mit Ticket-Systemen 2 Kooperation

Mehr

Java-IDE-Vergleich Seite 1 / 5

Java-IDE-Vergleich Seite 1 / 5 Java-IDE-Vergleich Seite 1 / 5 Java-IDEs im Vergleich 1. Getestete IDEs: Borland JBuilder 3 Professional Edition IBM Visual Age 3 Entry Edition Sun Forte 1.01 Community Edition Microsoft Visual J++ 6.0

Mehr

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

Subversion und Tortoise SVN Tutorial. Quelle: mit freundlicher Genehmigung von sd&m Research Subversion und Tortoise SVN Tutorial Quelle: mit freundlicher Genehmigung von sd&m Research Agenda Agenda Tutorial Troubleshooting und FAQ Weiterführende Informationen Exkurs: Alternativ-Tool zu Tortoise

Mehr

Software Engineering 2 Versionsverwaltung

Software Engineering 2 Versionsverwaltung Software Engineering 2 Versionsverwaltung Prof. Dr. Axel Böttcher 7. Oktober 2012 Lernziele Die Grundlegenden Konzepte kennen Mit einem Versionsverwaltungssystem produktiv arbeiten können Ein geeignetes

Mehr

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn michael.kuhn@informatik.uni-hamburg.de

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn michael.kuhn@informatik.uni-hamburg.de Git Fast Version Control System Michael Kuhn michael.kuhn@informatik.uni-hamburg.de Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg 2011-09-28 1 / 16 1 Einführung Überblick

Mehr

Software Configuration Management (SCM)

Software Configuration Management (SCM) Software Configuration Management () und n Einzelarbeit Namensgebung und Nummerierung Anleitung : Problemsituationen beim Arbeiten im Team Mehrere Entwickler ändern die gleichen Klassen Die Weiterentwicklung

Mehr

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/ Einführung Was ist Unison? Unison ist ein Dateisynchronisationsprogramm für Windows und Unix. Es teilt sich viele Funktionen mit anderen Programmen, wie z.b. CVS und rsync. Folgend einige Vorteile des

Mehr

Apache Subversion (SVN)

Apache Subversion (SVN) Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 18.10.2013 Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 18.10.2013 git Datamining

Mehr

git Änderungen verwalten mit git

git Änderungen verwalten mit git Änderungen verwalten mit git Wie arbeitet man am besten an einem Protokoll zusammen? PeP et al. Toolbox, 2014 2 Idee: Austausch über Mails PeP et al. Toolbox, 2014 3 Mails: Probleme Risiko, dass Änderungen

Mehr

Softwareprojekt - Einführung

Softwareprojekt - Einführung Softwareprojekt - Einführung Danny Götte danny.goette@tu-ilmenau.de Softwareprojekt - Einführung FG System- und Software-Engineering Prof. Armin Zimmermann Armin.Zimmermann@tu-ilmenau.de Ablauf Einführung

Mehr

Buzzword Bingo Game Documentation (Java based Game)

Buzzword Bingo Game Documentation (Java based Game) Buzzword Bingo Game Documentation (Java based Game) Meppe Patrick Djeufack Stella Beltran Daniel April 15, 2011 1 Inhaltsverzeichnis 1 Einleitung 3 2 Aufgabenstellung 3 3 Allgemeines zu Buzzword Bingo

Mehr

Versionskontrollsysteme

Versionskontrollsysteme Versionskontrollsysteme Erfassung von Änderungen an Dateien Protokollierung von Änderungen Wiederherstellung alter Zustände Archivierung der gesamten Historie Koordinierung des gemeinsamen Zugriffs Verzweigung

Mehr

Evaluation eines kooperativen Entwicklungswerkzeuges zur Unterstützung von Projektteams am Beispiel von IBM Rational Team Concert.

Evaluation eines kooperativen Entwicklungswerkzeuges zur Unterstützung von Projektteams am Beispiel von IBM Rational Team Concert. Evaluation eines kooperativen Entwicklungswerkzeuges zur Unterstützung von Projektteams am Beispiel von IBM Rational Team Concert. Diplomvortrag Frank Langanke Arbeitsbereich Softwaretechnik Software Engineering

Mehr

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein.

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Pfade einstellen Stand: Dezember 2012 Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Diese Anleitung soll zeigen, wie man Pfad-Favoriten

Mehr

IAWWeb PDFManager. - Kurzanleitung -

IAWWeb PDFManager. - Kurzanleitung - IAWWeb PDFManager - Kurzanleitung - 1. Einleitung Dieses Dokument beschreibt kurz die grundlegenden Funktionen des PDFManager. Der PDF Manager dient zur Pflege des Dokumentenbestandes. Er kann über die

Mehr

Apache Subversion (SVN)

Apache Subversion (SVN) Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 19.10.2012 Apache Subversion (SVN) Datamining und Sequenzanalyse Marvin Meusel, Sascha Winter 19.10.2012 git Datamining

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen

SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen SafeRun-Modus: Die Sichere Umgebung für die Ausführung von Programmen Um die maximale Sicherheit für das Betriebssystem und Ihre persönlichen Daten zu gewährleisten, können Sie Programme von Drittherstellern

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

an Hand eines Beispiels Konsole

an Hand eines Beispiels Konsole Versionskontrolle an Hand eines Beispiels Konsole 1 / 14 PAUL SCHEREMET Inhaltsverzeichnis Einleitung 3 Das Repository anlegen (init) 4 Das erste Modul importieren (import) 5 Module auschecken (checkout

Mehr

Frank Budszuhn. Subversion 1.4 ..~ --.. Galileo Press

Frank Budszuhn. Subversion 1.4 ..~ --.. Galileo Press , Frank Budszuhn Subversion 1.4 Galileo Press..~ --.. Vorwort 15 TEIL 1 EINE EINFÜHRUNG IN SUBVERSION 1 Einleitung 21 1.1 ZielgruppedesBuchs 21 1.2 Aufbau des Buchs 22 1.3 Anforderungen an den Leser 23

Mehr

Elektronische Unterschriften mit Adobe Acrobat 9. Version 1.0 14. April 2009

Elektronische Unterschriften mit Adobe Acrobat 9. Version 1.0 14. April 2009 Version 1.0 14. April 2009 Einleitung Diese Anleitung beschreibt in Kurzform wie (Standard, Pro und Pro Extended) PDF Dokumente signiert oder zertifiziert respektive die Signatur(en) geprüft werden können.

Mehr

Verändern Die Arbeitskopie kann vom Benutzer beliebig modifiziert werden.

Verändern Die Arbeitskopie kann vom Benutzer beliebig modifiziert werden. 1 Grundlagen Was ist SVN? SVN ist ein freies Versionskontrollsystem, welches seit Beginn 2000 entwickelt wird. Es handelt sich dabei um freie Software, die unter der Apache-Lizenz 2.0 vertrieben wird.

Mehr

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG

ALM mit Visual Studio Online. Philip Gossweiler Noser Engineering AG ALM mit Visual Studio Online Philip Gossweiler Noser Engineering AG Was ist Visual Studio Online? Visual Studio Online hiess bis November 2013 Team Foundation Service Kernstück von Visual Studio Online

Mehr

Anleitung für eine Erstinstallation der TAP-Programme

Anleitung für eine Erstinstallation der TAP-Programme Anleitung für eine Erstinstallation der TAP-Programme Die folgende Installationsanleitung bezieht sich auf alle drei TAP-Programme (TAP, KiTAP, TAP-M), da die wesentlichen Schritte identisch sind. Vorbereitung

Mehr

VMware Schutz mit NovaBACKUP BE Virtual

VMware Schutz mit NovaBACKUP BE Virtual VMware Schutz mit NovaBACKUP BE Virtual Anforderungen, Konfiguration und Restore-Anleitung Ein Leitfaden (September 2011) Inhalt Inhalt... 1 Einleitung... 2 Zusammenfassung... 3 Konfiguration von NovaBACKUP...

Mehr

Einführung in Git. Dirk Deimeke. 19. August 2013. My own IT. ddeimeke (My own IT) Einführung in Git 19. August 2013 1 / 23

Einführung in Git. Dirk Deimeke. 19. August 2013. My own IT. ddeimeke (My own IT) Einführung in Git 19. August 2013 1 / 23 Einführung in Git Dirk Deimeke My own IT 19. August 2013 ddeimeke (My own IT) Einführung in Git 19. August 2013 1 / 23 Inhalt 1 Etwas Theorie Basiswissen Git 2 Praxis Installation Erstes Repository Besonderheiten

Mehr

Das Handbuch zu Desktop Sharing. Brad Hards Übersetzung: Frank Schütte

Das Handbuch zu Desktop Sharing. Brad Hards Übersetzung: Frank Schütte Brad Hards Übersetzung: Frank Schütte 2 Inhaltsverzeichnis 1 Einleitung 5 2 Das Remote Frame Buffer -Protokoll 6 3 Verwendung von Desktop Sharing 7 3.1 Verwaltung von Desktop Sharing-Einladungen.....................

Mehr

http://www.nvu-composer.de

http://www.nvu-composer.de Kapitel 16 Seite 1 Ein portabler Web-Editor Wer viel Zeit in eine Website investieren will ist gut beraten, eine professionelle Software für Webdesigner zu beschaffen. Diese Programme sind sehr leistungsfähig,

Mehr

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung Nach dem Update auf die Version 1.70 bekommen Sie eine Fehlermeldung,

Mehr

1. Einschränkung für Mac-User ohne Office 365. 2. Dokumente hochladen, teilen und bearbeiten

1. Einschränkung für Mac-User ohne Office 365. 2. Dokumente hochladen, teilen und bearbeiten 1. Einschränkung für Mac-User ohne Office 365 Mac-User ohne Office 365 müssen die Dateien herunterladen; sie können die Dateien nicht direkt öffnen und bearbeiten. Wenn die Datei heruntergeladen wurde,

Mehr

Die neuen Funktionen und Technologien von Windows Server 2003

Die neuen Funktionen und Technologien von Windows Server 2003 Die neuen Funktionen und Technologien von Windows Server 2003 Thomas Lenz Betrachen wir die Produktpalette von Microsoft, so müssen wir feststellen, dass das nächste Release aus der Windows Produktfamilie

Mehr

Versionsverwaltung mit CVS

Versionsverwaltung mit CVS Versionsverwaltung mit CVS Steffen Schäfer Michael Velten 27. Juni 2004 Reihe Berichte zur Softwaretechnik Herausgeber: Prof. Dr. Ulrich Eisenecker, Fachhochschule Kaiserslautern, Standort Zweibrücken,

Mehr

Techniken der Projektentwicklung

Techniken der Projektentwicklung Tools Kalenderwoche 43 Tools für die Softwareentwicklung Shell auf bash einstellen Tools in.bashrc eintragen mit Staroffice mit L A TEX Eclipse UML Modellierung Versionsverwaltung mit CVS CVS und Eclipse

Mehr

SmartExporter 2013 R1

SmartExporter 2013 R1 Die aktuelle Version wartet mit zahlreichen neuen Features und umfangreichen Erweiterungen auf. So können mit SmartExporter 2013 R1 nun auch archivierte Daten extrahiert und das Herunterladen der Daten

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Dezentrale Versionsverwaltung

Dezentrale Versionsverwaltung Dezentrale Versionsverwaltung mit GIT with that guy 14.08.2012 Lars Kumbier 1 Versionsverwaltung? 14.08.2012 Lars Kumbier 2 Versionsverwaltung? Speichern unterschiedlicher Entwicklungsschritte (oder Versionen)

Mehr

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs Der Aufbau der MS Outlook Integration orientiert sich stark an den SmarTeam Integrationen zu den MS Office Produkten, wobei

Mehr

DocuWare unter Windows 7

DocuWare unter Windows 7 DocuWare unter Windows 7 DocuWare läuft unter dem neuesten Microsoft-Betriebssystem Windows 7 problemlos. Es gibt jedoch einige Besonderheiten bei der Installation und Verwendung von DocuWare, die Sie

Mehr

Integrating Architecture Apps for the Enterprise

Integrating Architecture Apps for the Enterprise Integrating Architecture Apps for the Enterprise Ein einheitliches Modulsystem für verteilte Unternehmensanwendungen Motivation und Grundkonzept Inhalt Problem Ursache Herausforderung Grundgedanke Architektur

Mehr

Remote Eclipse RCP Management

Remote Eclipse RCP Management Remote Eclipse RCP Management Diplomarbeit Durchgeführt in Zusammenarbeit mit Deutsches Elektronen-Synchrotron DESY 1. Betreuer: Prof. Dr. Züllighoven 2. Betreuer: Prof. Dr. Lamersdorf Eugen Reiswich 09.12.2008

Mehr

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Einführung in git Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Ben Oswald 27. April 2014 Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist git?..................................... 1 1.2 Warum sollten

Mehr

Medieninformatik Praktikum. Jens Rademacher 14.07.2013

Medieninformatik Praktikum. Jens Rademacher 14.07.2013 mit mit Medieninformatik Praktikum 14.07.2013 1 / 13 mit 2 / 13 Nutzen von und an en mit Verwaltung unterschiedlicher Versionen einer Datei Protokollierung von Änderungen (Änderung, Zeitpunkt, Person)

Mehr

EasternGraphics Produktunterlagen Anleitung zur Migration für pcon.update

EasternGraphics Produktunterlagen Anleitung zur Migration für pcon.update 2007-02-13 [BBA] 2007-02-14 [AWI] Hintergrund Zur Nutzung von pcon.update auf Ihrem System sind Anpassungen in Bezug auf Ihre pcon- Applikationen und OFML-Daten erforderlich. Dies trifft insbesondere dann

Mehr

DirectScan. Handbuch zu DirectScan

DirectScan. Handbuch zu DirectScan DirectScan Allgemeiner Zweck: DirectScan dient dazu möglichst einfach und schnell ohne viel Aufwand ein Dokument über einen angeschlossenen TWAIN/WIA Scanner zu scannen und als PDF / TIFF oder JPEG Datei

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Datensicherung. Beschreibung der Datensicherung

Datensicherung. Beschreibung der Datensicherung Datensicherung Mit dem Datensicherungsprogramm können Sie Ihre persönlichen Daten problemlos Sichern. Es ist möglich eine komplette Datensicherung durchzuführen, aber auch nur die neuen und geänderten

Mehr

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann.

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für 24.06.2009. Markus Alvermann. Softwaretests Werkzeuge zur Automatisierung für Thementag Wer testet, ist feige 24.06.2009 Autor: Markus Alvermann Seite 2 / 39 Agenda Motivation Versionsverwaltung Build-Tools Unit-Tests GUI-Tests Continuous

Mehr

1. Installation und Inbetriebnahme pcon.update

1. Installation und Inbetriebnahme pcon.update Manual pcon.update 1. Installation und Inbetriebnahme pcon.update Unter nachfolgendem Link können Sie die erforderliche Software pcon.update herunterladen. ftp://ftpdownload:download-9200@ftp.weber-os.ch/download/pcon/update/p-up-

Mehr

MailStore Service Provider Edition (SPE)

MailStore Service Provider Edition (SPE) MailStore Solutions MailStore Service Provider Edition (SPE) E-Mail-Archivierung für Service Provider Mit Hilfe der MailStore Service Provider Edition können Sie Ihren Kunden moderne E-Mail-Archivierung

Mehr

Methoden und Werkzeuge des Konfigurationsmanagements

Methoden und Werkzeuge des Konfigurationsmanagements Methoden und Werkzeuge des Konfigurationsmanagements Zunächst ein paar Fragen:! Was ist euer Bild des Konfigurationsmanagements?! Welche Aufgaben hat eurer Meinung nach das Konfigurationsmanagement?! Wer

Mehr

Erfolgreicher Ums9eg auf Git

Erfolgreicher Ums9eg auf Git CONCEPT PEOPLE IT- TALK Ein Erfahrungsbericht Erfolgreicher Ums9eg auf Git René Preißel (etosquare) Nils Hartmann (Techniker Krankenkasse) VORSTELLUNG René Preißel Freiberuflicher SoGwarearchitekt, Entwickler

Mehr

Einführung in die Programmiertechnik

Einführung in die Programmiertechnik Einführung in die Programmiertechnik Versionsverwaltung Software Configuration Management (SCM) Aufgaben: Verwaltung des checkin/checkout von Quellen Festhalten von Zeit, Autor, Zweck und Inhalt von Änderungen

Mehr

CRM mit Adress PLUS und der SelectLine Warenwirtschaft

CRM mit Adress PLUS und der SelectLine Warenwirtschaft CRM mit Adress PLUS und der SelectLine Warenwirtschaft Überblick Die Schnittstelle zwischen Adress PLUS und der SelectLine Warenwirtschaft tauscht Kunden- und Interessentendaten zwischen diesen beiden

Mehr

Simulationsprojekte einfacher mit Subversion und Trac

Simulationsprojekte einfacher mit Subversion und Trac Simulationsprojekte einfacher mit Subversion und Trac Workshop Simulation in den Umwelt- und Geowissenschaften, Medizin und Biologie Stefan Schwarzer, SSchwarzer.com Mike Müller, IBGW GmbH Berlin, 2007-03-22

Mehr

PDF Dateien für den Druck erstellen

PDF Dateien für den Druck erstellen PDF Dateien für den Druck erstellen System Mac OS X Acrobat Version 6 Warum eigentlich PDF? PDF wird nicht nur in der Druckwelt immer wichtiger. Das Internet ist voller Informationsschriften im PDF-Format,

Mehr

Eine Wiederherstellung setzt immer ein vorhandenes Backup voraus. Wenn man nichts sichert, kann man auch nichts zurücksichern.

Eine Wiederherstellung setzt immer ein vorhandenes Backup voraus. Wenn man nichts sichert, kann man auch nichts zurücksichern. Exchange Daten wieder ins System einfügen (Dieses Dokument basiert auf einem Artikel des msxforum) Eine Wiederherstellung setzt immer ein vorhandenes Backup voraus. Wenn man nichts sichert, kann man auch

Mehr

peer-to-peer Dateisystem Synchronisation

peer-to-peer Dateisystem Synchronisation Ziel Realisierungen Coda Ideen Fazit Literatur peer-to-peer Dateisystem Synchronisation Studiendepartment Informatik Hochschule für Angewandte Wissenschaften Hamburg 30. November 2007 Ziel Realisierungen

Mehr

Eclipse und Java Einheit 01: Einführung in Eclipse

Eclipse und Java Einheit 01: Einführung in Eclipse Eclipse und Java Einheit 01: Einführung in Eclipse Laith Raed Ludwig-Maximilians-Universität München Institut für Informatik: Programmierung und Softwaretechnik Prof.Wirsing Inhaltsverzeichnis 1 Hintergrundwissen

Mehr

Outlook-Abgleich. Änderungen, Irrtümer und Druckfehler vorbehalten. Bearbeitet von Harald Borges. Stand April 2015 www.cobra.de

Outlook-Abgleich. Änderungen, Irrtümer und Druckfehler vorbehalten. Bearbeitet von Harald Borges. Stand April 2015 www.cobra.de Outlook-Abgleich Copyright 2015 cobra computer s brainware GmbH cobra Adress PLUS, cobra CRM PLUS, cobra CRM PRO und cobra CRM BI sind eingetragene Warenzeichen der cobra computer s brainware GmbH. Andere

Mehr