1 Software Configuration Management mit Microsoft SourceSafe Ein Erfahrungsbericht zum Konfigurationsmanagement der Danet GmbH Klaus Schröter, Danet GmbH.

Slides:



Advertisements
Ähnliche Präsentationen
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

Warum Corinis CMS? Trennung von Inhalt, Layout und Struktur des Internetauftritts Dezentrale Pflege der Inhalte in den jeweiligen Fachabteilungen Pflege.
Object Relational Mapping
Blue J.
„Ansicht Arbeitsbereich“ ist die nutzerspezifische Ansicht, in der alle Dokumente aufgelistet sind, die dem angemeldeten Benutzer zugeordnet sind. D.h.
Vorgehensweise Website Besprechung am 11. Februar 2008 Gründung und Partnerunternehmen der Wirtschaftsuniversität Wien.
Systemverwaltung wie es Ihnen gefällt.
Computeria Zürich Treff vom 1. März 2006 alle eigenen Daten sichern Ein Vortrag von René Brückner.
Auswertung der Interviews
Literaturverwaltung und Wissensorganisation
On a Buzzword: Hierachical Structure David Parnas.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
RUP-Elemente (Schlüsselkonzepte)
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Java: Dynamische Datentypen
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Das Build-Tool ANT ETIS SS05. ETIS SS05 - Nadine FröhlichANT 2 Gliederung Motivation Build - Datei –Allgemeiner Aufbau –Project –Target –Task –Properties.
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Rigi und Web2Rsf vorgestellt von Tobias Weigand. Inhalt Ziel von Web2Rsf und Rigi Vorstellung des Parsers Web2Rsf Vorstellung des Werkzeugs Rigi Analyse.
eXtreme Programming (XP)
Concurrent Versions System
Einführung in Visual C++
ENOVIA SmarTeam CATIA Integration
Der VFP Debugger - Coverage und Profiling. © 1999 TMN-Systemberatung GmbH Der VFP Debugger n Neues Aussehen, eigene Task n Erweiterte Möglichkeiten n.
Wizards & Builders GmbH Schulung Visual SourceSafe für Visual FoxPro Norbert Abb W&B.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Mailserver-Installation mit LDAP-Schnittstelle für die Firma XYZ GmbH
Ordner- und Dateistrukturen in Windows 7 (Teil 1)
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Software-Projektführung
Das Wasserfallmodell - Überblick
Aichinger Christian, Strasser Jürgen
Formular- und Dokumentenarchivierung
Patrick Schmerlaib. Scriptsprachen: sind Programmiersprachen Verzichten auf Sprachelemente Vorteile: schnelle Erstellung kleiner Programme Flexible Sprache.
Warum brauche ich ein CMS – Content Management System?
Kostenlose Alternative zu Microsoft Office
7th German CDISC User Group Basel, 11. März 2010 Willkommen zum Define.xml Workshop.
Dokumente teilen j drücken Sie dann F5, oder klicken Sie auf Bildschirmpräsentation > Von Beginn an, um den Kurs zu starten. Klicken Sie in der Meldungsleiste.
Version 2008 Team Foundation Version Control (TFVC) … ist eine vollständige Neuentwicklung … wurde für große Teams, die auch weltweit verteilt arbeiten,
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
Agenda 13: Begrüßung & Einführung in das Thema
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
PRO:CONTROL Ziel des Moduls Arbeitspakete
Torque in Turbine Team 4 Josef Bohninger Thomas Lindenhofer
Concurrent Versions System
Datenablage der Stadt Winterthur
ICT – Modul Textverarbeitung
Content Management System
Marco Behnke Git free & open source, distributed version control system Git.
Des eenen sin Uhl is des annern sin Nachtigall Wie ein Daten-GAU zur Softwareentwicklung beiträgt.
Die Management-Tools von Z&H COACH beinhalten zentrale Hilfsmittel für ein Management-System. Sorgfältig angewendet führen diese Tools Ihr Unternehmen.
An Approach to the Preservation of Digital Records National Archives of Australia Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung.
Installation, Konfiguration, Online stellen, Zugriff © by Lars Koschinski 2003.
Wizards & Builders GmbH Einführung in die W&B-Methode zur Softwareentwicklung Alf Borrmann.
Visual Age und Rational Rose Daniel Faensen. 2 Übersicht  Integration Rational Rose und VisualAge (Forward / Reverse Engineering)  Team-Unterstützung.
The Interlisp programming environment Serife Sancar – December.2004.
Greenstone. Theoretischer Teil Entstehung: Entwickelt vom New Zealand Digital Library Project an der Universität von Waikato Kooperation mit der UNESCO.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
© Copyright INFORM GmbH Seminarvortrag im Studiengang Scientific Programming von Nicole Küpper am Analyse des Updatevorgangs und Auswahl.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Christoph Wirtz | Seminarvortrag EBC | Lehrstuhl für Gebäude- und Raumklimatechnik Ein Tool zum automatisierten Erstellen von Conversion Scripts.
Universität der Bundeswehr München 1 Seminar – DBMS für spezielle Anwendungen Seminar DBMS für spezielle Anwendungen Versionen und Varianten.
Umstellung von Team4-Komponenten auf den Standard- Protokoll-Mechanismus von Microsoft SQL Server 2012 Johann Jansen y Alegret Team4 GmbH Seminarvortrag.
Effektives Delta Laden DOAG SID Data Warehouse. Ziele Welche CDC Methoden gibt es? Typische Fallen Verschiedene Lösungsansätze praktische Beispiele.
, Jens Rettig1 Einsatz von Versionsverwaltungstools im ORACLE – Umfeld Dipl.-Inform. Jens Rettig
SLA Reporting leicht gemacht
Merging Jira – Das Unmögliche möglich machen Michael Lüer (ACP) Sönke Martens (ACP) catworkx GmbH
 Präsentation transkript:

