
\documentstyle[twocolumn,german]{article}
\input{/home/pi/kelter/p/tex/a4.tex}
\input{/home/pi/kelter/p/tex/endversion.tex}

\renewcommand{\version}{p021v00, 2002-02-25}

\title{Versions- und Konfigurationsmanagement 
\\in der Ausbildung in praktischer Informatik}

\author{Udo Kelter\\\SIPId}

\date{}

\pagestyle{myheadings}
\markright{
% p90?v01
%\version \generiert
}

\pagestyle{empty}

% \renewcommand{\baselinestretch}{1.3}


\begin{document}
\maketitle
% \tableofcontents


\thispagestyle{empty}




\subsection*{Einf"uhrung und Motivation}
\llabel{introduction}

In der Ausbildung in praktischer Informatik ist es
v"ollig selbstverst"andlich, da"s die Studentinnen
und Studenten selbst programmieren und dabei den
Umgang mit Editoren, Compilern, Testhilfen usw.\
erlernen. Diese ``handwerklichen'' F"ahigkeiten
sind meist kein expliziter Lehr- und
Pr"ufungsgegenstand; entweder werden sie
vorausgesetzt, z.B.\ die Bedienung einfacher
Texteditoren und Operationen mit Dateien, oder die
Werkzeuge werden nebenbei in den "Ubungsgruppen
vorgestellt.

Im Gegensatz zu Editoren und Compilern scheint das
Erlernen von Konzepten und Werkzeugen des Versions-
und Konfigurationsmanagements (VKM) eher die 
Ausnahme zu sein. Dies ist insofern bedauerlich,
als der Einsatz von VKM-Systemen in der
professionellen beruflichen Praxis unerl"a"slich
ist -- zumindest bei qualitativ hochwertigen
Entwicklungsprozessen --, aber auch schon bei
vielen praktischen Arbeiten w"ahrend des Studiums
sehr sinnvoll w"are, z.B.\ bei Gruppenarbeit
(Programmierpraktikum, Projektgruppe) oder bei der
Entwicklung gr"o"serer Systeme (Studienarbeit,
Diplomarbeit).

In diesem Papier analysieren wir die Ursachen f"ur
diesen Befund und stellen ein Konzept und
zugeh"origes Lehrmaterial vor, anhand dessen erste
Erfahrungen mit dem VKM-System CVS gewonnen werden
k"onnen. Die meisten Materialien, insb. ein
Videofilm, sind im WWW frei erh"altlich.
Abschlie"send berichten wir von ersten
Einsatzerfahrungen mit dem Konzept und den
Lehrmaterialien im Programmierpraktikum.



\subsection*{Hindernisse bei der Vermittlung von
VKM-Wissen}

VKM hat als Lehrstoff folgende Merkmale:

\BI
\item Die grundlegenden Konzepte, die f"ur einen
   Ersteinsatz im Studium ben"otigt werden, sind
   einfach zu verstehen und k"onnen in ca. einer
   Zeitstunde unterrichtet werden.

\item Praktische Erfahrungen -- die das wichtigere
   Ausbildungsziel sind -- k"onnen nur durch
   Einsatz eines konkreten VKM-Systems gewonnen
   werden. Viele VKM-Systeme sind komplex, weil sie
   anspruchsvolle professionelle Problemstellungen
   abdecken, und verursachen ggf.\ einen hohen
   Lernaufwand. Dies gilt vor allem f"ur die
   Installation, also das Einrichten und
   Konfigurieren eines zentralen, entfernt
   zugreifbaren Repositorys, das zur Unterst"utzung
   von Gruppenarbeit ben"otigt wird.

\EI


Es erscheint wenig sinnvoll und praktikabel, die
Benutzung eines VKM-Systems anhand von k"unstlichen
Beispielen zu "uben. Stattdessen sollte eine reale
Problemstellung als Basis benutzt werden. Die
"Ubungsaufgaben, die in den beiden ersten Semestern
in der Grundausbildung in Programmierung bearbeitet
werden, sind zu wenig umfangreich. Eine gute Basis
sind die Aufgabenstellungen des
Programmierpraktikums, besonders auch wegen der
Gruppenarbeit, die Funktionen wie Sperren und
Notifizierung in VKM-Systemen praktisch motiviert,
allerdings ein entfernt zugreifbares Repository
erfordert.

Im Programmierpraktikum steht nur begrenzt viel
Zeit -- ca. 2 - 3 Stunden Unterrichtszeit -- f"ur
das Thema VKM zur Verf"ugung. Aus dieser
Zeitrestriktion und wegen des Ausbildungsstands im
dritten Semester folgt unmittelbar, da"s es kein
Lernziel f"ur die Studenten sein kann, ein entfernt
zugreifbares Repository einzurichten zu k"onnen.
Das Repository mu"s daher von den Betreuern des
Praktikums eingerichtet werden.

Wegen der diversen Netzwerk-, Sicherheits- und
Administrationsfragen k"onnen damit sogar die
Betreuer "uberfordert sein. Die Probleme der
Betreuer k"onnen ein wesentlicher Grund
daf"ur sein, da"s das Thema VKM ausgespart wird.
Wegen der Vielfalt an Rechner- und
Netzwerklandschaften und Betreuungsstrukturen sind
aber keine pauschale Aussagen m"oglich, welche
Gegenma"snahmen sinnvoll sind.





\subsection*{Ein Konzept f"ur die VKM-Einf"uhrung
im Programmierpraktikum}

Das am Fachbereich 12 der Universit"at Siegen
entwickelte Konzept f"ur die VKM-Einf"uhrung im
Programmierpraktikum hat folgende Merkmale:

\BI

\item F"ur die praktische Arbeit wird CVS
   (Concurrent Versions System) eingesetzt\footnote
      {Die Lehrmaterialien k"onnen mit leichten
      Nachteilen auch verwendet werden, wenn ein
      anderes VKM-System eingesetzt wird.
   }. CVS \ccite{Ce01} wurde aufgrund diverser
   Vorteile gew"ahlt: es ist incl.\ umfangreicher
   Dokumentation frei verf"ugbar, es ist
   praxiserprobt und l"auft stabil, und f"ur alle
   g"angigen Plattformen sind graphische
   Bedienschnittstellen erh"altlich.

\item Die Beherrschung der Grundbegriffe des VKM
   und der Grundfunktionen von CVS ist ein
   explizites Lernziel des Programmierpraktikums.
   Der entsprechende Lehrstoff wird in Form von
   Volltexten dargestellt (alternativ in zwei
   separaten Lehrmodulen \ccite{Ke01lmkm1} und
   \ccite{Ke01lmcvs11} bzw.\ in dem Buch
   \ccite{Ke02ST1}) und wird i.d.R. im Selbststudium
   erarbeitet. Der Leseaufwand liegt bei 1 - 2
   Stunden.

\item Die Betreuer nehmen die Arbeitsergebnisse der
   Gruppen nur noch in dem zentralen Repository
   entgegen. Bei der Abnahme werden die erstellten
   Programme von dort in einen neu angelegten
   Arbeitsbereich kopiert, "ubersetzt und
   ausprobiert.

\item Um ``Ber"uhrungs"angste'' abzubauen, wird in
   jeder einzelnen "Ubungsgruppe ein Video
   vorgef"uhrt, das die Bedienung eines
   CVS-Frontends anhand der grundlegenden
   Arbeitsabl"aufe zeigt. Das Video ist in 7
   Abschnitte gegliedert und dauert insg.\ ca.\ 20
   Minuten. Einschlie"slich Zwischenfragen und
   Diskussionen werden ca. 45 - 60 Minuten
   ben"otigt.

\item Das Repository wird von den Betreuern des
   Praktikums eingerichtet.

\EI


\mm Das Video und weitere Materialien sind
kostenlos erh"altlich. Zur Unterst"utzung von
Betreuern wurde eine Liste mit den wichtigsten
Fragen und Antworten zur Installation des
Repositorys entwickelt.

Die Lehrmaterialien sind nat"urlich auch in anderen
Lehrveranstaltungen, in denen umfangreiche Systeme
entwickelt werden oder in denen in Gruppen
gearbeitet wird, sinnvoll einsetzbar.



\subsection*{Erfahrungen}

Das Konzept und die Materialien wurden im
Wintersemester 2001/02 im Programmierpraktikum (bei
7 Gruppen mit je 7 - 8 Teilnehmern) erstmalig
eingesetzt.

Der Einsatz verlief ("uberraschenderweise) v"ollig
problemlos, trotz des zus"atzlichen Lehrstoffs.
Positiv auf die Akzeptanz scheint sich vor allem
das Video ausgewirkt zu haben, vielleicht auch
deswegen, weil es passiv konsumiert werden
kann\footnote
   {Die Frage, ob einer solchen Haltung 
   entgegengewirkt werden sollte und das Video
   insofern negativ einzusch"atzen ist, kann hier
   aus Platzgr"unden nicht diskutiert werden.
}. Obwohl die Teilnehmer ca.\ 2 Wochen vor der
Vorf"uhrung aufgefordert wurden, vorab die
Lehrtexte zu lesen, hatte dies nur rund die H"alfte
getan. Auch diese Teilnehmer meinten, wie eine
sp"atere Befragung ergab, von dem Video profitiert
zu haben.

F"ur die Betreuer lag ein Vorteil des Videos
gegen"uber einer live-Vorf"uhrung in dem geringeren
Vorbereitungsaufwand (wobei ein geeigneter Raum mit
fest installiertem Beamer zur Verf"ugung stand;
stattdessen k"onnen auch mehrere Multimedia-PCs
benutzt werden). Das Video konnte auch von
entsprechend qualifizierten Studentischen
Hilfskr"aften vorgef"uhrt werden.

An den Versionsnummern war abzulesen, da"s CVS von
einigen Gruppen intensiv, von anderen nur wenig
genutzt worden ist. Positiv beurteilt wurde die
Unterst"utzung der verteilten Gruppenarbeit, insb.
von solchen Studenten, die von den oft chaotischen
Zust"anden wu"sten, die in fr"uheren Praktika
infolge des Dateiaustauschs via e-mail auftraten.



\subsection*{F"orderung}

Das Video wurde im Rahmen des Projekts {\em MuSofT
-- Multimedia in der Softwaretechnik} entwickelt.
Das Projekt {\em MuSofT} wird seit M"arz 2001 vom
Bundesministerium f"ur Bildung und Wissenschaft im
Rahmen des Programms ``Neue Medien in der Bildung''
gef"ordert. An diesem Vorhaben nehmen die folgenden
Hochschulen teil: Fachhochschule L"ubeck,
Otto-von-Guericke-Universit"at Magdeburg,
Universit"at Paderborn, Universit"at Dortmund,
Universit"at Siegen, Universit"at Stuttgart und die
Universit"at der Bundeswehr in M"unchen. Ziel
dieses Projekts ist, die Ausbildung in der
Softwaretechnik an den Stellen, an denen es
sinnvoll erscheint, durch den Einsatz neuer Medien
zu unterst"utzen. Das Vorhaben wird bis zum Ende
des Jahres 2003 laufen.



\begin{thebibliography}{..}
\linepenalty=9999
\tolerance=2000


% \bibitem [xx]     {xx}    \bibinput{xx}


\bibitem {Ce01} \bibinput{Ce01} (in verschiedenen
Formaten auf {\small \tt  http://www.cvshome.\-org/docs}
erh"altlich)

\bibitem {Ke01lmkm1} \bibinput{Ke01lm_km1}

\bibitem {Ke01lmcvs11} \bibinput{Ke01lm_cvs1}

(\ccite{Ke01lmcvs11} und 
\ccite{Ke01lmkm1} sind erh"altlich in verschiedenen
Formatierungen unter {\small \tt
http://pi.informa\-tik.\-uni-sie\-gen.de/lehre/2001w/2001w\_st1.html})

\bibitem {Ke02ST1} Kelter, U.: Softwaretechnik I;
Paperback, 304 S.; 2002 (beziehbar "uber {\small
\tt www.softec-sie\-gen.de})



\end{thebibliography}
\end{document}
