Muster der Softwaretechnik-Lehre Valentin Dallmeier · Florian Gross · Clemens Hammacher · Matthias Höschele · Konrad Jamrozik · Kevin Streit · Andreas Zeller Lehrstuhl für Softwaretechnik, Universität des Saarlandes {dallmeier, fgross, hammacher, hoeschele, jamrozik, streit, zeller}@cs.uni-saarland.de 1 Wissen der Softwaretechnik- (standortunabhängiger) Form als auch illustriert Lehre organisieren an konkreten Beispielen. Die Anwendung sollte zeigen, wie das Muster das Problem löst. Das Organisieren von Softwaretechnik-Projekten ist für neue Dozenten stets eine Herausforderung: Man Zusammenspiel mit anderen Mustern. muss Kunden finden, Projekte definieren, Tutoren Voraussetzungen in Form von anderen Mus- schulen, Anforderungen definieren, Terminpläne ma- tern sowie Konflikte mit anderen Mustern sollten chen, Regeln aufstellen. . . und zum Schluss das Pro- ebenfalls dokumentiert werden. jektergebnis bewerten. Eine ungenügende Planung Folgen. Was sind die Folgen dieses Musters? Hier und Umsetzung kann schnell das gesamte Projekt ge- sind insbesondere unerwartete und negative Folgen fährden. Daher empfiehlt es sich, für die häufigsten gemeint, die dem Leser bewusst sein sollten. Fragen und Probleme Lösungen explizit aufzuschrei- Tipps und Tricks. In diesem Abschnitt können Hil- ben. Dies können zunächst immer wiederkehrende festellungen zur Umsetzung des Musters, sowie Dinge sein, wie die Frage, wann welche Vorlesungsin- gemachte Erfahrungen dokumentiert werden. halte benötigt werden, oder wie die Begutachtung von Bekannte Einsätze. Dieser Abschnitt verweist auf Praktikums-Dokumenten organisiert werden muss. An- die Veranstaltungen, in denen das Muster um- dere Fragen mögen zunächst banal erscheinen, ma- gesetzt wurde. Die Wiki-Einträge zu den Veran- chen aber schnell deutlich, warum es sich empfiehlt, staltungen wiederum beschreiben die dort einge- Wissen explizit zu dokumentieren: setzten Muster, sowie ggf. Kontaktpersonen und • Ich möchte eine Grillfeier für 160 Teilnehmer orga- Webseiten mit weiterführenden Informationen. nisieren. Wieviele Getränke und Speisen muss ich Abbildung 1 zeigt eins der derzeit gut 50 Muster. pro Person ansetzen? Woher bekomme ich Grills, Würstchen, Besteck, Salate? 2 Ein Wiki für Erfolgsrezepte • Ich möchte eine „Messe“ organisieren, auf dem Auf www.sewiki.de haben wir unser internes (loka- meine Praktikums-Teilnehmer ihre Projekte vor- les) Wissen in Form von Mustern zu organisieren. Wir stellen können. Was brauche ich, und woher be- möchten damit unser Wissen der Gemeinschaft bereit- komme ich es? Wann muss ich wen verständigen? stellen, es aber auch jedem Interessierten ermöglichen, Um das Wissen über Softwaretechnik-Lehre zu ver- sie mit eigenen Erfahrungen weiter zu verfeinern, oder walten, haben wir ein Wiki eingerichtet, um das Wis- eigene Muster hinzuzufügen. Noch spiegeln diese Sei- sen über Softwaretechnik-Lehre zu organisieren und ten unsere eigenen „Kochrezepte“ wieder, die zudem zu dokumentieren – und zwar in einer Form, die so- stark lokal geprägt sind. Unsere Vision ist aber, dass wohl lokales als auch standortübergreifendes Wissen wir weitere solche Muster sammeln und weiter aus- dokumentieren kann. Die Artikel nutzen das Format bauen können – und so das Wissen über erfolgreiche der Muster – analog zu Entwurfsmustern als Lösungs- Lösungen der Softwaretechnik-Lehre lebendig halten schablonen für immer wiederkehrende Probleme: können. In diesem Sinne rufen wir alle auf, die sich mit der Lehre der Softwaretechnik beschäftigen, ihre Name. Jedes Muster hat einen Namen, damit es unter eigenen Erfolgsrezepte beizusteuern unter diesem Namen einfach referenziert und nachge- http://www.sewiki.de/ schlagen werden kann. Ziel. Jedes Muster löst ein bestimmtes Problem, das Danksagung. Die Idee, ein Wiki zu nutzen, um Kon- hier allgemein charakterisiert werden kann. zepte der Softwaretechnik-Lehre auszutauschen, ent- Motivation. Das Problem sollte relevant sein – also stand 2008 in Diskussionen mit Kurt Schneider (Han- häufig oder in verschiedenen Ausprägungen im- nover), dem wir zu tiefem Dank verpflichtet sind. Die mer und immer wieder auftreten. Muster der Saarbrücker Veranstaltungen gehen auf Anwendung. Dies ist eine Beschreibung, wie das jahrelange Feinarbeit mit zahlreichen Tutoren zurück, Muster umgesetzt wird – sowohl in abstrakter für deren Anregungen wir ebenfalls sehr dankbar sind. A. Spillner, H. Lichter (Hrsg.): SEUH 13 101 Muster: Spiel als Aufgabenstellung Ziel Ziel ist es zum einen, die Zeit zu minimieren, die benötigt wird um sich domänenspezifisches Wissen bezüglich der Aufgabe anzueignen. Zum anderen jedoch, und viel wichtiger, zeigen sich die Studierenden bei Verwendung eines Spiels als Implementierungsziel besonders motiviert. Der Sinn der Aufgabenstellung wird kaum kritisiert. Motivation Insbesondere in einem →Vollzeit-Praktikum, das innerhalb recht kurzer Zeit stattfindet, ist es wichtig, dass nicht zu viel Zeit aufgewendet werden muss, um die Aufgabenstellung und die sich daraus ergebenden Konsequenzen zu verstehen. [. . . ] Mit der Verwendung von Spielen, insbesondere von Brettspielen, als Implementierungsziel wurde die Erfahrung gemacht, dass die Studierenden innerhalb von einem bis maximal zwei Tagen die Aufgabe klar verstanden haben. Ein weiterer Vorteil von Spielen ist die gesteigerte Motivation und Lernbereitschaft der Studierenden. Die initiale Hürde, die genommen werden muss, um sich qualifiziert mit der Aufgabenstellung auseinanderzusetzen und darüber diskutieren zu können, ist relativ niedrig. Unterschiede in der Vorbildung der Studierenden kommen wenig zum tragen. Selten werden einzelne Gruppen-Mitglieder abgehängt und außen vorgelassen. Zu guter Letzt sind massenweise geeignete und interessante Spiele, samt deren Anleitungen, verfügbar. Auf diesen Fundus zurückzugreifen spart das komplette Konzipieren einer Aufgabenstellung und erlaubt es dem Veranstalter, sich auf die Umsetzung zu konzentrieren. Anwendung Die Umsetzung besteht im Wesentlichen aus folgenden Schritten: 1. Auswahl eines geeigneten Spiels. (a) Die Regeln des Spiels müssen einfach zu verstehen, also nicht zu komplex sein. (b) Das Spiel sollte Multiplayer-fähig sein. Somit können die Teilnehmer in einem finalen →Turnier gegeneinander antreten. (c) Kann das Spiel als →Client/Server Architektur umgesetzt werden, kann der Veranstalter einen zentralen Spielserver stellen, der von allen Teilnehmern während der Veranstaltungsdauer genutzt werden kann, um gegeneinander anzutreten und zu testen. (d) Es sollte relativ einfach möglich sein, für das gewählte Spiel eine einfache künstliche Intelligenz zu schreiben. (e) Es sollte möglich sein ein vernünftiges (graphisches) User-Interface zu implementieren, das die Teilnehmer nutzen können, um ihre Implementierung zu testen und zu debuggen. (f) Ist das Spiel geeignet um von Menschen gespielt zu werden, kann der Mensch gegen seine eigene KI antreten, was zusätzlich motiviert. [. . . ] (g) Die Spielregeln sollten genug Raum für eine kreative Umsetzung geben. Auch die Implementierung einer Strategie in der KI sollte genug Möglichkeiten der Differenzierung zwischen den Teilnehmern bieten. (h) Die Implementierung des Spiels sollte einige algorithmische Möglichkeiten bieten. (i) Soll die Aufgabenstellung modifiziert werden (→Modifikation der Aufgabenstellung), sollten die Regeln des Spiels dies erlauben. 2. Es sollten keine Implementierungen des Spiels frei verfügbar sein, die die Studierenden einfach kopieren können. 3. Ist die Spielidee rechtlich geschützt, sollten die Rechteinhaber kontaktiert werden, um die Bedingungen der Benutzung zu klären. [. . . ] 4. Erstellen der Aufgabenstellung Ist eine spätere →Modifikation der Aufgabenstellung vorgesehen, so kann diese Erweiterte Aufgabenstellung bereits mit erdacht werden. 5. Implementieren der vom Veranstalter vorgegebenen Teile [. . . ] 6. Testbarkeit prüfen [. . . ] 7. Anfertigen einer Referenz-Implementierung der von den Studierenden zu implementierenden Teile 8. Infrastruktur aufsetzen Für die einzelnen Schritte sollte ausreichend Zeit eingeplant werden. Zum Vergleich: Im →Software-Praktikum an der Uni- versität des Saarlandes beginnt der erste Schritt (Auswahl eines geeigneten Spiels) etwa fünf Monate vor Praktikumsbeginn. Zusammenspiel mit anderen Mustern Ein Spiel als Aufgabenstellung eignet sich sehr gut für ein abschließendes →Turnier. Folgen ... Abbildung 1: Muster „Spiel als Aufgabenstellung“ (aus www.sewiki.de, gekürzt) 102 A. Spillner, H. Lichter (Hrsg.): SEUH 13