Programmierung im Grossen. Vorlesung 22: Konfigrationsmanagement. Themenübersicht. Bertrand Meyer. Bernd Schoeller bernd.schoeller@inf.ethz.



Ähnliche Dokumente
WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

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

Praktikum Ingenieurinformatik (PI)

Versionsverwaltung mit SVN

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

Einführung in Subversion

Deployment Deployment Seite 1 / 25

Moodle aktuell halten mit Git

Wie benutzt man TortoiseSVN

Software Engineering in der Praxis

RIGGTEK. Dissolution Test Systems. DissoPrep Browser-Interface

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

Versionskontrolle mit Subversion

CVS-Einführung. Sebastian Mancke,

Werkzeuge für das Softwarekonfigurationsmanagement

Die Projek*ools. Files, Git, Tickets & Time

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

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

Einführung in Subversion. Tutorium SWP

Software Qualität Übung 1

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

Windows 10 activation errors & their fixes.

Besprechung Übung 1 & Vorstellung Übung 2

MetaQuotes Empfehlungen zum Gebrauch von

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

IT-Projekt-Management

Windows 2008R2 Server im Datennetz der LUH

B12-TOUCH VERSION 3.5

Print2CAD 2017, 8th Generation. Netzwerkversionen

Kurzanleitung zu. von Daniel Jettka

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Methoden und Werkzeuge des Konfigurationsmanagements

How to do? Projekte - Zeiterfassung

Leichte-Sprache-Bilder

Netzsicherheit I, WS 2008/2009 Übung 12. Prof. Dr. Jörg Schwenk

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

MARCANT - File Delivery System

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

Problem crazytrickler unter Windows 8:

Step by Step Webserver unter Windows Server von Christian Bartl

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Neue Kennwortfunktionalität. Kurzanleitung GM Academy. v1.0

Updatehinweise für die Version forma 5.5.5

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

8. Dokumentenverwaltung mit CVS eine Einführung

Netzwerkversion PVG.view

Version 0.3. Installation von MinGW und Eclipse CDT

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Arbeiten mit dem neuen WU Fileshare unter Windows 7

SANDBOXIE konfigurieren

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

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

Konzentration auf das. Wesentliche.

Iterativ. Inkrementell

CL-Mini-ABF. Kurzbeschreibung. Installation und Vorbereitung. Stand Ihre HTK-Filiale Michelstadt

Verbinden. der Firma

Installation / Update Advantage Database Server. Die Software Hausverwaltung

Workshop: Eigenes Image ohne VMware-Programme erstellen

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

Branching und Merging mit Visual Studio Team System

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Ihr habt Probleme auf die Closed Public Beta zuzugreifen? Dieses Dokument hilft Euch Antworten auf häufig gestellte Fragen zu erhalten.

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Versionierung und Bugtracking mit Git(Hub)

OP-LOG

HSR git und subversion HowTo

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

ARAkoll 2013 Dokumentation. Datum:

Das Blabla des LiLi-Webteams. Browser. HTML-Dateien. Links & Webadressen. ROXEN.

Anlegen eines DLRG Accounts

Die Windows 7 Sicherung im Detail

Durchführung der Datenübernahme nach Reisekosten 2011

Support-Tipp Mai Release Management in Altium Designer

Microsoft Update Windows Update

C++ mit Eclipse & GCC unter Windows

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Einführung in die Informatik Tools

Internet online Update (Mozilla Firefox)

Verwalten Sie Ihre Homepage von überall zu jeder Zeit! Angebote und Informationen auf

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Internet online Update (Internet Explorer)

teischl.com Software Design & Services e.u. office@teischl.com

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Installieren von Microsoft Office Version 2.1

pero SIMconfigBackup Inhaltsverzeichnis Benutzerdokumentation ( für v1.0)

macs Support Ticket System

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

Erstellen einer in OWA (Outlook Web App)

Inhalt... 1 Einleitung... 1 Systemanforderungen... 1 Software Download... 1 Prüfdokumentation... 4 Probleme... 5 Hintergrund... 5

Avira Server Security Produktupdates. Best Practice

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

SFTP SCP - Synology Wiki

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

Transkript:

