21.11.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!