Diplomarbeithg10013/Php/mySchedule_2007_11...Meine hier vorliegende Diplomarbeit f¨uhre ich an der...

97
Konzeption und Entwicklung eines Frameworks f ¨ ur Stundenplan-Portale Diplomarbeit zur Erlangung des akademischen Grades Diplom-Informatiker (FH) vorgelegt dem Fachbereich Mathematik, Naturwissenschaften und Informatik der Fachhochschule Gießen-Friedberg von Claudius Brandt im Juni 2003 Referent: Herr Dr.rer.nat., Dipl.-Inform. Peter Kneisel Korreferent: Herr Dr.biol.hom., habil., Dipl.-Math. Oskar Hoffmann

Transcript of Diplomarbeithg10013/Php/mySchedule_2007_11...Meine hier vorliegende Diplomarbeit f¨uhre ich an der...

  • Konzeption und Entwicklung einesFrameworks für Stundenplan-Portale

    Diplomarbeit

    zur Erlangung des akademischen Grades Diplom-Informatiker (FH)vorgelegt dem Fachbereich Mathematik, Naturwissenschaften und

    Informatik der Fachhochschule Gießen-Friedberg

    von

    Claudius Brandtim Juni 2003

    Referent: Herr Dr.rer.nat., Dipl.-Inform. Peter KneiselKorreferent: Herr Dr.biol.hom., habil., Dipl.-Math. Oskar Hoffmann

  • Inhaltsverzeichnis

    1 Einleitung 51.1 Problemstellung und Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Geplante Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    2 Umfeld 92.1 Arbeitsumfeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.2 State of Art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    2.2.1 Softwareangebot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.2 Online-Angebot von Hochschulen . . . . . . . . . . . . . . . . . . . 11

    3 Aufgabe 173.1 Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.2 Use-Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    4 Konzept 234.1 Allgemeine Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.2 Wahl der Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.3 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.4 Datenbankstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    4.4.1 Grundstruktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.4.2 Stundenplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.4.3 Zusatzinformationen . . . . . . . . . . . . . . . . . . . . . . . . . . 354.4.4 Mailingliste und Statistik . . . . . . . . . . . . . . . . . . . . . . . . 37

    4.5 Fehlerkonzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.6 Stundenplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    4.6.1 Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.6.2 Stammdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.6.3 Änderungskonzept . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.6.4 Zusatzinformationen . . . . . . . . . . . . . . . . . . . . . . . . . . 434.6.5 myStundenplan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.6.6 Drucken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.6.7 Statistik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.6.8 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    3

  • 4 INHALTSVERZEICHNIS

    4.6.9 Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484.6.10 Mailingliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

    5 Realisierung 515.1 Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.2 Modulüberblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    5.2.1 Allgemein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545.2.2 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565.2.3 Erweiterungen - Stundenplan . . . . . . . . . . . . . . . . . . . . . 57

    5.3 Wesentliche Bestandteile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655.3.1 Die Klasse

    ”import gpuntis“ . . . . . . . . . . . . . . . . . . . . . . 65

    5.3.2 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755.4 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    6 Beurteilung 816.1 Vergleich Vorher-Nachher . . . . . . . . . . . . . . . . . . . . . . . . . . . 816.2 Mögliche Systemerweiterung . . . . . . . . . . . . . . . . . . . . . . . . . . 82

    7 Zusammenfassung und Ausblick 85

  • Kapitel 1

    Einleitung

    1.1 Problemstellung und Zielsetzung

    Die vorliegende Diplomarbeit befasst sich mit der Konzeption und Entwicklung eines Fra-meworks für Stundenplan-Portale. Hierbei wurde ein besonderer Schwerpunkt auf die leich-te Erweiterbarkeit des Frameworks gelegt. Außerdem wurden für das System eine Vielzahlvon Funktionen erstellt, die das Bearbeiten und Verwalten von Stundenplänen ermöglichenund vereinfachen. Wie geschah dies bisher?

    Zur Verwaltung der Stundenpläne wird gegenwärtig an der Fachhochschule (FH)Gießen-Friedberg eine Software eingesetzt, die von einer Gruppe von Studenten währendeines Softwarepraktikums erstellt worden ist. Die Software läuft auf dem FH-Server undsetzt ein LAMP1 System ein. Die Funktionalität ist sehr eingeschränkt und erlaubt esnur, einen Stundenplan gleichzeitig zu verwalten. Über eine Import-Schnittstelle kann maneinen Stundenplan importieren, ist jedoch auf das Format der Software gp-Untis festgelegt.Die bestehenden Unterrichte kann man verlegen, löschen oder auf der Basis vorhandenerStammdaten neu hinzufügen. Die Stundenpläne werden graphisch nach Auswahl eines Se-mesters, Dozenten oder Raums, angezeigt.

    Hierbei gibt es eine Reihe von Problemen. Das ganze System ist statisch aufgebautsowie nur schwer und unter erheblichem Aufwand veränderbar. Vor allem die Möglichkeit,mehrere Stundenpläne gleichzeitig verwalten zu können, fehlt. Die Festlegung auf das Im-portieren von gp-Untis-Dateien schränkt die Verwendbarkeit des Systems weiter ein. Esgibt zwar die Möglichkeit, Unterrichte zu bearbeiten, jedoch tritt hierbei das Problem auf,dass man diese Änderungen nicht in die gp-Untis-Software übernehmen kann. Dazu wäredas Nachtragen und somit der doppelte Arbeitsaufwand notwendig. Dadurch kann z.B.das Problem entstehen, dass durch den Import eines neuen Stundenplans die eingegebenenÄnderungen überschrieben werden und verloren gehen.

    Vor dem Hintergrund dieser Probleme ist das Ziel dieser Arbeit die Konzeption undEntwicklung eines Frameworks (siehe Definition 3.1 auf Seite 17) für Stundenplan-Portale.

    1Damit wird ein System bezeichnet, welches aus den vier Komponenten Linux, Apache, mySQL undPHP besteht.

    5

  • 6 1 Einleitung

    Das neue System wird die bestehenden Probleme beheben und eine Reihe weiterer Funk-tionen zur Verfügung stellen. Diese sollen den Benutzer- sowie Administrationskomforterheblich vergrößern. Es wird möglich sein, mehrere Stundenpläne gleichzeitig zu verwal-ten. Der angezeigte Stundenplan soll sich dabei aus einem Hauptplan und beliebig vielenZusatzplänen zusammensetzen lassen. Damit wird es möglich sein, einzelne Teilbereicheeines Plans auszugliedern und von anderen Fachbereichen verwalten zu lassen.Über die Anzeige eines Deltas zweier Stundenpläne können vor allem bei einer neuenStundenplanversion schnell und einfach erfolgte Änderungen nachvollzogen werden. Einweiterer Punkt wird die Möglichkeit sein, den einzelnen Funktionen unterschiedlicheBenutzerrechte zuzuteilen, wodurch bewirkt wird, dass z.B. bei der Anzeige der Stun-denpläne dem Administrator bei jedem Unterricht Symbole zur Verfügung stehen, mitder sich die Unterrichte bearbeiten lassen. Durch das Anbieten von Mailinglisten fürUnterrichte, Semester und Professoren wird die Kommunikation zwischen Dozenten undStudenten stark vereinfacht und somit gefördert. Das Informationsangebot soll, sofern dieMenge an Informationen zu groß ist, durch geeignete Filtermethoden eingeschränkt werdenkönnen. Eine genaue Auflistung aller geplanten Funktionalitäten findet man in Kapitel 3.1.

    1.2 Geplante Vorgehensweise

    Kapitel 1: Dieses Kapitel befasst sich mit der Problemstellung und Zielsetzung dieserDiplomarbeit.

    Kapitel 2: In Kapitel 2 wird anhand einer Marktanalyse der aktuelle Stand der Dingedargestellt. Der Softwaremarkt für Stundenplanprogramme wird hierbei analysiert und dasAngebot von Hochschulen betrachtet. Anschließend wird das Umfeld vorgestellt, unter demdiese Arbeit erstellt wurde.

    Kapitel 3: Kapitel 3 befasst sich mit der genauen Aufgabenstellung und zeigt anhandvon Use-Cases die Möglichkeiten der Benutzer im System.

    Kapitel 4: In Kapitel 4 erfolgt die Systemkonzeption. Neben der Systemstruktur wirdhier die Datenbankstruktur und die Fehlerbehandlung erklärt. Am Ende wird dann dieSystemerweiterung, das Stundenplan-Modul, vorgestellt.

    Kapitel 5: Kapitel 5 befasst sich mit der Realisierung des Systems. Hier findet maneinen kompletten Modulüberblick. Im Anschluss daran werden einzelne Abschnitte derEntwicklung näher betrachtet.

  • 1.2 Geplante Vorgehensweise 7

    Kapitel 6: Im 6. Kapitel erfolgt eine Bewertung dieser Arbeit. Dabei wird ein Vergleichzu der vorher eingesetzten Software gezogen.

    Kapitel 7: Im 7. Kapitel steht die Zusammenfassung über den Verlauf der Arbeit sowiedas Ergebnis, bevor ein Ausblick auf die Weiterführung des Systems erfolgt.

  • 8 1 Einleitung

  • Kapitel 2

    Umfeld

    Das folgende Kapitel stellt anhand einer Marktanalyse die notwendigen Grundlagen zurVerfügung, um das neu entwickelte System einordnen zu können.

    2.1 Arbeitsumfeld

    Meine hier vorliegende Diplomarbeit führe ich an der FH Gießen-Friedberg, FachbereichMathematik, Naturwissenschaften und Informatik (MNI), durch. Betreut werde ich dortvon Herrn Prof. Dr. Kneisel. Herr Prof. Dr. Kneisel kümmert sich im Moment um die Erstel-lung, Änderung und die Online-Darstellung des Stundenplans in diesem Fachbereich. Fürdie Stundenplanerstellung verwendet er die Software gp-Untis der Firma Gruber&Peters.Den dazugehörigen Online-Stundenplan findet man auf seiner privaten Homepage1. Fürdie Online-Darstellung werden in PHP erstellte Software-Module eingesetzt. Diese wurdenim Rahmen eines Softwaretechnik-Praktikums entwickelt und enthalten folgende Funktio-nalitäten:

    • die Anzeige von Stundenplänen nach Semester, Dozent(in) oder Raum

    • den Import von gp-Untis-Dateien (Es kann immer nur ein Plan verwaltet werden)

    • die Option der Unterrichtsänderung (hinzufügen, löschen, verschieben)→ Hierbei können neue Dozenten, Räume oder Kurse angelegt werden

    • Parameter einstellen:

    – Datenbank-Zugangsdaten

    – Sichtbarkeit des Stundenplans (Admin, Professor, Student)

    – Login- und Action-Zeit

    – Email des Administrators

    1http://homepages.fh-giessen.de/∼hg10013/

    9

  • 10 2 Umfeld

    Das Angebot wird momentan von 1222 Studenten und mind. 40 Professoren aus dem Fach-bereich MNI genutzt2. Der Stundenplan wurde bis zum 10.04.2003 36.029 mal und bis zum06.05.2003 36.849 mal abgerufen. Daraus ergibt sich eine Nutzung von ungefähr 30 Aufru-fen pro Tag oder 900 im Monat. Aufgrund der großen Dynamik des Unterrichtsangebotesund der Dozenten (neue Dozenten, Forschungssemester) fängt die Stundenplanerstellungzu Beginn eines Semesters fast bei Null an. Einzig die Stammdaten für Semester, Dozenten,Räume und Kurse sind noch verwendbar. Während der Erstellung der ersten Stundenplan-version ergibt sich ein Zeitaufwand von ungefähr 6 Stunden in der Woche. Während einesSemesters beträgt der Wartungsaufwand ca. 2,5 Stunden.

    2.2 State of Art

    Es gibt zwei Punkte, die ich in meiner Analyse betrachte. Zum Einen das Softwareangebotvon Stundenplan-Erstellungstools (siehe [6]), und zum Anderen das aktuelle Angebot vonOnline-Stundenplänen an Hochschulen (siehe [5]). Besonderes Augenmerk habe ich dabeiauf die logische Struktur, die graphische Darstellung und den praktischen Nutzen gelegt.Die Ergebnisse werden im Folgenden vorgestellt.

    2.2.1 Softwareangebot

    Etwa jede zweite deutsche Schule verwendet mittlerweile eine Software für die Stundenpla-nung3. Man könnte meinen, dass es sich bei der Stundenplanung um eine ideale Aufgabefür ein relativ simples Computerprogramm handelt. Es geht ja

    ”nur“ um eine möglichst

    effektive Zuordnung von Lehrern, Klassen, Schulräumen und Unterrichtsfächern. Was inder Theorie so einfach erscheint, erweist sich in der Praxis jedoch als gewaltiges Problem.Bis zu 60 Stunden reine Rechenzeit braucht ein moderner PC, um aus den zuvor einge-gebenen Anforderungen einen Stundenplan-Entwurf zu erstellen. Und selbst dieser kanndann immer noch Fehler enthalten. Es gibt mit dem Bellmann-Algorithmus ein Verfah-ren, das von verschiedenen Vorschlägen den jeweils Besten auswählt und zur Grundlageweiterer Berechnungen macht. Auch wenn das Bellmann-Verfahren bei ausreichender Re-chenzeit brauchbare Ergebnisse liefert, ist es doch eine unbefriedigende Lösung, da es keine100%ige Lösung liefert. Dies ist wahrscheinlich ein Grund dafür, warum es verhältnismäßigwenig Anbieter gibt, die ein vollständiges Tool anbieten. Führend auf diesem Gebiet sinddie Software

    ”gp-Untis“ und der

    ”Turbo-Planer“. Aufgrund der notwendigen Nachbearbei-

    tung eines jeden erstellten Stundenplans gibt es Anbieter, die das Problem der richtigenZuordnung von Komponenten weiterhin dem Lehrer überlassen, ihm jedoch für diese Auf-gaben Systeme zur Verfügung stellen, die ihm helfen, den Überblick nicht zu verlieren undauf Probleme und Fehler hinweisen. Hier sei vor allem die Software skêd4 zu nennen.

    2Stand: 06.05.20033Stand: 48/20004www.sked.de

  • 2.2 State of Art 11

    Meine Recherche im Internet brachte schnell eine Vielzahl von Ergebnissen. Diese sind inTabelle 2.1 auf Seite 12 aufgelistet. Neben dem Anbieter und dessen Webseite wird nochangegeben, ob die Software zum automatischen Erstellen von Stundenplänen geeignet istund ob sie bei der manuellen Generierung unterstützend wirkt.

    2.2.2 Online-Angebot von Hochschulen

    Wurde im vorherigen Abschnitt das Augenmerk auf die zur Erstellung notwendige Softwaregelegt, so betrachten wir hier das Hochschulangebot von Online-Stundenplänen. Leiderwar anhand des Angebots nicht erkennbar, ob die Pläne mit einer der oben vorgestelltenProdukte erstellt wurden. Die Analyse will dabei vor allem auf den momentanen Funkti-onsumfang eingehen und zeigen, was bereits machbar ist und angeboten wird. Bei der Artder Darstellung sind zwei verschiedene Ansätze zu erkennen. Auf der Einen Seite wird derPlan graphisch dargestellt, d.h. man kann aus dem Plan sofort erkennen an welchem Tagund um welche Uhrzeit ein Unterricht angeboten wird. Auf der anderen Seite gibt es dietabellarische Darstellung. Hierbei werden die Unterrichte in Gruppen zusammengefasst,z.B. in Semester, und untereinander, meist alphabetisch sortiert, dargestellt. Diese Formentspricht weitestgehend einem typischen Vorlesungsverzeichnis. Diese Art der Darstellunghabe ich besonders häufig an Universitäten gefunden.

    Bei der Betrachtung des vorhanden Funktionsumfangs (um die angebotenen Informa-tionen bearbeiten zu können) sind sehr große Unterschiede zwischen den einzelnen Hoch-schulen erkennbar. Ich habe darauf geachtet, inwiefern die angezeigten Informationen durchgeeignete Filtermethoden eingeschränkt werden können. Es zeigte sich, dass dieser Bereichstark vernachlässigt wird. Gerade bei den tabellarischen Darstellungen sind die Möglich-keiten nicht ausreichend. Ohne eine gewisse Erfahrung mit dieser Art der Darstellung istes schwierig, schnell die gesuchten Informationen zu finden.Eine gute Idee ist das Anbieten von Zusatzinformationen rund um den Stundenplan. Hier-bei gibt es die Möglichkeit, direkt Informationen zu den dargestellten Unterrichten, Leh-rern oder Räumen zu erhalten. Das bieten aber nur sehr wenige Hochschulen an. DasAusdrucken wird weitestgehend über die Browserfunktion angeboten, was sicher eine akt-zeptable Lösung ist, aber aufgrund der schwierigen Steuerung der Ausgabegröße nichtbesonders gut umgesetzt wird. Diese Möglichkeit wird nur für graphisch dargestellte Stun-denpläne angeboten. Die Möglichkeit, sich eigene Stundenpläne erstellen zu können wurdevon keiner von mir untersuchten Hochschule angeboten.

  • 12 2 Umfeld

    Name Hersteller / Webseite Erstellen Unterstütztgp-Untis Gruber&Petters Ja Ja

    www.grupet.atSPLAN HKS-Soft Nein Ja

    www.hks.orgIris-Planung Bitbybit Nein Ja

    vermeer.bitbybit-is.nlCURRICULUM Stüber Software Nein Ja

    www.stueber.dedaVinci Stüber Software Nein Ja

    www.stueber.deSSE-Stundenplan-Verwaltung Seiz Nein Ja

    www.seiz.chWILLI Brandl Nein Ja

    amds.brandl.bei.t-online.deWinStupas Nili-Software Ja Ja

    www.nili-software.deTurbo-Planer Haneke-Software Ja Ja

    www.haneke.deWin-GSV Gelos Nein Ja

    www.gelos.deKONREX Stundenplanung ORGANATICS KG Ja Ja

    www.organatics.deStundenplanmanager Peter Graf Nein Ja

    www.stundenplanmanager.deIndiware Stundenplanmodul Indiware Nein Ja

    www.indiware.deStundenplaner 2000 Hans-Peter Kohl Bedingt Ja

    www.hans-peter-kohl.deOMNIA-Stundenplanung Ingenius Software Nein Ja

    www.omnia-schule.deDomino 2001 Domino Nein Ja

    www.dominosoft.deWinSchool RDT Nein Ja

    www.rdt.deAu.St.Er. Eilert Brinkmeyer Ja Ja

    www.austerseite.deCUnSt CUnST Ja Ja

    www.cunst2000.de

    Tabelle 2.1: Anbieter von Stundenplan-Software (Stand: 12.03.2003)

  • 2.2 State of Art 13

    Alles in allem ist ein Bestreben zu erkennen, die Stundenpläne online anzubieten, solltees auch nur in Form eines PDF-Dokuments sein. Das Angebot und die Darstellung laufenjedoch zwischen den einzelnen Hochschulen weit auseinander. An vielen wird sogar in deneinzelnen Fachbereichen eine unterschiedliche Darstellung angeboten. Es zeigt sich deutlich,dass das Anbieten von Stundenplänen im Internet noch ein

    ”Zusatz“-Dienst ist. Es gibt

    kaum professionelle Software-Lösungen, so dass das Angebot meist auf einer individuellenEntwicklung beruht und abhängig von dem jeweiligen Fachbereich ist.

    Ich habe die Angebote folgender Hochschulen untersucht:

    • FH-Darmstadt, Fachbereich Informatik

    • FH-Konstanz

    • FH-Köln

    • FH-Gießen, Fachbereich MNI

    • UNI-Gießen, Fachbereich Mathematik und Informatik

    FH-Darmstadt, Fachbereich Informatik

    Link: http://www.fbi.fh-darmstadt.de

    Art der Darstellung: Graphisch

    Beschreibung: Man hat die Möglichkeit, sich Stundenpläne für Semester,Professoren und Räume anzeigen zu lassen.

    Fazit: Das Angebot ist sehr übersichtlich und strukturiert aufgebaut.Nach Auswahl eines Professors oder Raums kann man sichüber beides Zusatzinformationen anzeigen lassen. Auffällig ist,dass nicht alle Räume verlinkt sind, obwohl sie auf dem Start-bildschirm auswählbar sind. Wenn ein Professor keine eigeneHompage besitzt, wird ein leeres Dokument angezeigt.

  • 14 2 Umfeld

    FH-Konstanz

    Link: http://lvp.fh-konstanz.de/

    Art der Darstellung: Graphisch

    Beschreibung: Nach Auswahl des gewünschten Fachbereiches kommt manzum eigentlichen Stundenplan. Hierbei werden alle Semesteruntereinander angezeigt. Die Anzeigen von Räumen und Pro-fessoren erfolgt über Links und stellt weitere Informationenzur Verfügung. Man hat die Möglichkeit, über Checkboxeneinzelne Semester auszublenden. Dies soll vor allem für denDruck verwendet werden.

    Fazit: Eine sehr übersichtliche Darstellung und vor allem für die gan-ze Hochschule einheitlich. Die Möglichkeit, über Checkboxenden Druckbereich zu verkleinern, ist praktisch, jedoch werdenstandardmäßig immer erst einmal alle Semester gleichzeitigdargestellt.

    FH-Köln

    Link: http://lptp12.gm.fh-koeln.de/stundenplan

    Art der Darstellung: Graphisch

    Beschreibung: Die Auswahl ist auf einzelne Semester beschränkt. Bei derAnzeige werden nur Abkürzungen der einzelnen Unterrichteangezeigt, beim Überfahren mit der Maus wird in der Status-zeile des Browsers der Name des Professors und des Kursesangezeigt. Die Kurse sind farblich in Gruppen eingeteilt, so-dass Vorlesungen, Praktika, Seminare etc. in unterschiedlichenFarben angezeigt werden.

    Fazit: Es ist leicht, den passenden Stundenplan für ein Semester an-gezeigt zu bekommen, jedoch ist die Darstellung sehr unüber-sichtlich. Die Zeitlinie ist nur einmal am unteren Rand vorhan-den und macht das genaue Ablesen, wann ein Kurs beginnt,sehr schwierig. Aufgrund der Abkürzungen und der farblichenVielfalt ist es für Aussenstehende schlicht unmöglich, schnellan Informationen zu kommen. Es gibt einen Login-Bereich,um den Plan direkt zu administrieren.

  • 2.2 State of Art 15

    FH-Gießen, Fachbereich MNI

    Link: http://homepages.fh-giessen.de/∼hg10013/

    Art der Darstellung: Graphisch

    Beschreibung: Man hat die Möglichkeit, sich den Stundenplan nach Semesteroder Raum anzeigen zu lassen. Der Stundenplan wird nichtauf der Fachbereichsseite angezeigt, sondern auf der Webseitedes dafür zuständigen Professors.

    Fazit: Das Angebot ist sehr übersichtlich aufgebaut. Nach Auswahleines bestimmten Stundenplans kann man von dort direkt wei-ternavigieren und muss nicht auf die Startseite zurück. Esgibt keine Möglichkeit, die angezeigten Stundenpläne direktausdrucken zu lassen. Dass der Stundenplan unterhalb derWebseite des Professors angeboten wird, ist sehr unpraktisch.Aufgrund des Seitenaufbaus ist es nicht möglich einen Linkauf den Plan zu setzen. Man landet jedesmal auf der Startsei-te des Professors und muss von dort zum Stundenplan-Portalnavigieren.

    UNI-Gießen, Fachbereich Mathematik und Informatik

    Link: http://www.math.uni-giessen.de/

    Art der Darstellung: Tabellarisch nach Veranstaltungen

    Beschreibung: Man erhält eine große Tabelle, die in die zwei Bereiche Vorle-sungen und Praktika unterteilt ist. Ansonsten erhält man denKursnamen, Dozentennamen und Zeit/Ort der Veranstaltung.Der Dozentenname ist verlinkt und führt auf die Homepagedes Dozenten.

    Fazit: Entspricht einem Vorlesungsverzeichnis und bietet bis auf dieVerlinkung der Dozenten kaum Vorteile gegenüber der Pa-pierform. Das Problem hierbei ist vor allem, dass man dasAngebot nicht einschränken kann und somit der Informati-onsumfang sehr groß ist.

  • 16 2 Umfeld

  • Kapitel 3

    Aufgabe

    In diesem Kapitel wird die Aufgabenstellung beschrieben. Es zeigt die Anforderungen,welche an das System gestellt werden. Desweiteren werden im Abschnitt

    ”Use-Cases“ die

    Möglichkeiten der Benutzer dargestellt und erläutert.

    3.1 Aufgabenstellung

    Meine Aufgabe ist es, ein Framework zu entwickeln, welches die leichte Einbindung undVerwaltung von Stundenplan-Portalen ermöglicht. Dieses soll als eine Web-Lösung erstelltwerden. Die Funktionsfähigkeit orientiert sich an den momentan aktuellen Browsern. Diesesind der Internet-Explorer 5.x sowie der Netscape-Navigator 6.x.

    Zu allererst möchte ich den Begriff”Framework“ definieren, um festzulegen, was wir

    darunter verstehen.

    Definition 3.1:

    Ein Framework ist ein Hilfsmittel zur Bereitstellung und einfachen War-tung bereichsspezifischer Lösungen. Diese Domänenlösungen zeichnensich durch eine wohlüberlegte Infrastruktur aus, die das Hinzufügen neuerbzw. das Ersetzen vorhandener Bestandteile mit minimaler Auswirkungauf die anderen Komponenten des Rahmenwerks gestatten.

    Daraus ergeben sich für die Grundstruktur des Systems folgende Anforderungen:

    • Die Verarbeitung und die Ausgabe sollten soweit voneinander getrennt sein, dass esleicht möglich ist, Änderungen vorzunehmen. Dies wird dadurch erreicht, dass jedeFunktion die auszugebenden Daten als Rückgabewert an die Hauptseite übergibt.Dort wird die Ausgabedatei zusammengefügt und an den Browser geschickt.

    17

  • 18 3 Aufgabe

    • Es müssen Mechanismen vorhanden sein, die es ermöglichen, individuell auf Ereig-nisse zu reagieren und den Standardablauf zu umgehen. Dies wird konkret durch zweiMethoden ermöglicht. Zum Einen ist es möglich, durch das Setzen eines Flags dieStandardausgabe zu umgehen und stattdessen eine komplett neue Ausgabe zu ge-nerieren (d.h. ohne festgelegtes Layout). Und zum Anderen gibt es die Möglichkeit,jeder Ausgabeseite einen eigenen JavaScript-Code zu übergeben, der nach Aufbauder Seite ausgeführt wird.

    • Es muss leicht möglich sein, neue Module hinzuzufügen. Diese sollten keinen Einflussauf die bereits vorhandenen Module haben oder von diesen abhängig sein.

    • Es muss leicht integrierbar sein, d.h. es sollte alleinstehend (”Standalone“) lauffähig

    sein und in bestehende Webseiten integriert werden können. Dabei sollte die Einbin-dung in eine framebasierte Webseite ohne größeren Aufwand möglich sein.

    Die erweiterten Anforderungen liegen in der Unterstützung von Stundenplan-Portalen.Daraus ergeben sich zusätzliche Anforderungen:

    • Es sollen Stundenpläne angezeigt werden können. Dabei soll man zwischen Semester,Raum und Lehrer unterscheiden können.

    • Es wird die Möglichkeit geben, sich seinen persönlichen Stundenplan (myStunden-plan) zusammenzustellen. Dieser kann Kurse aus allen Semestern beinhalten. Diessoll den Studenten die notwendige Arbeit ersparen, sich Ihren Stundenplan manuellzu erstellen.

    • Es muss möglich sein, bereits bestehende Stundenpläne zu importieren. Hierfür wirdes eine allgemeine Import-Schnittstelle geben. Für jedes Dateiformat, welches manimportieren möchte, muss eine eigene Import-Klasse geschrieben werden. Am Beispielder Software gp-Untis werde ich eine solche Klasse entwickeln.

    • Wie die Importfunktion muss auch bei der Exportfunktion eine Klasse für das Da-tenformat geschrieben werden. Diese werde ich für die gp-Untis-Software schreiben.Der große Vorteil besteht hierbei, dass in Zukunft Änderungen online vorgenommenwerden können und über den Export in der Hauptsoftware zur Verfügung stehen.

    • Es wird die Möglichkeit geben, mehrere Stundenpläne gleichzeitig zu verwalten. Hier-bei kann man zwischen Haupt- und Zusatzplänen unterscheiden. Ein Zusatzplan hatdenselben Aufbau wie ein Hauptplan. Die Anzeige setzt sich aus genau einem Haupt-plan und beliebig vielen Zusatzplänen zusammen. Der Vorteil dieser neuen Funkti-onsweise besteht darin, Stundenpläne bestimmter Fachbereiche in Form von Zusatz-plänen von diesen alleine verwalten zu lassen. Der Stundenplanverwalter braucht siedann nur noch importieren und erweitert somit das Stundenplanangebot.

  • 3.2 Use-Cases 19

    • Es soll möglich sein, das Delta (Daten hinzugekommen, entfernt oder verändert)zwischen zwei Stundenplänen anzeigen zu lassen. Damit kann der Nutzer nach derVeröffentlichung einer neuen Stundenplanversion schnell überprüfen, ob sich an fürihn relevanten Kursen etwas verändert hat.

    • Es muss möglich sein, bestehende Stammdaten (Raum, Kurs, Lehrer) eines Stunden-plans zu bearbeiten und neue hinzuzufügen. Damit diese Daten exportiert werdenkönnen, ist es notwendig, diese Änderungen in dem Format des Stundenplans durch-zuführen, zu dem die Daten gehören oder gehören sollen. Dafür müssen spezielleFunktionen geschrieben werden, welche ich auch für das gp-Untis-Format schreibenwerde.

    • Es soll möglich sein, zu den Stammdaten Zusatzinformationen anzulegen. Diese sollendem Nutzer eine schnelle Orientierung über einen Kurs, einen Lehrer oder einen Raumbringen.

    • Es soll eine Statistik über die Kurswahlen in den selbsterstellten Stundenplänen ge-ben. Die aus der Anzahl der Kurswahlen gewonnenen Erkenntnisse, können in kom-menden Stundenplänen berücksichtigt werden.

    • Es soll möglich sein, sich für Mailinglisten für Kurse, Lehrer und Klassen anzumel-den. Ziel ist es, dass sowohl die Lehrer als auch das Sekretariat kurzfristige Unter-richtsänderungen, wie z.B. Ausfall durch Krankheit, an die betroffenen Studentenweiterleiten können.

    3.2 Use-Cases

    In Abbildung 3.1 auf Seite 20 kann man sehen, auf welche Weise die Benutzer mit demSystem interagieren können. Die Anzahl der Benutzer ist statisch auf vier begrenzt.Es sind der Administrator (= Admin), der Lehrer, das Sekretariat und der Student.Zusätzlich gibt es noch den Benutzer

    ”Implementierer“, welcher nicht direkt mit dem

    System in Verbindung steht, dieses aber verändert.Die einzelnen Funktionalitäten:

    • Parameter einstellenIn einer Datei werden alle globalen Einstellungen eingetragen. Hierzu gehören z.B.die Datenbankzugangsdaten und die Style-Sheet-Zuordnungen.

    • Stammdaten bearbeitenStammdaten zu Lehrern, Räumen, Kursen und Unterrichten ändern, löschen undhinzufügen.

  • 20 3 Aufgabe

    Abbildung 3.1: Use Case des Frameworks

  • 3.2 Use-Cases 21

    • Einstellungen ändernHierbei kann man den aktuellen Stundenplan auswählen. Dieser setzt sich aus einemHauptplan und beliebig vielen Zusatzplänen zusammen. Die Menüeinträge kannman für die Benutzer sichtbar oder nicht sichtbar machen. Außerdem ist es möglich,den Benutzern für bestimmte Klassen und Funktionen unterschiedliche Rechtezu erteilen. Dies ist zum Beispiel bei den Zusatzinformationen zu den Stammda-ten der Fall, bei denen man unterscheiden kann, wer diese bearbeiten darf oder nicht.

    • Import / ExportDamit können Haupt- und Zusatzpläne in das System importiert und bei Bedarfwieder exportiert werden.

    • Zusatzinformationen zu den Stammdaten bearbeitenZu den Stammdaten Raum, Kurs und Lehrer können die vorhandenen Zusatzinfor-mationen bearbeitet oder neu hinzugefügt werden.

    • Delta ansehenErmöglicht die Betrachtung des Deltas von zwei Stundenplänen.

    • Stundenpläne ansehen und druckenIst die Hauptaufgabe des Stundenplan-Moduls. Zeigt die Stundenpläne nach Semes-ter, Lehrer oder Raum an. Ermöglicht den Ausdruck eines einzelnen Plans. Hierüberlassen sich die Zusatzinformationen zu den Stammdaten abrufen.

    • System erweiternHierunter fällt das Entwickeln neuer Module und das Erweitern bestehender Moduledurch neue Funktionen.

    • InstallierenEinrichtung der Software. Hierzu gehört das Anlegen der Datenbank, das Setzen derPasswörter und die Zuordnung der Style-Sheets. Außerdem müssen alle Pfadangabengesetzt werden.

    • Bei Mailinglisten an-/abmeldenDas Ein- und Austragen in Mailinglisten zu Semestern, Kursen oder Lehrern.

  • 22 3 Aufgabe

    • Eigenen Stundenplan erstellen und druckenDurch Auswahl von einzelnen Kursen kann ein persönlicher Stundenplan erstellt undausgedruckt werden.

  • Kapitel 4

    Konzept

    In diesem Kapitel werde ich das Systemkonzept vorstellen. Zuerst werden AllgemeineGrundlagen definiert und die Wahl der Programmiersprache begründet. Es folgt die Fra-mestruktur sowie das Datenbankkonzept. Im Anschluss daran wird das Fehlerkonzept vor-gestellt und schließlich der Aufbau des Stundenplan-Moduls erklärt wird. Siehe hierzu[Arci01][Pomb96][Sedg92][3].

    4.1 Allgemeine Grundlagen

    Um die im Quellcode verwendeten Variablen besser zuzuordnen, ist die Namensgebungvorgeschrieben. Soweit nicht anders angegeben, werden sie immer klein geschrieben:

    • Variablen innerhalb von FunktionenDiese beginnen immer mit

    ”l “ plus angehängtem Namen.

    • Funktions-Parameter und Schleifen-VariablenBestehen nur aus ihrem Namen.

    • HTML-Formular-VariablenDiese beginnen immer mit

    ”f “ plus angehängtem Namen.

    • globale Klassen-VariablenDiese beginnen immer mit

    ”c “ plus angehängtem Namen.

    • Zusatzvariablen über die URLDiese beginnen immer mit

    ”u “ plus angehängtem Namen.

    • Session-Variablen und Einstellungs-ParameterDiese werden in dem globalen Array

    ”$ SESSION[“NAME“]“ unter dem großgeschrie-

    benen”NAMEN“ gespeichert.

    23

  • 24 4 Konzept

    Die in der Datenbank angelegten Tabellennamen werden ebenfalls nach einem vorgegebe-nen Schema gebildet. Die ersten drei Buchstaben dienen der Zuordnung zu einem bestimm-ten Bereich, es folgt ein Unterstrich und ein selbstgewählter Name.Die bisher vorhandenen Bereiche sind:

    • fraDies sind Tabellen, die zum Framework gehören.

    • stpBezeichnet Tabellen, die zu dem Stundenplan-Modul gehören.

    • zusDies sind die Tabellen, in denen die Zusatzdaten gespeichert werden.

    • mapSo werden die Maptabellen benannt. In Maptabellen werden die Referenzierungenzwischen zwei Tabellen gespeichert.

    • menDiese Tabellen gehören zu den Menüs.

    Um Links zu erstellen, gibt es die Funktion”generiere link(var klasse, var funktion, array

    paramter)“. Diese liefert als Ergebnis den Link auf die Hauptdatei mit den übergebenenParametern.

    4.2 Wahl der Software

    Für die Entwicklung einer dynamischen Web-Anwendung gibt es eine Reihe von Program-miersprachen, die dafür in Frage kommen (siehe [7]-[9]):

    • PHP - Hypertext Preprocessor

    • Perl - Practical Extraction and Reporting Language

    • ColdFusion

    • JSP - Java Server Pages

    • ASP - Active Server Pages

    Bei der Recherche im Internet finden sich zahlreiche Meinungen, die jeweils für bzw. gegenden Einsatz der oben genannten Programmiersprachen sind.Da für den Einsatz von ColdFusion und ASP Lizenzgebühren anfallen, wurden sie nicht indie nähere Auswahl miteinbezogen. Die Sprache Perl ist nicht ausschließlich für den Einstzals Web-Scriptsprache entwickelt worden. Dies führt dazu, dass es an manchen Stellen sehr

  • 4.3 Struktur 25

    kompliziert und umständlich zu nutzen ist. Die JSP haben den großen Vorteil, auf denFunktionsumfang und die Mächtigkeit von Java aufzubauen. Damit ist es möglich, sehrkomplizierte und schwierige Aufgaben zu lösen. Der Nachteil hierbei liegt in der Verwen-dung der JVM (Java Virtual Machine), die die Verarbeitung langsamer macht.Ich habe mich letztendlich für den Einsatz von PHP entschieden und möchte nachfolgenddie Gründe dafür nennen:PHP ist eine leistungsstarke, serverseitige Scriptsprache, mit welcher komplexe Internet-Systeme entwickelt werden können. Die erstellten PHP-Seiten werden auf dem Server aus-geführt und als HTML-Datei an den Client geschickt. Die gesamte Verarbeitung der Datenerfolgt auf dem Server, der Client selbst muss nichts weiter tun, als die gesendete Dateianzuzeigen. Der für uns notwendige Funktionsumfang ist in PHP vollständig enthalten:

    • Datenbankzugriff

    • Session-Management

    • Formularverarbeitung

    • Dateiuploads

    • Benutzerauthentifizierung

    PHP wurde speziell für Webentwicklungen geschrieben (siehe [1]) und zeichnet sich durchseine leichte Erlernbarkeit aus. Im Vergleich zu anderen Sprachen ist ein geringerer Ent-wicklungsaufwand notwendig. Das hohe Maß an Basisfunktionalität sowie die kostenloseVerfügbarkeit (OpenSource) der Sprache sind ein weiterer Pluspunkt. Hinzu kommt noch,dass PHP auf allen bekannten Plattformen nutzbar ist (UNIX, Windows und Grossrechner)und es einen integrierten Support für die meistverwendeten Datenbanken gibt. Ein weiterer,nicht zu unterschätzender Vorteil ist die große Verbreitung und Akzeptanz von PHP. Esgibt eine große Anzahl von Dokumentationen und Hilfen in Form von Foren/Newsgroupsim Web (siehe [2]).

    4.3 Struktur

    Zuerst ein paar Worte zu der Grundstruktur:

    Das System basiert auf einer Ein-Dateien-Lösung. Wird innerhalb des Systems durch dieAuswahl eines Links (dieser kann im Hauptmenü, Untermenü oder auf der Inhaltsseitevorhanden sein) eine neue Seite angefordert, so wird immer die gleiche Datei auf dem Ser-ver angesprochen. Der Name dieser Datei ist in der Variablen $ SESSION[“DATEINAME“]gespeichert.

    Um entscheiden zu können, welcher Inhalt angezeigt werden soll, ist es notwendig diebeiden Parameter

    ”klasse“ und

    ”funktion“ über die URL mit zu übergeben. Sind noch

    zusätzliche Paramter notwendig, so werden diese hinten an die URL angehängt. Jeder Sei-tenaufruf wird nach dem gleichen Schema bearbeitet, welches nachfolgend erklärt wird.

  • 26 4 Konzept

    Die Vorgehensweise:

    Zu Beginn muss eine neue Session angelegt werden. Dies ist notwendig, da mit demnachfolgenden Inkludieren der Datei

    ”parameter.php“ alle globalen Paramter geladen

    und als Session-Variablen gespeichert werden. Wurde bereits eine Session angelegt, sowird diese weiter verwendet. Danach werden die Grundklassen

    ”allgemein klasse“,

    ”er-

    ror klasse“ und”con klasse“ inkludiert und in den Variablen $ SESSION[“ALLGEMEIN“] ,

    $ SESSION[“FEHLERBEHANDLUNG“] und $ SESSION[“CONNECTION“] gespeichert. Da-mit ist die in den Klassen enthaltene Funktionalität von überall nutzbar.

    Mit der zusätzlich inkludierten Klasse”pruef klasse“ beginnt der eigentliche Verarbei-

    tungsablauf. Durch Aufruf der zugehörigen Funktion”pruefen()“ werden alle notwendigen

    Standardprüfungen durchgeführt und die benötigten Variablen gesetzt. Dies soll nachfol-gend erklärt werden.

    pruefen()

    • setze benutzer()überprüft, ob die Session-Variable $ SESSION[“BENUTZER“] vorhanden ist.Ist dies nicht der Fall, so wird die Variable mit dem Inhalt der Variablen$ SESSION[“STANDARD BENUTZER“] belegt. Ist die Variable bereits vorhanden,so ist im System ein Benutzer bekannt. In diesem Fall wird die Zeit, seitdem ereingeloggt ist, auf die aktuelle Systemzeit gesetzt. Dieser Wert wird in der Variablen$ SESSION[“STARTZEIT“] gespeichert.

    • ist timeout()prüft, ob die Loginzeit den Wert in der Variablen $ SESSION[“LOGIN ZEIT [ADMIN| LEHRER | SEKREATARIAT | STUDENT]“] überschritten hat. Ist dies der Fall, sowird eine Fehlermeldung generiert und die relevanten Session-Variablen gelöscht.Diese sind $ SESSION[“BENUTZER“] , $ SESSION[“HM ID“] , $ SESSION[“LOGIN“]und $ SESSION[“MY STUNDENPLAN“]. Damit ist gewährleistet, dass alle notwen-digen Einstellungen neu gesetzt werden und der Benutzer behandelt wird, als würdeer die Seite zum ersten Mal aufrufen. Die Session darf an dieser Stelle nicht zerstörtwerden, da die restlichen Session-Variablen im folgenden Programmablauf nochbenötigt werden.

    • klasse funktion setzen()setzt die beiden Variablen $ SESSION[“KLASSE“] und $ SESSION[“FUNKTION“].Dazu werden die Variablen

    ”klasse“ und

    ”funktion“ aus der URL verwendet.

    Sollten diese Variablen nicht vorhanden sein, werden die Inhalte aus den Variablen$ SESSION[“KLASSE START“] und $ SESSION[“FUNKTION START“] genommen.

  • 4.3 Struktur 27

    • hm um setzen()Diese Funktion setzt die Haupt- und Untermenü-Variablen. Da das System allein-stehend oder aber in Webseiten mit Framestrukturen verwendet werden kann, mussdies bei der Menüerstellung berücksichtigt werden. Wird das System alleinstehendbetrieben, so wird nur eine Datei an den Client gesendet. Diese beinhaltet das Haupt-und Untermenü sowie den Inhalt. In einer Framestruktur gibt es die Möglichkeit, diebeiden Menüs separat in einem eigenen Frame anzeigen zu lassen. Dies geschiehtüber das Einbinden der Hauptdatei in den jeweiligen Frame. Da dort jedoch nur daseinzelne Menü dargestellt werden soll, muss dies bei der Verarbeitung berücksichtigtwerden, was nachfolgend erklärt wird.Zuerst wird geprüft, ob die Variable $ SESSION[“HM ID“] gesetzt ist. Diese Varia-ble wird für die korrekte Darstellung des Untermenüs benötigt. Ist diese Variablenoch nicht gesetzt, so wird durch die beiden Variablen $ SESSION[“KLASSE START“]und $ SESSION[“FUNKTION START“] die aktuelle Id aus der Datenbanktabelle

    ”men hauptmenue“ geholt und der Variablen zugewiesen.

    Wurde in dem System über einen Link ein neues Hauptmenü ausgewählt, so mussdieser Link zusätzlich über die URL die Variable

    ”u id hm“ mit übergeben, in wel-

    cher die Id des ausgewählten Menüs steht. In diesem Fall wird sie der Hauptmenü-Variablen zugewiesen.Im Anschluss erfolgt die Erstellung des Hauptmenüs. Hierbei wird anhand der Va-riablen $ SESSION[“HM SEPARAT“] überprüft, ob das Hauptmenü normal oder überden Inhalt angezeigt werden soll. Ist der Wert der Variablen gleich 0, dann wirddas Hauptmenü normal erstellt. Die Menüeinträge stehen in der Datenbanktabel-le

    ”men hauptmenue“ und werden anhand der Sichtbarkeitsrechte des Benutzers

    ausgelesen und zum Menü zusammengesetzt. Das Ergebnis wird in der Variablen$ SESSION[“HAUPTMENUE“] abgespeichert und bei der Ausgabe der Seite oben mitangezeigt.Ist der Wert der Variablen gleich 1, so soll das Menü separat dargestellt werden. Diesist bei Webseiten mit einer Framestruktur der Fall. Unter diesen Umständen bleibtdie Variable leer. Würde sie gefüllt werden, so würde das Hauptmenü doppelt ange-zeigt werden. Dies liegt daran, dass bei einer separaten Darstellung das Menü nichtüber die Variable $ SESSION[“HAUPTMENUE“] angezeigt wird, sondern als Inhaltder Hauptverarbeitung, so dass dann beide Variablen mit dem gleichen Inhalt gefülltwären.Die Erstellung des Untermenüs folgt dem gleichen Prinzip. Die hierfür notwendigeVariable heißt $ SESSION[“UNTERMENUE“] und die zugehörige Datenbanktabelle

    ”men untermenue“.

    In einer Framestruktur ist es notwendig, nach einer erfolgreichen Login-/Logout-Verarbeitung das Hauptmenü neu zu laden, da sich hierbei die Menüeinträge desHauptmenüs verändern können. Aufgrund der Systemstruktur ist es nicht erkennbar,ob der Benutzer einen Link aus dem Hauptmenü, Untermenü oder der Hauptseiteausgewählt hat. Deshalb muss das Untermenü in einer Framestruktur jedesmal neugeladen werden.

  • 28 4 Konzept

    Wird das System alleinstehend betrieben, tritt dieses Problem nicht auf, da die Seitejedesmal vollständig neu geladen wird.

    • tabbreite bestimmen()Da das Haupt- und Untermenü separat dargestellt werden können, muss manin diesem Fall die Breite der auszugebenden Haupttabelle einstellen können.Der verwendete Wert steht in der Variablen $ SESSION[“TABELLENBREITE“].Dieser beträgt normalerweise 100% und wird bei einer separaten Darstellungeines Menüs mit den Werten aus $ SESSION[“BREITE HM FRAME“] oder$ SESSION[“BREITE UM FRAME“] gefüllt.

    Nachdem alle benötigten Variablen entsprechend gesetzt wurden, folgt das Erstellen desHauptinhaltes.

    Hierzu wird die Funktion”verzweigen“ aus der Klasse $ SESSION[“ALLGEMEIN“]

    aufgerufen. Diese Funktion holt sich anhand der Variablen $ SESSION[“KLASSE“]die zugehörige Klassen-Datei aus der Datenbanktabelle

    ”fra klass“ und inklu-

    diert diese. Von dieser Klasse wird eine Instanz erstellt und in die Variable$ SESSION[“AKTUELLE KLASSE“] geschrieben. Daraufhin wird die ausgewählte Funktionaus der Variablen $ SESSION[“FUNKTION“] aufgerufen. Diese Funktion muss als Rückga-bewert den auszugebenden Inhalt enthalten.

    Damit sind alle notwendigen Berechnungen durchgeführt worden und die Datei kann zu-sammengesetzt und an den Client geschickt werden. Der gesamte Ablauf ist noch einmalin der nebenstehenden Abbildung 4.1 dargestellt.

  • 4.3 Struktur 29

    Abbildung 4.1: Struktur der Framework Hauptseite

  • 30 4 Konzept

    4.4 Datenbankstruktur

    Im folgenden Abschnitt wird das Datenbankmodell vorgestellt. Dabei wird zuerst die all-gemeine Struktur und anschließend die Struktur für das Stundenplan-Modul erklärt.

    4.4.1 Grundstruktur

    Im Grundzustand, d.h. ohne Zusatzfunktionalität, befinden sich in der Datenbank nur we-nige Tabellen. Dies kann man in Abbildung 4.2 sehen. Die zugehörige Tabellenbeschreibungfindet man in der Tabelle 4.1 auf Seite 31.

    Abbildung 4.2: Datenbank Grundstruktur

    In den Tabellen”men hauptmenue“ und

    ”men untermenue“ werden die Menüeinträge ge-

    speichert. Für jeden Menüpunkt muss ein Klassenname und die zugehörige Funktion ange-geben werden. Für jeden der vier Benutzer gibt man separat an, ob er diesen Menüpunktangezeigt bekommt oder nicht. Die Reihenfolge, in der die Menüeintrage angezeigt werdensollen, wird über das Feld

    ”Reihenfolge“ bestimmt.

    In der Tabelle”fra wsw“ werden zusätzliche Benutzerrechte für die angegebene Klasse

    und Funktion gespeichert. Damit ist es möglich, in den Funktionen auf die eingeloggtenBenutzer reagieren zu können, um z.B. eine unterschiedliche Ausgabe zu erzeugen. In derTabelle

    ”fra benutzer“ werden die vier statischen Benutzer und dessen Passwörter gespei-

    chert. Das Passwort ist mit der SQL-Funktion”password()“ verschlüsselt. In der Tabelle

    ”fra klasse“ stehen alle im System vorhandenen Zusatzklassen.

  • 4.4 Datenbankstruktur 31

    men untermenueFeld Typ Null Standard AnmerkungUNT ID int(11) Nein auto inkrementMEN ID int(4) Nein Id des zugehörigen HauptmenüsName varchar(100) Nein Name, der angezeigt wirdKlasse varchar(100) Nein KlassennameFunktion varchar(100) Nein FunktionsnameAdmin varchar(4) Nein Nein Sichtbar für den Administrator?Lehrer varchar(4) Nein Nein Sichtbar für den Lehrer?Sekretariat varchar(4) Nein Nein Sichtbar für das Sekretariat?Student varchar(4) Nein Nein Sichtbar für den Student?Reihenfolge int(2) Nein 0 Reihenfolgenummer der Anzeige

    men hauptmenueFeld Typ Null Standard AnmerkungMEN ID int(4) Nein auto inkrementName varchar(100) Nein Name, der angezeigt wirdKlasse varchar(100) Nein KlassennameFunktion varchar(100) Nein FunktionsnameAdmin varchar(4) Nein Nein Sichtbar für den Administrator?Lehrer varchar(4) Nein Nein Sichtbar für den Lehrer?Sekretariat varchar(4) Nein Nein Sichtbar für das Sekretariat?Student varchar(4) Nein Nein Sichtbar für den Student?Reihenfolge int(2) Nein 0 Reihenfolgenummer der Anzeige

    fra wswFeld Typ Null Standard AnmerkungWSW ID int(11) Nein auto inkrementKlasse varchar(100) Nein KlassennameFunktion varchar(100) Nein FunktionsnameAdmin varchar(4) Nein Nein Sichtbar für den Administrator?Lehrer varchar(4) Nein Nein Sichtbar für den Lehrer?Sekretariat varchar(4) Nein Nein Sichtbar für das Sekretariat?Student varchar(4) Nein Nein Sichtbar für den Student?

    fra klasseFeld Typ Null Standard AnmerkungKLA ID int(11) Nein auto inkrementKlasse varchar(100) Nein KlassennameRel pfad varchar(100) Nein Relative Pfadangabe

    fra benutzerFeld Typ Null Standard AnmerkungBEN ID int(11) Nein auto inkrementBenutzername varchar(100) Nein BenutzernamePasswort varchar(100) Nein Passwort kodiert

    Tabelle 4.1: Datenbanktabellen der Grundstruktur

  • 32 4 Konzept

    Diese können weiter unterhalb des Standardverzeichnisses für Klassen abgelegt werden.Der Pfad dazu wird in der Spalte

    ”Rel pfad“ gespeichert.

    4.4.2 Stundenplan

    Kommen wir nun zu den Datenbank-Tabellen für das Stundenplan-Modul. Diese sind inAbbildung 4.3 auf Seite 33 dargestellt. Die zugehörigen Tabellenbeschreibungen befindensich in den Tabellen 4.2 auf Seite 34 und 4.3 auf Seite 35.

    In der Tabelle”stp stundenplan“ werden alle Haupt- und Zusatzpläne abgespeichert.

    Ob der jeweilige Plan angezeigt werden soll, steht in dem Feld”Anzeigen“. In

    ”Format“

    ist das Dateiformat abgespeichert (z.B.”gpn“ für gp-Untis). Der

    ”Typ“ gibt an, ob

    es ein Haupt- oder Zusatzplan ist. Die Felder”Datum“ und

    ”Uhrzeit“ beinhalten den

    Erstellungs-Zeitpunkt des Stundenplans. In dem Feld”Importdaten“ können die zugehöri-

    gen Daten abgespeichert werden.Die Tabelle

    ”stp unterricht“ enthält alle zu einem Stundenplan gehörenden Unterrichte.

    Diese werden durch”Name“ und

    ”Langname“ beschrieben. Über die Felder

    ”Tag“ und

    ”Block“ wird der Veranstaltungszeitpunkt festgelegt. Das Feld

    ”Exportierbar“ legt fest,

    ob der Datensatz bei einem Export berücksichtigt wird.Die Tabellen

    ”stp lehrer“,

    ”stp klasse“ und

    ”stp fach“ sind alle gleich Aufgebaut. Neben

    einer eindeutigen Id gehört ein Datensatz zu einem bestimmten Stundenplan. Er wirdüber

    ”Name“ und

    ”Langname“ beschrieben. In dem Feld

    ”Importdaten“ können die

    zugehörigen Daten abgespeichert werden. Auch hier wird über das Feld”Exportierbar“

    festgelegt, ob der Datensatz beim Export berücksichtigt wird.Die Tabelle

    ”stp raum“ besitzt neben den Feldern der zuvor beschriebenen Tabellen,

    noch die beiden Spalten”Belegung“ und

    ”Kapazitaet“. In dem Feld

    ”Belegung“ ist die

    Raumbelegung, im Feld”Kapazitaet“ die Anzahl von vorhandenen Sitzplätzen gespeichert.

    Da ein Unterricht aus beliebig vielen Lehrern, Räumen und Klassen (bei der FH-Gießenentspricht dies den einzelnen Semestern) bestehen kann, werden diese Daten in denTabellen

    ”map unt leh“,

    ”map unt rau“ und

    ”map unt kla“ gespeichert. Dazu werden die

    Id des Unterrichts und die zugehörige Datensatz-Id abgespeichert.In der Tabelle

    ”stp ie module“ werden die Klassen gespeichert, mit denen die Stundenplan-

    und Stammdaten für einen möglichen Export bearbeitet werden, sowie die Klassen fürden Im- und Export. Der im System angezeigte Klassenname steht in dem Feld

    ”Name“,

    das unterstützte Format im Feld”Format“ (z.B.

    ”gpn“). Der

    ”Typ“ gibt an, ob die Klasse

    zum Importieren, Exportieren oder zum Ändern verwendet wird.

  • 4.4 Datenbankstruktur 33

    Abbildung 4.3: Datenbank Stundenplanstruktur

  • 34 4 Konzept

    stp stundenplan

    Feld Typ Null Standard AnmerkungSTU ID int(11) Nein auto inkrementName varchar(100) Nein Name des StundenplansAnzeigen varchar(4) Nein Nein KlassennameFormat varchar(100) Nein DateiformatTyp varchar(100) Nein ”haupt“- oder ”zusatz“-planDatum date Nein 0000-00-00 ErstellungsdatumUhrzeit varchar(8) Nein Erstellungsuhrzeit (HH:MM:SS)Importdaten mediumtext Ja Die unbearbeiteten Importdaten

    stp unterricht

    Feld Typ Null Standard AnmerkungUNT ID int(11) Nein auto inkrementSTU ID int(4) Nein Id des zugehörigen StundenplansName varchar(100) Nein Name des UnterrichtsLangname varchar(100) Nein Vollständiger NameTag int(1) Nein Nummer des Wochentags (Montag = 1)Block int(2) Nein Nummer des Unterricht-BlocksExportierbar varchar(4) Nein Ja Ist der Datensatz exportierbar?

    stp raum

    Feld Typ Null Standard AnmerkungRAU ID int(11) Nein auto inkrementSTU ID int(4) Nein Id des zugehörigen StundenplansName varchar(100) Nein Name des RaumsLangname varchar(100) Nein Nein Vollsändiger NameBelegung varchar(100) Ja RaumbelegungKapazitaet int(4) Ja Anzahl PlätzeImportdaten text Ja Nein Die unbearbeiteten ImportdatenExportierbar varchar(4) Nein Ja Ist der Datensatz exportierbar?

    stp klasse, stp lehrer, stp fach

    Feld Typ Null Standard AnmerkungKLA ID int(11) Nein auto inkrementLEH IDFAC IDSTU ID int(11) Nein Id des zugehörigen StundenplansName varchar(100) Nein Name des DatensatzesLangname varchar(100) Nein Vollständiger NameImportdaten text Ja Die unbearbeiteten ImportdatenExportierbar varchar(100) Nein Ja Ist der Datensatz exportierbar?

    Tabelle 4.2: Datenbanktabellen des Stundenplans Teil 1

  • 4.4 Datenbankstruktur 35

    stp ie module

    Feld Typ Null Standard AnmerkungIMP ID int(11) Nein auto inkrementName int(11) Nein Bezeichnung des ModulsFormat int(11) Nein Unterstütztes DateiformatTyp int(11) Nein import, export oder aendernDateiname int(11) Nein Name der Datei

    map unt kla, map unt leh, map unt rau

    Feld Typ Null Standard AnmerkungUNT ID int(8) Nein auto inkrementKLA ID int(8) Nein Id des zugehörigen DatensatzesLEH IDRAU ID

    Tabelle 4.3: Datenbanktabellen des Stundenplans Teil 2

    4.4.3 Zusatzinformationen

    Kommen wir nun zu den Tabellen, in denen die Zusatzinformationen gespeichert werden.Diese sind in der Abbildung 4.4 zu sehen. Die zugehörigen Tabellenbeschreibungen stehenin Tabelle 4.4 auf Seite 36.

    Abbildung 4.4: Datenbank Zusatzinformationen

    In den Tabellen”zus lehrer“,

    ”zus raum“ und

    ”zus unterricht“ werden Zusatzinformationen

    über Lehrer, Räume und Unterrichte gespeichert. Diese Informationen werden im Systemnicht benötigt, können aber für den Benutzer von Interesse sein.

  • 36 4 Konzept

    zus lehrer

    Feld Typ Null Standard AnmerkungID int(11) Nein auto inkrementName varchar(100) Ja Abkürzung des NamensVorname varchar(100) Ja VornameNachname varchar(100) Ja NachnameTel varchar(100) Ja TelefonnummerEmail varchar(100) Ja Email-Adressewww varchar(100) Ja HomepageSprechzeit varchar(100) Ja SprechzeitText mediumtext Ja individueller TextBildformat varchar(5) Ja Bildformat (z.B. *.jpg)

    zus raum

    Feld Typ Null Standard AnmerkungID int(11) Nein auto inkrementName varchar(100) Ja Abkürzung des NamensLangname varchar(100) Ja Vollständiger NameKapazitaet int(4) Ja Anzahl PlätzeText mediumtext Ja individueller TextBildformat varchar(5) Ja Bildformat (z.B. *.jpg)Projektor varchar(4) Ja Projektor vorhanden?Overhead varchar(4) Ja Overhead-Projektor vorhanden?Tafel varchar(4) Ja Tafel vorhanden?

    zus unterricht

    Feld Typ Null Standard AnmerkungID int(11) Nein auto inkrementName varchar(100) Ja Abkürzung des NamensLangname varchar(100) Ja Vollständiger NameDozent varchar(100) Ja Name des DozentenTermin varchar(100) Ja VeranstaltungsterminVoraussetzung varchar(200) Ja VoraussetzungenText mediumtext Ja Beschreibung des Unterrichts

    Tabelle 4.4: Datenbanktabellen der Zusatzinformationen

  • 4.5 Fehlerkonzept 37

    Um die so angelegten Informationen nicht durch eine neue Stundenplanversion zu verlieren,werden sie über das Feld

    ”Name“ referenziert.

    Zu den Datensätzen können die in den Tabellen jeweils beschriebenen Werte gespeichertwerden. Über das Feld

    ”Text“ ist es möglich, individuelle Informationen zu speichern (siehe

    Kapitel 4.6.4).

    4.4.4 Mailingliste und Statistik

    Die Tabellen für die Mailinglisten und für die Statistik sind in der Abbildung 4.5 zu sehen.Die zugehörigen Tabellenbeschreibungen stehen in der Tabelle 4.5 auf Seite 38.

    Abbildung 4.5: Datenbank Mailingliste und Statistik

    In der Tabelle”stp mailingliste“ werden alle Benutzer gespeichert, die an einer Mailing-

    liste angemeldet sind. Die zugehörigen Anmeldungen an bestimmten Listen werden in derTabelle

    ”map mailingliste“ gespeichert (siehe Kapitel 4.6.10). In der Tabelle

    ”stp statistik“

    wird die Häufigkeit von Aufrufen bestimmter Elemente gespeichert (siehe Kapitel 4.6.7).

    4.5 Fehlerkonzept

    Sollte während des Programmablaufs ein Fehler auftreten, so gibt es zwei Möglichkeitendarauf zu reagieren. Zum Einen kann man über die PHP-Funktion

    ”die(Fehlertext)“ den

    Programmablauf hart abbrechen. Hierbei wird die Verarbeitung umgehend beendet undder Fehlertext an den Client gesendet.

    Zum Anderen ist es möglich, eine selbst definierte Fehlermeldung anzeigen zu lassen.

    Dies erfolgt über die Funktion”fehler anzeigen(Fehler-Id)“ aus der Klasse

    ”error klasse“,

    welche global in der Variablen $ SESSION[“FEHLERBEHANDLUNG“] verfügbar ist.Die Fehlermeldungen stehen in der Datei

    ”includes/fehlertexte.inc“. Sie liegen dort zei-

    lenweise vor und bestehen aus drei durch Komma getrennte Parameter: die Fehlernummer,

    der Fehler- und der Lösungstext.

    Die Fehlerfunktion dient dazu, die auftretenden Fehlermeldungen Im System durch einen

    verständlichen Fehlertext zu ersetzen.

  • 38 4 Konzept

    stp mailingliste

    Feld Typ Null Standard AnmerkungMAI ID int(11) Nein auto inkrementEmail varchar(100) Nein Email Adresse des BenutzersVorname varchar(100) Ja VornameNachname varchar(100) Ja NachnameZusatzinformation varchar(200) Ja ZusatzinformationenFlag char(1) Nein Email-Adresse

    map mailingliste

    Feld Typ Null Standard AnmerkungMAI ID int(8) Nein Id des zugehörigen Mailinglisten EintragsTYP ID in(8) Nein Id des zugehörigen TypsTyp varchar(100) Nein Lehrer, Klasse oder Professor

    stp statistik

    Feld Typ Null Standard AnmerkungTYP ID int(8) Nein Id des zugehörigens TypsTyp varchar(100) Nein Typ (Lehrer, Klasse, Professor)STU ID int(8) Ja Id des zugehörigen StundenplansAnzahl int(8) Ja Wie oft es ausgewählt wurde

    Tabelle 4.5: Datenbanktabellen der Mailingliste und Statistik

  • 4.5 Fehlerkonzept 39

    Für die Konsistenz des Systems muss innerhalb der aufgerufenen Funktion selber gesorgt

    werden.

    Die möglichen Fehler im System sind in Nummernkreise zusammengefasst, welche nachfol-

    gend erklärt werden.

    • Schwere Systemfehler (000 - 099)Die hier definierten Fehler sollten unter normalen Umständen nicht auftreten und

    führen zu einer Inkonsistenz des Systems. Dieser Bereich hat im Moment keine Ein-

    träge.

    • Datenbank Fehler (100 - 199)Hier werden alle Fehlermöglichkeiten definiert, die bei der Arbeit mit der Datenbank

    auftreten können:

    100 Keine Verbindung zur Datenbank möglich

    101 Datenbank nicht vorhanden

    102 Datenbanktabelle nicht vorhanden

    103 Insert fehlgeschlagen

    104 Update fehlgeschlagen

    105 Select fehlgeschlagen

    • Eigene Fehler (ab 500)Hier hat man die Option, eigene Fehler, die in den Erweiterungen auftreten können,

    zu definieren.

    500 Login fehlgeschlagen

    501 Time-Out überschritten

  • 40 4 Konzept

    4.6 Stundenplan

    Im folgenden Abschnitt wird die Systemerweiterung, das Stundenplanmodul, vorgestellt.

    4.6.1 Allgemein

    Bei der Erstellung einer Instanz der Klasse”stundenplan klasse“ wird zuerst die Id des

    aktuell gültigen Hauptplans in die Variable $ SESSION[“STP ID“] geschrieben. Man erhältdiesen Wert aus der Tabelle

    ”stp stundenplan“. Es darf maximal einen aktuellen Hauptplan

    geben.

    Ist ein Hauptplan vorhanden, so werden die Kategorien Klassen, Lehrer und Räume

    angelegt und in einer Auswahlliste dargestellt. Nach der Auswahl eines Elements aus diesen

    Listen wird der spezielle Stundenplan angezeigt.

    Die Darstellung eines Plans erfolgt graphisch wie in Abbildung 4.6 zu sehen ist.

    Abbildung 4.6: Stundenplan Darstellung

    In einer Zeile (= Block) werden alle zu einer bestimmten Zeit stattfindenden Un-

    terrichte angezeigt. Die Unterrichtszeit für den ersten Block steht in den Variablen

    $ SESSION[“STP UNTERRICHT VON 1“] und $ SESSION[“STP UNTERRICHT BIS 1“].Entsprechend gilt dies für alle anderen Blöcke. Die Anzahl der Blöcke steht ist in der

    Variablen $ SESSION[“STP ANZ BLOECKE“] gespeichert. Der Vormittagsunterricht wirdoptisch vom Nachmittagsunterricht getrennt. Dies erfolgt nach dem Block, der durch die

    Variable $ SESSION[“STP PAUSE NACH BLOCK“] bestimmt wird.

  • 4.6 Stundenplan 41

    In den Spalten werden die Unterrichte den Wochentagen zugeordnet. Diese sind statisch

    auf Montag bis Freitag begrenzt.

    Ein Unterricht besteht aus drei Zeilen: die Unterrichtsbezeichnung, eine Liste mit den

    unterrichtenden Lehrern und die zugehörigen Räume (siehe Kapitel 4.6.8).

    Ein Stundenplan besteht aus genau einem Hauptplan und beliebig vielen Zusatzplänen.

    Beide Plantypen werden in der Tabelle”stp stundenplan“ gespeichert und durch einen

    Eintrag”haupt“ oder

    ”zusatz“ in der Spalte

    ”Typ“ unterschieden. Der aktuelle Stun-

    denplan besteht aus allen Plänen, die in der Spalte”Anzeigen“ mit

    ”Ja“ gekennzeich-

    net sind. Die dem aktuellen Stundenplan zugehörigen Unterrichte werden aus der Tabelle

    ”stp unterricht“ geholt und in den entsprechenden Blöcken ausgegeben. Bei der Anzeige

    eines speziellen Stundenplans wird geprüft, ob der Benutzer in der Tabelle”fra wsw“ Zu-

    satzrechte hat. Ist dies der Fall, so ist es möglich, die bestehenden Unterrichte zu ändern,

    zu löschen oder Neue hinzuzufügen. Dies wird durch graphisch hervorgehobene Buttons

    realisiert, die unterhalb des Unterrichts angezeigt werden (siehe Kapitel 4.6.3).

    4.6.2 Stammdaten

    Ein Stundenplan basiert auf den in der Datenabank gespeicherten Stammdaten. In Ab-

    bildung 4.7 sind die zugehörigen Tabellen noch einmal aufgelistet. Siehe hierzu auch die

    Tabellen 4.2 auf Seite 34 und 4.3 auf Seite 35.

    Abbildung 4.7: Datenbank Stammdaten

    Diese Daten können geändert, gelöscht und neu hinzugefügt werden. Die dafür notwendi-

    ge Funktionalität befindet sich unter dem Menüpunkt”Einstellungen/Stammdaten“. Hier

    werden alle Stammdaten in Auswahllisten nebeneinander zur Verfügung gestellt. Unter-

    halb jeder Liste befindet sich ein Button”hinzufügen“. Mit einem Klick auf einen Eintrag

    oder den Button wird aus der Klasse”stammdaten klasse“ die Funktion

    ”aendern sd“

    aufgerufen. Diese verzweigt in die zugehörige Funktion des speziellen Stammdaten-Typs,

    welcher sich aus”aendern sd “ plus Typ (lehrer, kurs, klasse, raum) zusammensetzt (z.B.

    ”aendern sd lehrer“). In der angezeigten Maske können die Daten verändert werden. Beim

    Hinzufügen wird die gleiche Maske angezeigt, nur sind hierbei die Felder nicht vorbelegt.

  • 42 4 Konzept

    Um die geänderten Daten dem System zur Verfügung zu stellen, reicht es, sie in die Da-

    tenbank einzufügen.

    Schwieriger sieht es dabei für die Export-Unterstützung aus. Über eine zusätzlich ange-

    zeigte Auswahlbox kann man den Datensatz als”exportierbar“ oder

    ”nicht exportierbar“

    kennzeichnen.

    Wenn ein neu erstellter Datensatz exportiert werden soll, muss dieser in das Exportformat

    des verwendeten Stundenplans konvertiert werden. Deswegen wird nach jeder Änderung

    oder Neuanlage eines Datensatzes die Funktion”aendere sd export“ aufgerufen. Diese ver-

    zweigt anhand des aktuellen Stundenplanformats in die zugehörige Klasse”aendere daten “

    zusammen mit dem Exportformat (z.B.”aendere daten gpuntis“).

    4.6.3 Änderungskonzept

    Es ist möglich, die Unterrichte des aktuellen Stundenplans zu bearbeiten. Dies umfasst das

    Löschen, Hinzufügen und das Verändern. Beim Bearbeiten kann man auswählen, ob die

    Datensätze mitexportiert werden sollen oder nicht.

    Das Aufrufen der gewünschten Funktionalität erfolgt aus der Stundenplananzeige her-

    aus über das Anklicken von graphischen Symbolen. Jeder Unterricht erhält ein Symbol

    zum Löschen und Bearbeiten. Jeder Block erhält zusätzlich noch ein Symbol, um einen

    Unterricht hinzuzufügen. Das Anzeigen der Symbole ist über die Tabelle”fra wsw“ ein-

    stellbar. Die dafür zugehörige Klasse und Funktion sind”stundenplan klasse“ und

    ”ho-

    le daten von unterricht“. Alle für das Änderungskonzept benötigten Funktionen sind in

    der Klasse”stammdaten klasse“ vorhanden.

    aendern Ein Klick auf das Symbol”aendern“ ruft die Funktion

    ”aendern unterricht“

    auf. Darunter werden vier Auswahllisten angeboten:

    • Klassen

    • Lehrer

    • Räume

    • Kurse

    In jeder Liste finden sich alle dem aktuellen Sundenplan zugehörigen Datensätze wie-

    der. Die Listen lassen eine Mehrfachauswahl zu und haben die dem Unterricht zu-

    gehörigen Datensätze vorselektiert. Zusätzlich werden noch die Tage und Blöcke in ei-

    ner Liste dargestellt. Man wählt mit der Maus die gewünschten Werte aus und bestätigt

    nach Ende der Auswahl über den Button”Änderung speichern“. Das ruft die Funktion

    “unterricht speichern“ auf. Werden an dieser Stelle neue Datensätze benötigt, so gibt es

  • 4.6 Stundenplan 43

    unterhalb jeder Liste einen Button”hinzufügen“. Dieser Button ruft bei Auswahl die zu-

    gehörige Funtkion “hinzufuegen sd“ auf (siehe Kapitel 4.6.2).

    hinzufuegen Das Hinzufügen von Unterrichten erfolgt nach dem gleichen Prinzip wie

    das Ändern von Unterrichten (siehe oben). Der einzige Unterschied besteht darin, dass es

    keine vorselektierten Einträge gibt. Ansonsten ist die Maske identisch und verwendet die

    gleichen Funktionen.

    löschen Beim Löschen von Unterrichten bekommt der Benutzer zuerst eine Maske mit

    dem ausgewählten Unterricht angezeigt. Hierfür ist die Funktion”unterricht loeschen“

    zuständig. Auf dieser Maske muss der Löschvorgang über den Button”endgültig löschen“

    bestätigt werden oder über den Button”abbrechen“ abgebrochen werden. Der Löschvor-

    gang wird mit der Funktion”loeschen“ durchgeführt.

    4.6.4 Zusatzinformationen

    Zu jeder dem Unterricht zugeordneten Information (Unterrichtsbezeichnung, Lehrer und

    Räume) ist es möglich, Zusatzinformationen abzufragen. Dies geschieht in der Stundenpla-

    nanzeige durch einen Mausklick auf den entsprechenden Namen. Dadurch wird ein neu-

    es Browserfenster mit den Abmessungen $ SESSION[“STA [LEHRER | RAUM | UNTER-RICHT] BREITE“] und $ SESSION[“STA [LEHRER | RAUM | UNTERRICHT] HOEHE“]geöffnet. Diese Fenster werden nur mit der Browser-Titelzeile erstellt. Die Daten werden

    in den Datenbanktabellen”zus lehrer“,

    ”zus raum“ und

    ”zus unterricht“ gespeichert wie

    in Abbildung 4.8 zu sehen ist.

    Abbildung 4.8: Datenbank Zusatzinformationen

  • 44 4 Konzept

    Ein Problem tritt bei der Referenzierung zu den Stammdaten in dem aktuellen Stunden-

    plan auf. Mit einer neuen Stundenplanversion werden die Stammdaten neu eingelesen

    und erhalten neue Id’s. Aus diesem Grund ist es nicht möglich, die Zusatzinformationen

    über eine Id an die Stammdaten zu binden. Trotzdem sollen die bereits eingetragenen Zu-

    satzinformationen weiterhin im System vorhanden sein und dem Benutzer zur Verfügung

    stehen. Deshalb erfolgt die Zuordnung über das Attribut”Name“.

    Dies kann drei Situationen hervorrufen:

    1. In der Datenbank befindet sich genau ein Eintrag. In diesem Fall wird der Eintrag

    angezeigt.

    2. Es ist kein Eintrag in der Datenbank vorhanden. In diesem Fall wird ein leeres Do-

    kument angezeigt.

    3. Bei der letzten Möglichkeit sind mehrere Einträge in der Datenbank vorhanden. In

    diesem Fall erhält der Administrator eine automatisch generierte Email. Diese enthält

    mindestens den Schlüssel (d.h. den Namen) und den Typ (Unterricht, Lehrer, Raum).

    Der Benutzer bekommt eine Fehlermeldung angezeigt.

    Der letzte Fall sollte unter normalen Umständen nicht auftreten. Er kann nur eintreten,

    wenn mehrere Benutzer gleichzeitig einen neuen Datensatz mit demselben Primary-Key

    ”Name“ anlegen.

    In der Tabelle”fra wsw“ wird festgelegt, ob der Benutzer die Zusatzinformationen bear-

    beiten darf. Ist dies der Fall, so wird ein zusätzlicher Link”ändern“ angezeigt. Dieser führt

    zu einer Änderungsmaske, in der die zugehörigen Parameter verändert werden können.

    4.6.5 myStundenplan

    Anhand der dargestellten Unterrichte soll es für den Benutzer möglich sein, einen eigenen

    Stundenplan zu erstellen. Diese Möglichkeit soll während der normalen Nutzung, d.h. dem

    Betrachten von Stundenplänen, angeboten werden und ohne Mehraufwand nutzbar sein.

    Hierfür gibt es zwei sinnvolle Ansätze. Zum Einen könnte man zu den Unterrichten zusätz-

    lich eine Checkbox anzeigen, mit der man den Unterricht selektieren und deselektieren

    kann. Zum Anderen wäre es möglichdurch den Einsatz von JavaScript und CSS die se-

    lektierten Unterrichte mit einer anderen Hintergrundfarbe zu belegen. Aufgrund optischer

    Gesichtspunkte habe ich mich für den zweiten Vorschlag entschieden, da bei der Anzeige

    der Unterrichte nur die absolut notwendigsten Informationen angezeigt werden sollen. Das

    Anzeigen von Checkboxen hat nichts mit dem Unterricht zu tun und vergrößert unnötiger-

    weise die Anzeigemenge, welche damit unübersichtlicher wird.

  • 4.6 Stundenplan 45

    Jeder Unterricht hat eine eindeutige Id. Deswegen ist es ausreichend, wenn im System

    alle ausgewählten Unterricht-Id´s gespeichert werden. Nach der Auswahl eines Unter-

    richts durch einen Maus-Klick wird durch die JavaScript-Funktion”sichere u id(Unterricht-

    Id)“ die Id zuerst auf der Client-Seite gesichert. Hierbei werden Selektionen wie De-

    selektionen gesichert. Bei einer Navigation innerhalb des Stundenplan-Moduls (über

    die Links: Zurück, Anfang, Weiter, MyStundenplan und Drucken) werden diese Id’s

    in die Variable $ SESSION[“MY STUNDENPLAN“] geschrieben. Diese Einträge werdenbei der Anzeige eines Stundenplans dazu verwendet, bereits ausgewählte Kurse zu

    markieren. Die Hintergrundfarbe für ausgewählte Unterrichte steht in der Variablen

    $ SESSION[“STP FARBE BLOCK SEL“] . Die Hintergrundfarbe für Unterrichte, die des-elektiert werden, in der Variablen $ SESSION[“STP FARBE BLOCK UNSEL“].

    4.6.6 Drucken

    Es ist möglich, jeden angezeigten Stundenplan auszudrucken. Hierzu kann sich der Benutzer

    den Stundenplan über den Link”drucken“ in einer Druckmaske anzeigen lassen. Diese wird

    in einem neuen Browserfenster geöffnet.

    Es war zuerst geplant, den zu druckenden Stundenplan in eine PDF-Datei zu konvertie-

    ren und so zum Ausdruck anzubieten. Dies läßt sich mit dem PHP-Modul”pdflib“ realisie-

    ren. Da dieses jedoch seit einem halben Jahr lizenzpflichtig ist, wird diese Möglichkeit erst

    einmal aussenvorgelassen. Stattdessen wird das Drucken über die Browser-Druckfunktion

    angeboten. Bei einem Mausklick auf den Link”drucken“ wird in einem neuen Browserfens-

    ter der Stundenplan ohne Farb-Formatierungen in schwarz/weiss angezeigt, wo er ausge-

    druckt werden kann.

    4.6.7 Statistik

    Für den Stundenplanverwalter ist es interessant zu wissen, welche Kurse wie stark von

    den Studenten besucht werden. Aus diesen Informationen lassen sich Rückschlüsse auf die

    Beliebtheit der Kurse und auf das notwendige Platzangebot gewinnen.

    Das Speichern der Daten erfolgt bei der Druckauswahl von”myStundenplan“ (siehe

    Kapitel 4.6.5) in die Datenbank”stp statistik“. Die zugehörigen Funktionen befinden sich

    in der Klasse”statistik klasse“. Die aktuelle Auswertung kann über die Funktion

    ”anzeigen“

    angezeigt werden.

    4.6.8 Import

    Das Importieren von Stundenplänen ermöglicht es, bereits generierte Stundenpläne von

    anderen Softwareprodukten (siehe Kapitel 2.2.1) in das System einzubinden.

  • 46 4 Konzept

    Die hierfür notwendige Funktionalität ist in der Klasse”import klasse“ enthalten. Die

    Klasse stellt eine Schnittstelle zur Verfügung, um die notwendigen Daten in das System zu

    importieren. Für das zu importierende Format wird eine zusätzliche Klasse benötigt. Der

    Speicherpfad für die Importklassen steht in der Variablen $ SESSION[“IE PFAD“]. In dernebenstehenden Abbildung 4.9 ist der Ablauf eines Importvorgangs dargestellt.

    Auf der Startseite wählt man die zu importierende Datei aus. Hierzu sind zwei Angaben

    zwingend notwendig: zum Einen, ob der zu importierende Plan einen Hauptplan oder einen

    Zusatzplan darstellt und zum Anderen, welches Format die Datei besitzt. Hierfür werden

    aus der Datenbanktabelle”stp ie klasse“ alle dem System bekannten Import-Klassen aus-

    gelesen und in einer Drop-Down Liste zur Auswahl bereitgestellt. Zusätzlich kann man

    dem Stundenplan einen Namen geben. Wird dieses Feld leer gelassen, so wird stattdessen

    der Dateiname genommen.

    Nach Abschicken des Formulars über den Button”Import starten“ wird aus der Klasse

    ”import klasse“ die Funktion

    ”import starten()“ aufgerufen. Hier wird zuerst ein neuer

    Datensatz in die Tabelle”stp stundenplan“ eingefügt. Wichtig an dieser Stelle ist das

    Sichern der Variablen”STU ID“. Diese wird benötigt, um die später zu importierenden

    Daten (Lehrer, Raum,...) dem neuen Stundenplan zuordnen zu können.

    Anhand des ausgewählten Import-Formats wird die benötigte Klasse inklu-

    diert und anschließend eine Instanz davon erstellt. Diese wird in der Variablen

    $ SESSION[“IMPORT KLASSE“] abgelegt. Die Instanz bekommt dabei das Importfile unddie Stundenplan-Id

    ”STU ID“ übergeben.

    In dieser Klasse muss eine Funktion namens”parse()“ vorhanden sein. Mit Aufruf von

    ”parse()“ geht die Kontrolle an die inkludierte Importklasse über. Hier wird jetzt der

    gesamte Importvorgang durchgeführt. Dabei ist es möglich, folgende Daten in das System

    zu importieren:

    • Stammdaten Lehrer

    • Stammdaten Klasse

    • Stammdaten Raum

    • Stammdaten Fach

    • Unterricht

  • 4.6 Stundenplan 47

    Abbildung 4.9: Die Klasse”import klasse“

  • 48 4 Konzept

    Hierfür stehen in der Variablen $ SESSION[“KLASSE“] aus der Klasse”import klasse“ fol-

    gende Funktionen zur Verfügung:

    • import sd lehrer(name, langname, importdaten)

    • import sd klasse(name, langname, importdaten)

    • import sd raum(name, langname, belegung, kapazitaet, importdaten)

    • import sd fach(name, langname, importdaten)

    • import unterricht(fachname kurz, fachname lang, tag, block, lehrer, raum, klasse)

    Beim Speichern der Stammdaten können zusätzlich zu den für das System notwendigen

    Informationen noch die Importdaten gespeichert werden. Damit sollen vom System nicht

    benötigte Daten erhalten bleiben und beim Export verwendet werden. Diese Möglichkeit

    besteht auch für den Stundenplan-Datensatz. Eine Importklasse wird in Kapitel 5.3.1 er-

    klärt.

    4.6.9 Export

    Das Exportieren von Stundenplänen soll es ermöglichen, die im System vorhandenen Stun-

    denpläne in dem gleichen Format zu exportieren, mit dem sie importiert wurden. Das Ziel

    hierbei ist, Änderungen (siehe Kapitel 4.6.3), die online gemacht wurden, in das Software-

    Produkt zu übernehmen, mit dem der Stundenplan erstellt wurde.

    Für den Export werden vom System keine Funktionen zur Verfügung gestellt. Der Ablauf

    ist in nachfolgender Abbildung zu sehen.

    Abbildung 4.10: Die Klasse”export klasse“

    Zu Beginn wird anhand der übergebenen Stundenplan-Id geprüft, ob es für das Format

    dieses Stundenplans ein Export-Modul gibt. Wenn ja, wird dieses in das System inkludiert

    und eine Instanz davon erstellt. In dieser Instanz muss eine Funktion”export(Stundenplan-

    Id)“ vorhanden sein, welche die zu exportierende Datei erstellt. Dabei kann nur auf die

    Datenbank zurückgegriffen werden. Zusätzliche Funktionen, wie beim Import, sind nicht

    vorhanden.

    Wurde die Datei fehlerfrei erstellt, wird an den Client ein HTML”Header“ ge-

    schickt, der dem Browser zu erkennen gibt, dass die folgende Datei nicht als HTML,

  • 4.6 Stundenplan 49

    sondern als Datendatei zu interpretieren ist. An dieser Stelle muss das Ausnahme-Flag

    ”$ SESSION[“AUSNAHME“]“ auf

    ”TRUE“ gesetzt werden. Daraufhin wird die Datei an

    den Client gesendet. Im Browser sollte sich daraufhin ein Dialog-Fenster öffnen und zum

    Speichern auffordern.

    4.6.10 Mailingliste

    Um die Kommunikation zwischen den Studenten und der Hochschule zu verbessern, gibt es

    für Studenten die Möglichkeit, sich in Mailinglisten einzutragen. Diese werden für Klassen,

    einzelne Unterrichte und Professoren angeboten. Die Mailingliste befindet sich unter dem

    Hauptmenüpunkt”Mailingliste“. Die zugehörige Klasse ist die

    ”mailingliste klasse“.

    Oben auf der Seite kann man sich durch Eingabe seiner Email-Adresse alle vorhande-

    nen Anmeldungen anzeigen lassen. Darunter befinden sich zwei Auswahllisten. Während

    man in der ersten Auswahlliste aus den vorhandenen Klassen auswählen kann, sind in der

    zweiten alle vorhandenen Unterrichte, nach Name sortiert, aufgelistet. In den Listen ist

    eine Mehrfachauswahl möglich.

    Nach Auswahl der gewünschten Kurse mit der Maus werden durch Bestätigung des

    darunter vorhandenen Buttons”Auswahl übernehmen“ die Daten in die Datenbanktabelle

    ”stp mailingliste“ eingetragen. Danach wird, wie bei der Abfrage zu den angemeldeten

    Kursen, die gleiche Seite aufgerufen und unter den Auswahllisten eine Liste mit allen zur

    Email-Adresse gehörigen Anmeldungen angezeigt. Hinter jedem Listeneintrag wird eine

    Checkbox angezeigt. Diese wird benutzt, um den Kurs zum Löschen zu markieren. Man

    kann über die JavaScript-Funktion”select liste“ alle Listeneinträge selektieren und über

    die Funktion”unselect liste“ alle Einträge deselektieren. Die Änderungen werden mit dem

    Button”übernehmen“ gespeichert.

  • 50 4 Konzept

  • Kapitel 5

    Realisierung

    Dieses Kapitel befasst sich mit der Realisierung des Systems. Zu Beginn wird ein

    Überblick über die Vorgehensweise gegeben, bevor ein kompletter Modulüberblick

    und anschließend die Betrachtung interessanter Entwicklungsstellen folgt. Siehe hierzu

    [Hitz99][Hofm01][Kern00][Muen99][Schw01][3][4].

    5.1 Vorgehensweise

    Zu Beginn der Realisierung wird die Software festgelegt, mit der das System zu entwi-

    ckeln ist. Die Wahl fiel hierbei auf die Scriptsprache PHP (siehe Kapitel 4.2), da diese es

    ermöglicht, die gestellten Ziele einfach und gut zu lösen. Daraufhin wird eine lokale Ent-

    wicklungsumgebung eingerichtet, die aus einem Apache-Webserver mit PHP-Unterstützung

    und einer mySQL-Datenbank besteht. Das Ganze wird auf einem Windows 2000 System

    installiert.

    Die tatsächliche Realisierung beginnt mit der Erstellung der Datenbank. Dies ist als ers-

    ter Schritt notwendig, da das gesamte System auf der Nutzung der Datenbank aufbaut. Der

    nächste Schritt besteht aus der Entwicklung der Importschnittstelle und dem zugehörigen

    Import-Modul für die Software gp-Untis. Hierfür ist es notwendig, das verwendete Spei-

    cherformat der Software vollständig zu anlysieren und zu verstehen.

    Anschließend wird die Marktanalyse durchgeführt, wobei ein besonderer Schwerpunkt

    auf die Schaffung eines Überblicks von Umfang und Funktionalität des neuen Stundenplan-

    Moduls gelegt wird, bevor die Lösungen anderer Softwarehersteller und Hochschulen be-

    trachtet werden. Dadurch soll vermieden werden, sich zu sehr an gelungenen Lösungen zu

    orientieren und wichtige Aspekte zu übersehen, da die meisten Anforderungen und Ziele

    bereits mehr oder weniger von den Hochschulen angeboten werden. Die Möglichkeit, einen

    eigenen Stundenplan in Verbindung mit der Anmeldung an Mailinglisten zusammenzustel-

    len, konnte jedoch nicht gefunden werden.

    51

  • 52 5 Realisierung

    Nach der Festlegung des Funktionsumfang für das Stundenplan-Modul, wird das Frame-

    work aufgebaut. Mit den Anforderungen, die das System bei der Stundenplananzeige zu

    berücksichtigen hat, kann jetzt der allgemeine Bereich entwickelt werden. Das größte Pro-

    blem hierbei besteht darin, die Funktionalität des Systems in Framebasierten Webseiten

    zu gewährleisten. Es gibt die Möglichkeit, für die Frames, in denen das Menü angezeigt

    werden soll, separate Dateien zu entwickeln. Diese Lösung wird in diesem System verwor-

    fen, weil bei einem Einsatz als”Standalone“-System diese Dateien nicht gebraucht würden

    und Code-Segmente mehrfach vorhanden wären. Globale Änderungen am System wären

    nur erschwert möglich. Es wird die Variante gewählt, die Menüs, genau wie alles ande-

    re, durch die Hauptdatei erzeugen zu lassen. Dafür ist ein erhöhter Prüfaufwand bei der

    Seitenerstellung notwendig.

    Anschließend erfolgt die Realisierung des Stundenplan-Moduls, wobei mit der Stun-

    denplananzeige begonnen wird. Vorteilhaft daran ist, dass mit dem bereits entwickelten

    Import-Modul Originaldaten zur Verfügung stehen. Für die Realisierung von”myStunden-

    plan“ wird auf den Einsatz von JavaScript zurückgegriffen, da keine andere Möglichkeit

    besteht, die Selektionen der Benutzer aufzuzeichnen. Die anderen Teilmodule sind ohne

    große Hindernisse realisierbar.

    5.2 Modulüberblick

    Das Systen besteht im Großen und Ganzen aus drei Hauptbereichen. Der allgemeine Be-

    reich, der Administrations-Bereich und der Erweiterungs-Bereich. Wenn wir von Modulen

    sprechen, so ist dies mit Klassen gleichzusetzen. In der nebenstehenden Abbildung 5.1 ist

    dies dargestellt.

    Die endgültige Datei, die im Client angezeigt wird, ist die Ausgabedatei. Der Name die-

    ser Datei steht in der Variablen $ SESSION[“DATEINAME“], welche auf die beiden Dateien

    ”style.css“ und

    ”script.js“ zugreift. Damit werden Layout-Eintstellungen und JavaScript-

    Funktionen zur Verfügung gestellt. Die Grundfunktionen des Systems befinden sich in dem

    Bereich”Allgemein“.

  • 5.2 Modulüberblick 53

    Abbildung 5.1: Modulüberblick

  • 54 5 Realisierung

    5.2.1 Allgemein

    Von den hier aufgeführten Klassen werden zu Beginn eines Verarbeitungsdurchlaufs In-

    stanzen erstellt und global zur Verfügung gestellt.

    Klasse: error klasse Diese Klasse beinhaltet die Funktionalität um Fehlermeldungen

    zu erzeugen.

    • fehler anzeigen(id)Gibt eine Fehlermeldung aus. Diese besteht aus Fehlernummer, Fehlertext und

    Lösungsvorschlag. Zusätzlich wird noch der Klassen- und Funktionsname ausgege-

    ben, bei dem der Fehler aufgetreten ist.

    • fehlerarray erstellen()Erstellt anhand der Datei

    ”fehlertexte.inc“ ein mehrdimensionales Array und stellt

    dies in der Klassenvariablen”fehler array“ zur Verfügung. Die Fehlernummer ist da-

    bei die Arraynummer, in der die Parameter”Fehlertext“ und

    ”Lösungsvorschlag“

    abgelegt werden.

    Klasse: allgemein klasse In dieser Klasse sind alle Funktionen enthalten, die allgemein

    verwendbar sind.

    • generiere link(klasse, funktion, parameter)Diese Funktion erzeugt aus den übergebenen Parametern einen Link. Dieser enthält

    zusätzlich noch den Dateinamen und die Session-Id. Der Parameter”parameter“ ist

    ein Array, in dem jeder Eintrag von der Form”Name=Wert“ sein muss. Es werden

    alle vorhandenen Einträge an den Link angehängt. Der Rückgabewert ist der fertige

    Link.

    • ist berechtigt(benutzer, klasse, funktion)Diese Funktion liefert die Berechtigung des übergebenen Benutzers zu der überge-

    benen Klasse und Funktion. Der Rückgabewert ist entweder”Ja“ oder

    ”Nein“. Die

    Funktion greift auf die Datenbanktabelle”por wsw“ zu.

    • login()Die Funktion

    ”login()“ überprüft die übergebenen Paramter von der Funktion

    ”lo-

    gin anzeigen()“ (siehe unten). Sind diese korrekt, so wird der neue Benutzer im Sys-

    tem registriert. Ansonsten wird eine Fehlermeldung ausgegeben. Die Funktion greift

    dabei auf die Datenbanktabelle”por benutzer“ zu.

    • login anzeigen()Zeigt die Loginmaske an. Hier müssen Benutzername und Passwort eingegeben wer-

    den. Nach Abschicken der Eingaben werden diese in der Funktion”login()“ geprüft.

  • 5.2 Modulüberblick 55

    • logout()Mit dieser Funktion wird der im System bekannte Benutzer ausgeloggt.

    • meldung(art, string)Diese Funktion bietet die Möglichkeit, dem Benutzer die Meldung

    ”string“ anzeigen

    zu lassen. Dabei unterscheidet”art“ zwischen

    ”erfolg“ und

    ”hinweis“.

    • schreibe hauptmenue()Die Funktion

    ”schreibe hauptmenue()“ ist für die Ausgabe des Hauptmenüs

    zuständig. Es werden alle Menüeinträge angezeigt, für die der aktuelle Benutzer ei-

    ne Berechtigung hat. Soll das Aussehen des Menüs verändert werden, so muss das

    in dieser Funktion gemacht werden. Die Daten werden aus der Datenbanktabelle

    ”men hauptmenue“ geholt.

    • schreibe untermenue()Die Funktion

    ”schreibe untermenue()“ ist in der Funktionsweise identisch zu

    der Funktion”schreibe hauptmenue“. Es werden alle zu dem aktuell gültigen

    Hauptmenü vorhandenen Menüeinträge angezeigt. Die Datenbanktabelle hierfür ist

    ”men untermenue“.

    • verzweigen()Diese Funktion ist der Dreh- und Angelpunkt des Systems. Hier wird die

    aufgerufene Klasse in das System inkludiert und anschließend die gewünsch-

    te Funktion davon aufgerufen. Die Funktion wird global in der Variablen

    $ SESSION[“AKTUELLE KLASSE“] abgelegt.

    Klasse: con klasse Die Klasse”con klasse“ hat keine Funktionen. Stattdessen wird bei

    der Instanzierung der Klasse die Verbindung zur Datenbank aufgebaut.

    Klasse: pruef klasse Diese Klasse gehört zwar nicht in den Bereich”Allgemein“, soll

    aber aufgrund der Übersichtlichkeit trotzdem an dieser Stelle erklärt werden. Die Klasse

    ”pruef klasse“ führt bei jedem Seitenaufruf die Funktion

    ”pruefen()“ aus.

    • hm um setzen()In dieser Funktion wird das Haupt- und Untermenü erstellt. Dabei wird berücksich-

    tigt, ob die Menüs alleine angezeigt werden sollen.

    • ist timeout()Hier wird überprüft, ob der im System registrierte Benutzer seine Einlog-Zeit über-

    schritten hat. Ist dies der Fall, so wird aus der Klasse”allgemein klass“ die Funktion

    ”logout“ aufgerufen und eine Fehlermeldung zurückgegeben. Die Fehlermeldung wird

  • 56 5 Realisierung

    für eine Sekunde angezeigt, bevor durch eine JavaScript-Funktion die Startseite auf-

    gerufen wird.

    • klasse funktion setzen()In dieser Funktion werden die für die Anzeige notwendige Klasse und Funktion mit

    den über die URL übergeben Variablen”klasse“ und

    ”funktion“ gesetzt. Sollten diese

    nicht vorhanden sein, so werden dafür die Standardwerte verwendet.

    • pruefen()In dieser Funktion stehen alle Funktionsaufrufe, die bei einem Seitenaufruf durch-

    laufen werden sollen. Sie liefert als Rückgabewert das Ergebnis der Funktion

    ”ist timeout()“

    • setze benutzer()Hier wird überprüft, ob im System ein Benutzer registriert ist. Ist dies der Fall, so

    wird die Zeit, seitdem er eingeloggt ist auf die aktuelle Systemzeit gesetzt. Ist kein

    Benutzer vorhanden, so wird der Standardbenutzer angelegt.

    • startzeit setzen()Ist eine Hilfsfunktion. Hier wird die Startzeit des aktuellen Benutzers auf die aktuelle

    Systemzeit gesetzt.

    • tabbreite bestimmen()Ist eine Hilfsfunktion. Nur wenn ein Menü separat angezeigt werden soll, wird hier

    dafür die Tabellenbreite gesetzt.

    5.2.2 Administration

    Im Administrationsbereich werden die Einstellungen des Systems vorgenommen. Hierbei

    geht es vor allem um die Sichtbarkeitsrechte und die Verwaltung der Stundenpläne.

    Klasse: admin klasse Hier werden alle Funktionen gespeichert, die für die Administra-

    tion des Systems notw