1 Letzte Aktualisierung: 29. Juli 2004 Programmierung im Grossen Bertrand Meyer 2 Vorlesung 22: Konfigrationsmanagement Bernd Schoeller bernd.schoeller@inf.ethz.ch Themenübersicht 3 Motivation Was ist Konfigurationsmanagement? Wofür brauchen wir Konfigurationsmanagement? Konfigurationsmanagement Aspekte des Konfigurationsmanagements Begriffe und Definitionen Probleme und Lösungen Werkzeugunterstützung Erhältliche SCM Werkzeuge Beispiele: CVS, Bugzilla, Xenofarm Zusammenfassung 1

Über Eure Zukunft 4 Ihr werdet nie alleine arbeiten. Andere werden Euren Code durcheinander bringen. Ihr werdet anderer Leute Code durcheinander bringen. Ihr werdet nie ein (grösseres) Programm von null auf entwickeln. Die Software an der Ihr arbeitet war schon da als in die Firma angefangen habt. Die Software an der Ihr arbeitet wird noch da sein wenn ihr die Firma verlasst. ICH NEHME WETTEN DARAUF AN! KM: Die lange Version 5 Configuration management is unique identification, controlled storrage, change control, and status reporting of selected intermediate work products, product components, and products during the life of a system. Anne Mette Jonassen Hass: Configuration Management; Principles and Practice KM: Die kurze Version 6 Konfigurationsmanagement beschäftigt sich mit der Rolle von ZEIT innerhalb der Softwareentwicklung. 2

Raum 7 Raum root_class.e readme.txt gui/ gui/main_window.e gui/dialog_window.e net/ net/ftp_protocol.e... Ein System, welches Dokumente über einem Raum verwaltet ist ein FILE SYSTEM. Raum und Zeit 8 Raum Copyright Info verbessert Neuer Knopf hinzugefügt Verbesserte Dokumentation root_class.e readme.txt gui/ gui/main_window.e gui/dialog_window.e net/ net/ftp_protocol.e... Verzeichnis erzeugt Protokol implementiert Fehler im Handshake behoben Time Ein System, welches Dokumente über Raum und Zeit verwaltet nennt man ein REPOSITORY. Dokumente 9 Konfigurationsmanagement verwaltet nicht nur Quellcode, sondern auch: Binäre Versionen der Software (Builds) Anforderungs- und Analysedokumente Entwurfsdokumente, UML-Diagramme Testergebnisse Informationen über die Systemkonfiguration... 3

Konfigurationsmanagement ist darüber... 10... zu wissen wer was an welchem Dokument in in der Vergangenheit geändet hat.... es zu ermöglichen, dass unterschiedliche Personen and unterschiedlichen Plätzen zur gleichen Zeit an dem selben Satz von Dokumenten arbeiten können.... zu einer alten Version zurückzugehen wenn man erkennt dass der eingeschlagene Weg der falsche war.... verfolgen der Softwarequalität über die Zeit und um software regression zu verhindern. Versionierung 11 Versionen geben eine einzigartige zeitabhängige Indentifikation für jedes Dokument. Die Auswahl geeigneter Namensschemen ist die Basis für den erfolgreichen einsatz von Konfigurationsmanagement. Es können unterschiedliche Ebenen von Namenschemata in einem Projekt benutzt werden. Beispiele: Versionen für schriftliche Dokumente: REQDOC-20040103-R4 Versionen für den Quellcode: 1.1, 1.2, 1.3, 1.4, 1.4.1,... Versionen fur die binären Builds: 610, 611, 612,... Änderungsmanagement (CM) 12 CM muss aufzeichnen WELCHES Dokument sich verändert hat. WAS sich verändert hat. WER diese Änderung gemacht hat. WANN die Änderung gemacht wurde. Die Geschichte der Änderungen sollte sichtbar gemacht werden. Änderungen sollten rückgängig gemacht werden können. Es sollte möglich sein, ein Dokument zu einem bestimmten Zeitpunkt zu betrachten. 4

Ansichten 13 Zeit T DATEI A DATEI B 1.0 1.1 1.2 1.3 1.0 1.1 1.2 DATEI C 1.0 1.1 1.2 1.3 1.4 1.5 Ansicht zum Zeitpunkt T Kopfversion 14 Time DATEI A DATEI B 1.0 1.1 1.2 1.3 1.0 1.1 1.2 DATEI C 1.0 1.1 1.2 1.3 1.4 1.5 Kopf = Ansicht zum Zeitpunkt Kopf Branching 15 Die Erstellung verschiedener Versionen von einem gegebenen Satz von Dokumenten nennt man BRANCHING (oder GABELUNG): 1.0 1.1 1.2 1.3 1.1.1 1.1.2 1.1.3 5