1 Software Configuration Management mit Microsoft SourceSafe Ein Erfahrungsbericht zum Konfigurationsmanagement der Danet GmbH Klaus Schröter, Danet GmbH Weiterstadt, Folien und weitere Infos:

d 2 Danet GmbH n Software und Beratung n z.Zt. ca. 400 Mitarbeiter n gegründet 1981 n Eigentümer sind Mitarbeiter, SAIC, Deutsche Telekom n Flache Hierarchie, 12 eigenständige Einheiten n

d 3 Wo ist das Problem? l Jeder PC Benutzer kennt das: lFehler können schnell korrigiert werden lDokumente im Computer sind leicht zu ändern lDer Kollege braucht gerade mal einen Ausdruck lZur Sicherheit macht man lieber eine Kopie der Datei lAuch auf Diskette, und auf diese Diskette …

d 4 Wo ist das Problem? l Aber … n Welche Version ist eigentlich aktuell? l“Auf Seite 7 unten ist ein Fehler” l“Bei mir steht was anderes” n Dateien werden mit alten Version überschrieben oder verwechselt

d 5 Software Entwicklung im Team n Software ist leicht zu ändern n Fehler müssen schnell korrigiert werden n Der Kollege braucht die Datei n Besser die Funktion X modifizieren, als die ganze Datei xyz.c neu schreiben n Der Kunde braucht schnell eine (Zwischen-)Lieferung

d 6 Software Entwicklung im Team l Potenzierte Probleme n Änderungen von Kollegen gehen verloren n Module, die noch nicht zusammen-passen werden ausgeliefert n Module, die nicht mehr zusammen-passen werden ausgeliefert l Offene Fragen n Wer müßte über einen Update der Funktion X informiert werden? n Wer bearbeitet zur Zeit die Datei? n Wer ist der Autor? n Was wurde geändert? Wann? Warum? Von Wem? n Welche Version ist das eigentlich?

d 7 Software Configuration Management l SCM ist: n so alt wie die Softwarekrise n wie Teflon ein Produkt der Raumfahrt n eine Disziplin des Software Engineering n Gegenstand vieler Bücher, Aufsätze, Standards n zum Teil kompliziert und abschreckend n von zahlreichen Werkzeugen unterstützt

d 8 Software Configuration Management l SCM of the 70ies n Mainframe n Repository, CASE n schwierig, kompliziert n kostenintensiv l SCM heute n PC n Flexibel, unabhängig von CASE oder Methoden n einfach, pragmatisch n preiswerter

d 9 SCM als Disziplin n Planen des Vorgehens im Team, der eigenen Arbeitsweise n Identifikation der configuration items l Titel des Dokuments, Dateiname, Autor, etc. n Definition von Konfigurationen l Was gehört dazu? l aka Project, Release, Baseline, Produkt, Build, Systemversion n Identifikation von Versionen l 1, 2, 3 oder “3.1”, “3.11”, “95”, “summer”,... n Verringern der Anzahl der Versionen

