ProgrammierPraktikum SS 2000

Aktuelles

Abschlussvorstellung
Abschliessende Vorstellungen sind am 17.7.00, ab 9.00 c.t. im SR0. Geplantes Programm ist dann:
  1. pro Gruppe:
    • Ausgabe der Produktions-Doku ("Pflichtenheft") (Wenn ich bis zum 13.7.00 eine druck/kopierbare Version bekomme, sorge ich für hinreichende Exemplare)
    • System gründlich vorstellen, ausführliche Demos. Ggf. auch anhand des Pflichtenheftes den Hintergrund erläutern, insbesondere sollte das Fachkonzeptklassenkonzept und/oder die (Aufruf-)Sequenz der grösseren Programmteile erläutert werden.
    • Vorschläge für Erweiterungen. Was fehlt? Was wollten potentielle Benutzer?
    • Wie lief die Arbeit in der Gruppe ab? Wie wurde koordiniert? War die Arbeit sinnvoll verteilt? War das Pflichtenheft sinnvoll? Wurden Protokolle geführt? Gab es aktivere / passivere Mitarbeiter?
    • Würde man nochmal genauso designen?
    • Bemerkungen des Plenums zu dieser Lösung.
    • Abgabe: Doku und Produkt in geeigneter elektronischer Form, am besten auf einer Floppy.
  2. Plenum:
    • Gesamtvergleich der Produkte
    • Praktikumskritik: Wie war der Ablauf? Was hat man gelernt? Was könnte besser / anders gewesen sein?
TeX-KVV
einige Hinweise s.u. Dokumente/Hilfen
Servelet-Server verfügbar
Es gibt nun auch einen Server für Servelets, der zer Zeit aber nur der Gruppe jacma offen ist. Wenn weitere Gruppen servelets benötigen, bitte melden!
WWW-Verzeichnisse auch über /share verfügbar
Damit ggf. das Bearbeiten der Dateien etwas einfacher ist, wird hands:/opt/www nun unter dem Namen /share/edu-www im Mathe-netz exportiert. Man kann also von jedem Rechner an der Mathe z.Bsp. auf /share/edu-www/doc/ss00/ProgrammierPraktikum/jacma/jan/ zugreifen.
'alter'-Privileg angefügt
Alle Gruppennutzer sollten nun auch die mit der 'alter'-Berechtigung verbundenen Aktionen druchführen können.
mySQL-perl-Interface
Für die Anbindung von perl (DBI) an mysql habe ich einige Pakete eingespielt, siehe /share/mySQL/Msql-Mysql-modules-1.2209, /share/mySQL/DBI-1.13, /share/mySQL/Data-Dumper-2.09, /share/mySQL/Data-ShowTable-3.3. Insbesondere /share/mySQL/Msql-Mysql-modules-1.2209/README scheint mir ein Beispiel und damit guter Einstieg zu sein, ansonsten sei auf das MySQL Perl API verwiesen.
Dokumentation
zum WWW-Server und zur Zusammenarbeit mit mySQL aufgenommen. (s.u.)
Web-Server
Der Demoserver läuft: http://hands.uni-muenster.de.

Jede Gruppe hat dort ein Verzeichnis, in das sie html-Seiten eintragen kann: hands:/opt/www/doc/ss00/Programmierpraktikum/<gruppename>. Die URL der Dateien dort ist entsprechend http://hands/ss00/Programmierpraktikum/<gruppename>/<dateiname>, die Datei index.html wird automatisch angezeigt.

In einen Gruppenverzeichnis kann ein Verzeichnis cgi eingerichtet werden. Ausführbare Scripten dort können dann mit der URL http://hands/htbin/gruppenname/scriptname angesprochen werden. Ein Beispiel habe ich auch gemacht, unter lammers/returnGlipseForm als Gruppennamen/Dateiname.

Stand 28.4.00: Berechtigungen im Bereich des WWW-servers sind gesetzt. Alle sollten nun in den folgenden zusätzlichen UNIX-Gruppen pp2000 und jeweils in der entsprechenden Gruppe ProPrakti.com, dotcom, help oder jacma sein. Gruppenmitglieder dürfen im entsprechenden Verzeichnis schreiben, lesen und ausführen.
mySQL-Datenbank
Der Zugriff erfolgt auf hands. Die Daten und Programme liegen in hands:/share/mySQL/mysql, für die Benutzng reicht es aber aus, den Pfad entsprechend zu setzen:
export PATH="$PATH:/share/mySQL/mysql/bin"
Unter anderem steht dann das Kommando mysql zuer Verfügung, das eine Verbindung zum laufenden Datenbankserver aufmacht.

Für alle Gruppen ist ein Benutzer eingerichtet, und die Berechtigung zum Erzeugen einer initialen Datenbank. Initiales Passwort ist jeweils 'jacma'.
Benutzer Datenbankname
jacma jacma
help help
dotcom dotcom
proprakti proprakti

Gruppen

JACMA
Alexander Gerber, Carolin Letz, Jan Drewnak, Markus Könning, Astrid Tengen, Abdelkibir Rhila
H.E.L.P.
Nicole Randerath, Arne Hüls, Martin Hoffmann, Dirk Kusserow, Sabrina Thurm
DOTCOM
Lothar Heinrich, Andre Weßeling, Karsten Theißen, Georg Vossen, Thorsten Schmolke, Johannes Bredner
ProPrakti.com
David Ullrich, Detlef Richter, Jochen Thielemeier, Henning Vant, Iris Puke, Hiltrud Jaschke

Dokumente / Hilfen

Zeitplan

Zyklus I