Zusammenfügung 16 Das zusammenführen von Versionen, welche über eine Zeit unabhängig voneinander entwickelt wurden nennt man MERGING: 1.0 1.1 1.2 1.3 1.4 1.1.1 1.1.2 1.1.3 Verteilte Entwicklung 17 Entwickler 1 Repository Entwickler 2 Checkout Checkout Commit Commit Konflikt Binäre Builds 18 Es gibt unterschiedliche Ebenen von binären Builds: Current, but not Tägliche (Nächtliche) Builds reliable. Integrations Builds Stabile Builds Abgabe Alpha Release Beta Release Release Candidate Not current, but reliable. Official Release 6

Regression Testing 19 Regression Testing überprüft Features die schon in alten Versionen funktioniert haben, ob sie auch in neuen Versionen funktionieren. Eine Testfolge wird zusammen mit der Software entwickelt um deren Korrektheit zu überprüfen. Diese Testfolge wird auf jeder geänderten Version laufen gelassen um zu überprüfen, ob die Elemente noch funktionieren. Regression Test sind normalerweise Teil des Commit Processes oder des täglichen Build. Bug-Tracking 20 Bug-Tracking ist der oberbegriff für die Infrastruktur welche Fehlermeldungen aufnimmt, verwaltet und an die entsprechenden Entwickler weiterleitet. Die Anzahl und Qualität der Fehlermeldungen ist normalerweise eine Mass für die Qualität der Software. CM: Terminologie 21 Repository, Commit, Update, Checkout, Head Branch/Fork, Merge Conflicts, Resolving Conflicts Tag, Label Release, Build Test Cases, Test Suite, Regression Tests 7

Werkzeuge für Konfigurationsmanagement 22 Software Configuration Management (SCM) CVS, Subversion (Open Source) ClearCase (Rational) Bug-Tracking Bugzilla (Open Source) Täglicher Build Xenofarm (Open Source) Tinderbox (Open Source) Die meisten Projekte haben individuelle Software CVS 23 Bekanntestes SCM Werkzeug. http://www.cvshome.org Schlüssel für die meisten Open-Source Projekte und vieler Einsatz in Unternehmen. Basiert auf RCS (Revision Control System) Command-line program (!) Grafische Benutzerschnittstelle: WinCVS (Windows) / GCVS (Unix) Integration in Eclipse und viele andere IDEs CVS (forts.) 24 Eigenschaften von CVS: Zentrales Repository Checkout erzeugt eine Kopie der Dateien auf der lokalen Maschine. Versionierung auf Dateiebene Verteiltes Arbeiten über das Internet mit dem PSERVER (unsicher) oder SSH (sicher) Protokoll. Kann mit Binär- und ASCII-Dateien arbeiten, ist aber nicht sehr effizient mit Binärdateien. Kennt primitive Problemlösungsstrategien für Konflikte. 8

Bugzilla 25 Open Source Bug-Tracking Werkzeug http://www.bugzilla.org/ Entwickelt für die Mozilla Browser Suite Web-Basiertes Interface Bugzilla (forts.) 26 Xenofarm 27 System für einen täglichen Build. http://xenofarm.tigris.org/ Entwickelt für Projekt mit vielen Zielplattformen. Verwendet in: ArgoUML Pike Python Automatische Scripte verteilen den Quellcode auf Build-Maschinen. Startet den Compilationsprozess und eine Anzahl von Testläufen. 9

Xenofarm (forts.) 28 Zusammenfassung 29 IchhabenurkeinenkleinenÜberblicküber Konfigurationsmanagement gegeben. Jedes Softwareprojekt sollte es benutzen. Jedes Softwareprojekt sollte es von anfang an benutzen. Ein grosses Langzeitprojekt ohne es ist Wahnsinn. Konfigurationsmanagement kann durch geeignete Werkzeuge unterstützt werden. Aber der Schlüssel zum erfolgreichen Einsatz von Konfigurationsmanagement liegt in der Disziplin derbenutzereszuverwenden. 10