d 10 SCM Definitionen l Configuration Item (SourceSafe: file) n Zumeist source code Dateien. Allgemeiner: nicht abgeleitetes atomares Objekt l Konfiguration (SourceSafe: project) n Definierte Menge von Dateien und Subprojekten l Version n Definierter Zwischenstand einer Datei oder eines Projekts in der zeitlichen Abfolge der Bearbeitung l Variante n Änderung einer Datei oder eines Projekts für einen neuen Zweck (keine Weiterentwicklung) l Release n Eine freigegebene und ausgelieferte Version

d 11 SCM als Disziplin l Änderungkontrolle n Wie soll der Freigabeprozeß einer neuen Version ablaufen? l Autor ist verantwortlich l Review durch Kollegen l Übergabe an Library-Manager in Protected Library

d 12 Software Entwicklung - Projektbibliothek l Der Library Manager beschützt die Protected Library l Kontrollierter Zugriff zur Bearbeitung oder zum Lesen l Kontrollierte Aktualisierung und Erweiterung der Bibliothek

d 13 SCM als Disziplin l Änderungsplanung n Was soll / darf überhaupt geändert werden? Wann? Warum? Von Wem? l CCB - Change Control Board l CAPTT - Change and Problem Tracking Tool l SCM ist ein Teil der ISO 9000 Zertifizierung

d 14 SCM mit Safe l Jede Lieferung wird auf Band kopiert l Das Band kommt in den Safe l Vorteile: n Geschützt vor ungewollter Modifikation n Geschützt vor Verlust durch Diebstahl, Erdbeben, Brand, … l Nachteile: n Zugriff schwierig und langsam n Kein Überblick über Zusammenhänge n Bänder sind HW/SW spezifisch n Kein gemeinsames Archiv n Bandlaufwerke und Formate sind schnell veraltet

d 15 SCM mit RCS n Unix Tool Revision Control System n Viele ähnliche tools: SCCS, PVCS, …. n Vorteile: l Locking: Zur gleichen Zeit kann nur einer die Datei bearbeiten l History: Ältere Versionen der Datei können noch extrahiert werden l History-Diff: Was hat sich geändert? l Meta-Daten: Kommentare zu den Versionen, zur Datei selbst, Autor, Bearbeitungszustand etc.

d 16 SCM mit RCS n Nachteile: l Benutzung relativ schwierig l Bei falscher Konfiguration mehrere Historien derselben Datei l Datenverluste bei der Windows Version (MKS) l Platzbedarf

d 17 SCM Automatisierung l Integration von SCM Aufgaben n z.B. individuelle scripts, die RCS aufrufen l Verwaltung von Versionen und Varianten l Integration von n Problem Reports n Change Control n make n Testautomatisierung n Freigabe n Release Tape Erzeugung, … l Workflow Konzepte

d 18 SCM Automatisierung l Nachteile: n Starre Arbeitsweise, inflexibel n Festlegung der SW-Technologie, z.B. UNIX und C Programme n Hoher Anpassungsaufwand bei geänderten Anforderungen

d 19 SCM mit Microsoft SourceSafe l Einfach zu beherrschendes Tool l Nur ein Zweck: SCM l Für alle Arten von Dateien und Projekten geeignet l Integration und Anpassung nicht notwendig aber möglich

d 20 SourceSafe l Ein Safe für Sourcen l Alle Dateien können in SourceSafe gespeichert werden: n Source Code, DLLs, Graphics, Dokumente, help files, icons, *.xls…

d 21 Arbeiten mit SourceSafe l Check out aus dem SourceSafe l Bearbeiten der Datei in einem privaten working directory l Check in der neuen Version der Datei

d 22 SourceSafe File check-out l Eine Datei wird aus dem Safe geholt n (Repository, Protected Library, Project Library, Archiv, ….) l Gesperrt für andere Benutzer

d 23 SourceSafe check-in

d 24 SourceSafe Historie einer Datei

d 25 SourceSafe und Working Directories l Alle Dateien und ihre Historie werden in der zentralen SourceSafe Database gespeichert l Die Bearbeitung (edit, compile,...) erfolgt in einem normalen Verzeichnis (i.A. privat) n keine unbeabsichtigte Aktualisierung n Workspace, sandbox, etc. l Die Werkzeuge (Editor, Compiler,...) müssen nichts von SourceSafe wissen und umgekehrt

