Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
34.3 Versionsverwaltung<br />
E<strong>in</strong> weiterer wichtiger Punkt <strong>in</strong> grösseren <strong>und</strong>/oder langlebigen Softwareprodukten ist <strong>die</strong> Versionsverwaltung.<br />
Ohne Versionsverwaltung ist es oft nicht mehr möglich, den Stand von älteren Programmversionen<br />
wiederherzustellen. Aber gerade zu Wartungs- <strong>und</strong> Fehlerbehebungszwecken ist<br />
es oft unumgänglich, <strong>die</strong> der Releaseversion des fehlerverursachenden Programmes entsprechenden<br />
Sourcefiles zur Verfügung zu haben.<br />
Mit e<strong>in</strong>er guten Versionsverwaltung ist es jederzeit möglich, jeden beliebigen Versionstand des<br />
Sourcecodes wiederherzustellen.<br />
Im e<strong>in</strong>fachsten Fall wird bei jedem Release schlicht der gesamte Sourcecode archiviert. Unter Verwendung<br />
von Versionsverwaltungssystemen wie z. B. SVN, RCS oder CVS kann das Verwalten<br />
von Versionen vere<strong>in</strong>facht <strong>und</strong> automatisiert werden, es wird dabei auch überwacht, dass nicht<br />
mehrere Personen gleichzeitig an derselben Datei arbeiten. Solche Systeme speichern meist nicht<br />
den gesamten Code jedesmal vollständig ab, sondern jeweils nur <strong>die</strong> Differenzen zum letzten Release.<br />
Grosse oder langlebige Softwareprojekte können ohne Versionsverwaltung kaum vernünftig verwaltet<br />
werden, <strong>in</strong>sbesondere weil ständig an irgend e<strong>in</strong>em Teil weiterentwickelt wird <strong>und</strong> es kaum<br />
möglich ist, den Überblick zu behalten wenn jeder unkontrolliert den Sourcecode ändert.<br />
34.3.1 Gr<strong>und</strong>pr<strong>in</strong>zip e<strong>in</strong>er Versionsverwaltung<br />
Bei e<strong>in</strong>er Versionsverwaltung liegt das gesammte Projekt <strong>in</strong> e<strong>in</strong>em Repository (Meist auf e<strong>in</strong>em<br />
Server), <strong>und</strong> <strong>die</strong> Programmierer haben ke<strong>in</strong>en direkten Zugriff auf <strong>die</strong> Daten. Wer an dem Projekt<br />
mitarbeiten möchte, muss bei sich e<strong>in</strong>e lokale Kopie des Projektes (Vom gewünschten Versionsstand)<br />
anlegen ('Checkout'). Anschliessend kann <strong>die</strong> Lokalkopie weiterentwickelt werden, stabile<br />
Stände können jederzeit ('Commit') <strong>in</strong> des Repository übertragen werden, Konflikte verursacht<br />
durch Modifikationen von Dritten werden erkannt <strong>und</strong> gemeldet. Die eigene Kopie kann jederzeit<br />
auf den aktuellen Stand des Repository aktualisiert werden ('Update'), auch hier werden allfällige<br />
unlösbare Konflikte gemeldet. Es kann jede jemals existierende Konstellation des Repositorys wieder<br />
hergestellt werden. ('Checkout' mit angabe der gewünschten Version). E<strong>in</strong> wichtiger Gr<strong>und</strong>satz<br />
bei der Arbeit mit Versionsverwaltungen ist immer: Lokal ist nur e<strong>in</strong>e Kopie, das Orig<strong>in</strong>al ist immer<br />
im Repository. Lokale Änderungen werden erst mit e<strong>in</strong>em erfolgreichen 'Commit' <strong>in</strong> das Repository<br />
übernommen.<br />
Übungsaufgabe 33.1:<br />
Es soll e<strong>in</strong>e Applikation entworfen werden, welche <strong>in</strong> e<strong>in</strong>er Adressdatenbank doppelte E<strong>in</strong>träge<br />
erkennt <strong>und</strong> entfernt. Es soll e<strong>in</strong>e Logdatei über alle entfernten E<strong>in</strong>träge geführt werden, sowie alle<br />
entfernten E<strong>in</strong>träge <strong>in</strong> e<strong>in</strong>er separaten Datei abgelegt werden. Als Doppele<strong>in</strong>träge sollen auch unterschiedliche<br />
Schreibweisen, Tippfehler, <strong>und</strong> Verdreher erkannt werden. Die Applikation soll <strong>in</strong> Form<br />
e<strong>in</strong>er Bibliothek entworfen werden, welche bei unterschiedlichen Datenbanken e<strong>in</strong>gesetzt werden<br />
kann.<br />
Analysieren sie <strong>die</strong>se Aufgabe, entwerfen Sie e<strong>in</strong>en Grobdesign <strong>und</strong> e<strong>in</strong>en Term<strong>in</strong>plan. Den Term<strong>in</strong>plan<br />
können Sie für e<strong>in</strong>e oder mehrere Personen erstellen.<br />
Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 143/147