Phase Wochen Deadlines Meilensteine
Einarbeitung 1 13.4 Erfordernisse, use cases
Erarbeitung / Analyse 1 20.4 Produktdefinition
Design 1 27.4 Architektur
Implementierung 2 11.5 Komponenten
Integration und Test 1 18.5 (laufendes) System
Dokumentation 1 25.5 konsistente Projektdokumentation

Zyklus II

Phase Wochen Deadlines Meilensteine
Analyse II 1 1.6 Requirements, use cases, Produktdefinition
Design II 1 8.6 Architektur
Implementierung II 2 22.6 Komponenten
Integration und Test II 1 29.6 (laufendes) System
Dokumentation II 1 6.7 konsistente Projektdokumentation

Organisatorisches

Zeit und Ort: Mo, Do, 13.00-15.00 Uhr, Einsteinstr. 62, Raum SR-0
Beginn: 10.04.2000
Zuordnung: Grund- und Hauptstudium (4 SWS)
Adressaten: Studierende der Geoinformatik (ab 3.Sem.), Informatik Lehramt Sek.II/I Bereich B (ab 3.Sem.) und Nebenfachinformatik (Diplom)
Vorkenntnisse: Grundvorlesungen Informatik (oder vergleichbare Kenntnisse)
Leistungsnachweis: Diplom-Studiengang, Staatsexamen Sek.II/I
Anmeldung: Per Email via pp2000@math.uni-muenster.de, Subject: "Anmeldung: ProPra2000" oder persönlich bei der Vorbesprechung.

Belegnummern etc. findet man z.Bsp. auf der Seite im kommentierten Vorlesungsverzeichnis. Darüber hinaus werden aktuelle Hinweise natürlich hier bekanntgegeben. Ansonsten:

Ab dem WS00/01 findet das Programmierpraktikum dann immer im Wintersemester statt!

Inhalt

Im Programmierpraktikum soll ein Software-Entwicklungsprozess an einem größeren Softwaresystem in einem möglichst realistischem Rahmen kennengelernt werden. Zielsetzung und Gruppenaufteilung im Groben werden als Rahmenbedingungen vorgegeben. Zu Beginn des Praktikums werden die Teilnehmer in Gruppen aufgeteilt. In ihnen werden Feinanforderungen und Schnittstellen der zu konstruierenden Teilsysteme diskutiert und festgelegt. Zu den weiteren Aufgaben einer solchen Praktikumsgruppe gehört auch das Festlegen (und Einhalten!) von Deadlines sowie Arbeitsteilung und Dokumentation. Die Umsetzung einzelner Systemkomponenten erfolgt danach selbständig durch die einzelnen Gruppenmitglieder wobei gemeinsam genutzte Komponenten berücksichtigt werden sollen. Für die Systemspezifikation wird die UML (Unified Modeling Language) verwendet und für die entsprechende Systemimplementierung die Programmiersprache JAVA.

Im Rahmen des Praktikums wird die Funktionalität eines Softwaresystems schrittweise festgelegt werden und anschließend entworfen, implementiert, getestet und dokumentiert werden. Die im Praktikum gestellten Systemanforderungen sind an die heutige und zukünftige Softwarepraxis angelehnt. Dies gewährleistet ein wirklichkeitsnahes Arbeiten (mit allem zu erwartenden Chaos ;-))

Literatur und Materialien

Beispiele

Ein umfangreiches SE-Dokument, an dem wir uns im Kurs etwa orientieren können, ist z.Bsp. die Dokumentation zu Hire-A-Tire, die aus dem kurzen Lastenheft dazu entstand.

Thema UML

Im Laufe der Vorbereitung hat sich der Oesterreich [Öst97] als wirklich wesentliche Grundlage herausgestellt, nach Möglichkeit sollten sich alle Treilnehmer ein Exemplar besorgen, einige Exemplare werden wir noch zur Verfügung stellen. Außerdem gibt es die Einführung (Vortrag) von Jörg Graf, und diverse einführende Artikel. Interessant ist ggf. auch die Reference-Page.
Graf99
J. Graf, Softwaretechnik mit der UML (auch als lokale Kopie).
Öst97
B. Oesterreich, Objektorientierte Softwareentwicklung mit der Unified Modeling Language, Oldenburg Verlag, 1999
Wahl98
G. Wahl, UML kompakt

Thema XML

Hinreichend für diesen Kurs ist vermutlich der Übesichtsartikel aus dem Informatik-Spektrum. Ansonsten hilft ggf. ein gelegentlicher Blick in das XML-Handbook.
Tolk99
R. Tolksdorf, XML und darauf basierende Standards: Die neuen Auszeichnungssprachen des Web Informatik-Spektrum 22/6 pp 407-412, Dez. 1999, Springer. (auch als lokale Kopie)
Gold98
Ch. F. Goldfarb, P. Prescod, The XML Handbook, Prentice Hall, 1998.

weitergehende Literatur

Bal96
Helmut Balzert, Lehrbuch der Software-Technik: Software-Entwicklung, Spektrum Akademischer Verlag, 1996.
CY94a
P. Coad and E. Yourdon, Objektorientierte Analyse, Prentice Hall, München, 1994.
CY94b
P. Coad and E. Yourdon, Objektorientiertes Design, Prentice Hall, München, 1994.
DZ88
Stefan Dissmann and Volker Zurwehn, Software-Praktikum, Teubner, 1988.
La99
Script (Fragment) zum Programmierpraktikum SS99
La97
Script (Fragment) zum Programmierpraktikum SS97

Dietmar Lammers
Last modified: Wed Jul 5 14:00:28 MET DST 2000