d 26 SourceSafe Projekte n Ein SourceSafe Projekt ist eine Liste von Dateien und Unterprojekten n Ein SourceSafe Projekt ist eine Konfiguration n Auch die Geschichte des Projekts wird gespeichert l Wann gehörte welche Datei mit welchem Namen dazu?

d 27 SourceSafe Projekte l Proj ekte sind das wichtigste Feature von SourceSafe l Basis für Operationen wie z.B.: n Label n Get n History n... n Difference

d 28 SourceSafe Project Difference l Was hat sich in einem Projekt geändert: n Zwischen zwei Versionen n Zwischen einem Working Directory und dem SourceSafe Projekt n Ebenso für einzelne Dateien

d Individuelle Anpassung l Viele Aspekte können individuell eingestellt werden l Einstellungen werden für jeden Benutzer zentral gespeichert (ss.ini) l Vorgaben sind in srcsafe.ini möglich

d SourceSafe Automatisierung l Alle Funktionen sind auch auf der Kommandozeile möglich n ss get demo.cpp n Sinnvoll für Batch Files, Integration in eigene Umgebung möglich l Neu in Version 5.0: OLE Automation n SourceSafe durch Visual Basic steuerbar

d 31 Andere SourceSafe Clients l Win16 l Visual Basic l Visual C++ l Visual J++ l Visual FoxPro 5.0 l Microsoft Access 97 l FrontPage l Microsoft Word l Microsoft Excel l Macintosh l UNIX l Delphi l Visual Intercept l Track Record

d 32 SourceSafe survival guide l kein blindes Vertrauen, aber auch keine Paranoia l Fehlermeldungen beachten l Windows sauber konfiguriert halten, Virenschutz betreiben l Externe Archivierung wichtiger Releases (echter Safe) l Regelmäßiges Backup des SourceSafe Data Verzeichnisses l Analyze.exe ( ) regelmäßig laufen lassen

d 33 Multiplattform Support n Für alle Dateien geeignet Dateien dürfen nicht den gleichen Namen haben wie z.B.: Readme README readme n Textdateikonversion l CR/LF, CR, LF n Effiziente Nutzung gemeinsamer Teile n Effiziente Verwaltung von Varianten

d 34 SourceSafe in der Praxis n Konfigurationen definieren n Abhängigkeiten und Beziehungen verwalten n Source Code wiederverwenden n Varianten erstellen n Freigabeprozeduren n Auslieferungen n Probleme und Änderungswünsche verfolgen

d 35 Konfigurationen definieren l Ein SourceSafe Projekt ist eine Konfiguration n Menge von Dateien, „Release“,... l SourceSafe selbst ist völlig flexibel l Wie soll man seine SourceSafe Projekte strukturieren? n z.B. Spiegelbild der Entwicklungsumgebung

d 36 Organisation der SourceSafe Projekte l Toplevel: Organisatorische Projekte l Darunter: Produkte, ergänzende Infos l Darunter Zielsysteme l Darunter Programme, deliverables l Darin: die zur Erzeugung benötigten Dateien

d 37 Abhängigkeiten und Beziehungen l Objekte (Dateien) des SCM bestehen untereinander in verschiedenen Beziehungen n “A spezifiziert B” n “A ist ein Testfall für B” n “A verwendet B” l In anderen SCM Tools werden diese Beziehungen explizit als Meta-Daten gespeichert l Mit SourceSafe kann Zugehörigkeit durch Unterprojekte modelliert werden

d 38 Abhängigkeiten und Beziehungen l Bewährte Organisation: n Jedes Produkt (Liefereinheit, Target) wird ein SourceSafe Projekt n Jedes SourceSafe Projekt ist abhängig von seinem Inhalt und seinen Unterprojekten n Erzeugbare Dateien (z.B. exe files) werden Unterprojekte

d 39 SourceSafe File Sharing n Dieselbe Datei wird in zwei (oder mehr) Projekten verwendet n Eine Änderung der Datei in Projekt A wird gleichzeitig in Projekt B wirksam

d 40 Software Wiederverwendung l Das SourceSafe File Sharing hilft bei der Wiederverwendung n Sharing definierter Versionen: “Pin” n Lokale Modifikation: “Branch” l Auch die normale Verwendung kann damit dokumentiert werden: n “Welches Projekt verwendet Oracle?”

d 41 File Sharing Möglichkeiten n Änderungen an $/B/demo.cpp sind zugleich in $/C wirksam und umgekehrt. n Änderungen an $/D/demo.cpp sind nur in diesem Projekt sichtbar. Seit Version 4 ist die Datei eigenständig. n Änderungen an $/A/demo.cpp sind nicht möglich. Die Datei ist auf Version 2 eingefroren $/A $/B$/C$/D demo.cpp pin branch share

d 42 Variantenverwaltung l Ausgangslage: n Ein Programm-Modul für AIX n democ.c2.000 LOC l Aufgabe: Portierung nach VMS und Windows NT

d 43 Varianten: Copy and Modify n demo.c LOC n demo_nt.c, LOC n demo_vms.c LOC l Nachteile: n Informationsverlust n Spätere Updates müssen mehrfach nachgezogen werden l SourceSafe kann die Information “A entstand aus B” speichern

d 44 Varianten: Single Source Concept n demo.c2.220 LOC n #ifdef überall im Code l conditional compilation l Nachteile: n schwer lesbar (Geschmackssache) n kombinatorische Explosion n enormer Testaufwand oder ungetesteter Code

d 45 Varianten: Spezialisierung / Vererbung n Drei Projekte: lAIX l demo.c 1905 LOC l d_aix.c23 LOC lNT l demo.c 1905 LOC l d_nt.c67 LOC lVMS l demo.c 1905 LOC l d_vms.c 176 LOC n Definition von Funktionen (Methoden, Makros, …) für die unterschiedlichen Ausprägungen der gemeinsamen Aufgabe n Nachteil: Werkzeuge wie SourceSafe erforderlich

d 46 Freigabeprozeduren l Problem: Wie ist der Stand des Projekts? Welche Datei ist fertig? Welche getestet?,... l Jeder Datei kann Status zugeordnet werden (Promotion Level) n Initial, Reviewed, Tested, OK l In SourceSafe könnten dafür Label auf Files gesetzt werden l Ist aber nicht sinnvoll, da im SourceSafe Explorer kein Überblick angezeigt wird

d 47 Freigabeprozeduren und Releases l Vorgehen für Dateien n Jeder Entwickler hat ein privates Working Directory. Hier kann er entwickeln, experimentieren und und lokale Tests durchführen n Ist eine Datei fertig, so wird sie reviewed n Anschließend erfolgt der check in mit Kommentaren l Vorgehen für Projekte n Das Projekt erhält ein Label n Alle Dateien werden in ein separates Build Verzeichnis geholt n Ist der Build erfolgreich wird die erzeugte Software getestet n Sind alle Tests erfolgreich wird die Software zur Auslieferung freigeben (release)

d 48 Reproduzierbare Softwareerzeugung l Alle notwendigen Dateien müssen im Projekt sein l Der Build Prozeß darf nur von diesen Dateien abhängen l no links, environment variables, registry entries l Steps to perform n Set external build identification n Label the project n Get the project files n Run “build all” command

d 49 Probleme und Änderungswünsche verfolgen n Viele Tools verfügbar, z.B. individuelle Access Lösungen wie CAPTT, MS ATS, MS Team Manager, Track Record, Visual Intercept n Einige Tools bieten direkte SourceSafe Integration

d 50 Was SourceSafe noch fehlt n Rekursiver Vergleich parametrisierbar n Anzeige von weiteren Daten im SourceSafe Explorer n Roll-back für Projekte n Verschiedene Namen für shared files n Eigentümer oder home project für shared files n Öffentliche Liste bekannter Fehler n Vielleicht: lAsynchrone Replikation für verteilte Entwicklung

d 51 Vorteile von SourceSafe l Offenes Werkzeug l Einfach zu benutzen l Einfach zu lernen l Einfacher Einstieg n Dateinamen und Struktur können nachträglich geändert werden l Flexibel, unabhängig von n Programmiersprache n Entwicklungsumgebung n Methode n Zielplattform n Reifegrad des SW- Entwicklungsprozesses l Hohe Performanz l Für große Projekte und Dateien geeignet

d 52 Fazit l SCM lohnt sich immer l Mit SourceSafe ist der Einstieg einfach l Sehr nützlich: n Projekthistorie n File Sharing n Reproduzierbare Builds