Entwurf
Entwurf
Entwurf
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
<strong>Entwurf</strong>sbeschreibung<br />
Version 3 vom 17.06.2013<br />
Gruppe: swp13-insp<br />
1
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Inhaltsverzeichnis<br />
1. Zielbestimmung ….................................................................................................. 3<br />
2. Produkteinsatz ….................................................................................................... 3<br />
3. Struktur und <strong>Entwurf</strong>skonzepte des Systems …..................................................... 3<br />
3.1. Schichtenarchitektur im Überblick ........................................................... 3<br />
3.2. Rechtemanagement ................................................................................... 3<br />
3.3. Überblick über den Lebenszyklus einer Buchung .................................... 4<br />
3.4. Überblick über die Sichten der Repräsentationsschicht ........................... 6<br />
3.4.1. Kundensicht ................................................................................. 6<br />
3.4.2. Betreuersicht ................................................................................ 7<br />
3.4.3. Mitarbeiter/Verwaltersicht ........................................................... 8<br />
3.5. Verwendung globaler Variablen zum Management globaler<br />
Zustände …............................................................................................... 9<br />
3.5.1. Verwendung globaler SESSIONS Variablen …........................... 9<br />
3.5.2. Verwendung globaler Variablen im Buchungssystem …............. 9<br />
3.5.3. Verwendung GET/POST Variablen im Buchungssystem …........ 9<br />
3.6. Notizen und Tickets ................................................................................. 13<br />
3.6.1. Notizen ....................................................................................... 13<br />
3.6.2. Ticket .......................................................................................... 13<br />
3.7. Formulare …............................................................................................ 14<br />
3.7.1. Lebenszyklus eines Formulars …............................................... 14<br />
4. Struktur und <strong>Entwurf</strong>skonzepte der Pakete ...….................................................. 15<br />
4.1. Genauerer Überblick über die Schichtenarchitektur ….......................... 15<br />
4.1.1. Datenschicht …........................................................................... 15<br />
4.1.2. Logikschicht …........................................................................... 16<br />
4.1.3. Präsentationsschicht …............................................................... 17<br />
4.2. Genauerer Überblick über den Lebenszyklus einer Buchung …............ 19<br />
4.2.1. Geschäftsprozesse ….................................................................. 21<br />
4.3. Genauerer Überblick über die Sichten der Präsentationsschicht …....... 23<br />
4.3.1. Kundensicht …........................................................................... 23<br />
4.3.2. Betreuersicht ….......................................................................... 23<br />
4.3.3. Mitarbeiter/Verwaltersicht …..................................................... 25<br />
4.4. Layout-Konzepte des Buchungssystems …............................................ 26<br />
4.5. Dokumentation des Mailsystems des Buchungssystems …................... 32<br />
5. Datenmodell ….................................................................................................... 34<br />
6. Testkonzept .......................................................................................................... 34<br />
7. Glossar …............................................................................................................. 35<br />
2
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
1 Zielbestimmung<br />
Das Softwareprodukt soll auf dem bisherigen Buchungssystem aufbauen, deswegen sollen die<br />
vorhandenen Funktionalitäten beibehalten werden. Zur Zeit ist nur eine manuelle Vereinigung der<br />
verschiedenen Daten zur Monatsabrechnung möglich. Dazu müssen die Buchungen,<br />
Betreuerzuordnung, Abrechnung der Betreuerstunden und Abrechnung der Termine über<br />
verschiedene Softwarelösungen (Wordpress-Kalender, Buchungssystem als PHP-Eigenbaulösung,<br />
Stundenzettel auf egroupware-Basis, Kassenbuch auf OpenOffice-Basis) integriert werden. Ziel des<br />
Softwaresystems ist es die Buchungsverwaltung vollständig mit unserer Software abzuwickeln.<br />
2 Produkteinsatz<br />
Unser Produkt wird sich am bisherigen Workflow orientieren. Das Login-Verfahren wird über eine<br />
API realisiert. Diese hat Zugriff auf die Egroupware-Authentifizierung.<br />
Als Datenschicht verwenden wir eine MySQL-Datenbank. In dieser speichern wir die<br />
Buchungshistorie der aktuellen Buchungen. Es wird möglich sein Angestellte, Angebote und die<br />
Alter-Tabelle auf RDF-Basis zu importieren. Außerdem wird die Möglichkeit bestehen Buchungen<br />
für Änderungszwecke, Backup oder zum Archivieren in RDF-Basis zu exportieren.<br />
Um die Software ordnungsgemäß nutzen zu können, wird ein Mailserver und mehrere Cronjobs<br />
benötigt. Auf Kundenseite wird eine aktuelle Browserversion empfohlen.<br />
Als Zielgruppe für unser Produkt ergeben sich auf der einen Seite die Inspirata, die die Buchungen<br />
verwalten, und auf der anderen Seite alle Kunden der Inspirata, die die Veranstaltungen buchen.<br />
3 Struktur und <strong>Entwurf</strong>skonzepte des Systems<br />
3.1 Schichtenarchitektur im Überblick:<br />
Bei unserem Softwaresystem verwendeten wir eine 3-Schichtenarchitektur. Diese besteht aus der<br />
Präsentationsschicht, der Anwendungsschicht und der Datenschicht. Die unterste Schicht ist die<br />
Datenschicht. Diese führt Operationen auf der Datenbank aus und liefert die Daten zur nächst<br />
höheren Schicht, der Anwendungsschicht. In dieser erfolgen die kompletten Berechnungen. Sie<br />
beinhaltet alle Verarbeitungsmechanismen. Die oberste Schicht ist die Präsentationsschicht. Sie<br />
repräsentiert die Daten und die Benutzereingaben. Eine Schicht kann immer nur auf die nächst<br />
höhere oder tiefere Schicht zugreifen.<br />
3.2 Rechtemanagement:<br />
Im Softwaresystem wird jedem Nutzer eine Rolle zugeteilt. Diese Rolle besitzt jeweils bestimmte<br />
Rechte, d.h. jede Rolle kann bestimmte Aktionen vollführen. Das System unterscheidet zwischen 4<br />
Rollen. Diese lauten wie folgt:<br />
▪ Kunde<br />
▪ Betreuer<br />
▪ Mitarbeiter<br />
▪ Verwalter<br />
3
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Aktion Kunde Betreuer Mitarbeiter Verwalter<br />
Buchung anfragen <br />
Buchung akzeptieren <br />
Buchung stornieren <br />
Buchung reaktivieren <br />
Betreuer zuordnen <br />
Buchung bearbeiten<br />
- (Buchung angefragt)<br />
- (Buchung akzeptiert)<br />
- (Buchung bereit)<br />
- (Buchung stattgefunden)<br />
<br />
<br />
<br />
<br />
Buchung nachbereiten <br />
Buchung archivieren <br />
Betreuer manipulieren <br />
Mitarbeiter manipulieren <br />
Ticket anlegen <br />
Ticket bearbeiten 1 1<br />
Notiz anlegen <br />
Notiz bearbeiten <br />
1 = Nur der Erschaffer des Tickets kann dieses bearbeiten<br />
3.3 Überblick über den Lebenszyklus einer Buchung:<br />
Wir stützen uns auf folgende Hauptkomponenten:<br />
•Betreuer: wird einer oder mehreren Buchungen zugeordnet und besitzt einen 'Namen' sowie eine<br />
eindeutige ID.<br />
•Buchung: stellt die Aggregation aus Datenbankkomponenten dar und ist selbst das zentrale Objekt.<br />
•Notiz: ermöglicht eine oder mehrere Vermerke, die sich direkt auf die Buchung beziehen.<br />
•Ticket: Eine Datenaggregation, welche Attribute wie 'Fälligkeitsdatum',' Adressat' und 'bearbeitet'<br />
enthält. Letztes gibt lediglich Auskunft, ob das Ticket bearbeitet wurde. Ebenso ist ein Textfeld<br />
vorgesehen, welches optionale Informationen für dieses Ticket enthalten kann.<br />
Alle Aktionen werden über Webformulare realisiert. Dazu ist es nötig, dass die Akteure sich zuvor<br />
anmelden, um ihre spezifischen Rechte nutzen zu können. Im Falle des Kunden ist eine Anmeldung<br />
nicht nötig, da er nur über Standardrechte verfügt. Nachdem das Formular angefragt ist, erfolgt eine<br />
Initialisierung, die Eingabe der Daten und deren Validierung.<br />
In der obigen Abbildung sieht man den vereinfachten Ablauf einer Buchungsabwicklung.<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
4
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Als erstes wird eine Buchung angefragt (/LF 10/). Dadurch erhält sie denn Status „angefragt“ und<br />
geht in den Zustand „Buchung angefragt“. Nun kommt es zu internen Regelungen, sodass die<br />
Buchung den Status „bereit“ bekommt und damit im Zustand „Buchung bereit“ ist (Buchung<br />
vorbereiten). Solange die Buchung noch nicht stattgefunden hat, also das real-zeitliche Event noch<br />
nicht angefangen hat, kann eine Buchung storniert werden (/LF 50/). Dadurch wird sie in den<br />
Zustand „Buchung storniert“ überführt. In diesem Zustand kann sie entweder reaktiviert werden<br />
und in den Zustand „Buchung angefragt“ wieder übergehen (/LF 60/), oder sie kann gelöscht<br />
werden (/LF 110/). Durch das Löschen wird die Buchung nur logisch gelöscht und nicht<br />
physikalisch, d.h. die Buchung wird nicht tatsächlich gelöscht, sondern nur aus dem System<br />
entfernt.<br />
Sobald die Buchung real-zeitliche durchgeführt wird, wird sie in den Zustand „Buchung<br />
stattgefunden“ überführt, dabei ändert sich der Status auf „stattgefunden“. Falls die Buchung vor<br />
der real-zeitliche Durchführung nicht im Zustand „Buchung bereit“ war, wird sie automatisch<br />
storniert. Im Zustand „Buchung stattgefunden“ kann die Buchung nachbearbeitet werden (/LF 80/)<br />
und danach abgeschlossen werden (/LF 160/). Dadurch wird die Buchung in den Zustand „Buchung<br />
archiviert“ überführt, der Status wird zu „archiviert“ und die Buchung wird exportiert.<br />
5
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
3.4 Überblick über die Sichten der Präsentationsschicht:<br />
Die Präsentationsschicht wird durch die einzelnen Rollen unterschiedlich dargestellt. Dabei<br />
entstehen die folgenden Sichten.<br />
3.4.1 Kundensicht:<br />
– Öffentliche Sicht auf den Kalender, wie sie bereits im bestehenden INSPIRATA-System<br />
vorhanden ist<br />
– (eingeschränkte Sicht für Nutzer) ein Kunde kann alle bestehenden Buchungsanfragen<br />
einsehen (ermöglicht durch die öffentliche Kalendersicht)<br />
– jede Buchung wird mit einem einzigartigen Zugriffsschlüssel versehen, über diesen kann<br />
jeder Kunde seine eigenen Buchungen einsehen<br />
6
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
3.4.2 Betreuersicht:<br />
– Über die Sicht der Betreuer ist es möglich, dass sich ein Betreuer selbst zu einer Buchung<br />
zuordnet und Buchungen einsehen kann, die ihm zugeordnet sind<br />
– Öffentliche Sicht auf den Kalender, wie sie bereits im bestehenden INSPIRATA-System<br />
vorhanden ist<br />
7
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
3.4.3 Mitarbeiter-/Verwaltersicht:<br />
– Die Mitarbeitersicht ermöglicht es Mitarbeitern Buchungen einzusehen und Änderungen an<br />
ihnen vorzunehmen, letztere werden durch Notizen dokumentiert und ermöglichen so,<br />
Änderungen in einer Buchung nachzuvollziehen<br />
– Öffentliche Sicht auf den Kalender, wie sie bereits im bestehenden INSPIRATA-System<br />
vorhanden ist<br />
8
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
3.5 Verwendung globaler Variablen zum Management globaler Zustände:<br />
3.5.1 Verwendung globaler SESSIONS Variablen:<br />
Im Buchungssystem der Inspirata gibt es genau 2 verschiedene SESSION Variablen. Beiden werden<br />
in der login.php initialisiert und bei erfolgreichem Login gesetzt. Die erste SESSION Variable<br />
heißte $_SESSION["user_id"]. Sie speichert die eindeutige ID des gerade eingeloggten Users. So<br />
ist es im gesamten System jederzeit möglich den gerade angemeldeten User zu identifizieren. Die<br />
Variable wird unter anderem in den Dateien betreuer.php, buchung.php, index.php,<br />
manipulation.php, ticket.php, ticket_manipulation.php, ticket_help.php, notiz_manipulatipon.php,<br />
buchung_archivieren.php, notiz_help.php, betreuer_help.php und aufwand_help.php benutzt. Wie<br />
man sieht, wird die $_SESSION["user_id"] in jeder Datei verwendet, die einen direkten Output zur<br />
Verfügung stellen. Da hier in jeder Datei geprüft wird, ob die SESSION Variable gesetzt ist, um zu<br />
verifizieren, ob der User, der die Datei aufruft, eingeloggt ist. Die zweite SESSION Variable heißt<br />
$_SESSION["user_nickname"] und speichert den Nickname des gerade eben eingeloggten Users.<br />
Sie wird im System aber praktisch nie genutzt, da sich alle benötigten Eigenschaften eines Users<br />
über seine UserID ermitteln lassen, die wiederum in der $_SESSION["user_id"] gespeichert ist.<br />
3.5.2 Verwendung globaler Variablen im Buchungssystem:<br />
Im Buchungssystem der Inspirata werden an einigen Stellen systemweite Variablen gesetzt, die hier<br />
noch einmal genauer erläutert werden sollen. Alle globalen Variablen sind in der connect.php<br />
vereinbart. Zum einem ist das die Variable „$useInternalDb“. Diese Variable bestimmt, ob zu<br />
Authentifizierung am System die interne Datenbank genutzt wird oder eine beliebige externe<br />
Datenbank. Wird ihr der Wert „1“ zu gewiesen, dann wird die interne Datenbank genutzt. Ist<br />
$useInternalDb = 0, dann wird die externe Datenbank zur Identifikation angesteuert.<br />
Des Weiteren existieren noch die beiden globalen Variablen $dbconnect und $dbconnectExternal.<br />
Beide speichern eine aktive Verbindung zu je einer Datenbank und stellen sie systemweit zur<br />
Verfügung. Dabei speichert $dbconnect die Verbindung zur internen Datenbank, also dort wo die<br />
Buchungsdaten etc. liegen und die $dbconnectExternal eine Verbindung zur einer externen<br />
Datenbank, die alternativ die Logindaten enthält. Außerdem existiert noch die globale Variable<br />
$path. Diese gibt den Pfad zum Exportieren von Daten in RDF-Basis an.<br />
3.5.3 Verwendung GET/POST Variablen im Buchungssystem:<br />
An dieser Stelle soll eine Übersicht über alle im Buchungssystem verwendeten GET/POST<br />
Variablen gegeben werden. Es wird erklärt zu welcher Datei sie gehören, was sie bewirken und was<br />
sie beinhalten.<br />
Datei: anmelden.php<br />
GET-Variablen:<br />
Name: „datum“<br />
Typ: Datum im Format ("Y-m-d")<br />
Beschreibung: Über diese Variable kann ein beliebiges Datum gesetzt werden, mit<br />
der die Datei dann arbeitet (bestimmt den Tag den der Kalender anzeigt). Falls sie<br />
nicht gesetzt wird, wird automatisch das aktuelle Datum ermittelt und die Datei<br />
arbeitet damit.<br />
9
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Name: „token“<br />
Typ: String<br />
Beschreibung: Wird dieser Parameter gesetzt, schaut die Datei nach, ob es eine<br />
Buchung gibt zu der dieser Token gehört. Falls ja wird diese angezeigt, wenn nicht<br />
dann wird die Übersichtseite zum Anlegen einer neuen Buchung angezeigt.<br />
Datei: anmelden_help.php<br />
GET-Variablen:<br />
Name: „date“<br />
Typ: Datum im Format ("Y-m-d")<br />
Beschreibung: Über diese Variable wird bestimmt mit welchem Datum das Formular<br />
initialisiert wird.<br />
Datei: aufwand_help.php<br />
GET-Variablen:<br />
Name: „buchungsid“<br />
Typ: integer<br />
Beschreibung: Über diese Variable wird bestimmt, zu welcher Buchung eine<br />
Aufwandserfassung geschehen soll.<br />
Name: „betreuerid“<br />
Typ: integer<br />
Beschreibung: Über diese Variable wird mitgeteilt, für welchen Betreuer die<br />
Aufwandserfassung erfolgt.<br />
Datei: betreuer.php<br />
GET-Variablen:<br />
Name: „betreuer“<br />
Typ: integer<br />
Beschreibung: Über diese Variable wird bestimmt für welchen Mitarbeiter der<br />
Inspirata der Einsatzplan angezeigt werden soll. Wird der Parameter nicht gesetzt,<br />
wird der Einsatzplan für den aktuell eingeloggten User angezeigt.<br />
Datei: betreuer_help.php<br />
GET-Variablen:<br />
Name: „buchungsid_val“<br />
Typ: integer<br />
Beschreibung: Über diese Variable wird bestimmt, für welche Buchung eine<br />
Betreuerzuordnung geschehen soll.<br />
Datei: buchung.php<br />
GET-Variablen:<br />
Name: „buchung“<br />
Typ: integer<br />
Beschreibung: Über diese Variable (ID einer Buchung) wird bestimmt, welche<br />
Buchung angezeigt werden soll.<br />
10
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Name: „note“<br />
Typ: integer<br />
Beschreibung: Über diese Variable wird bestimmt, welche Notiz angezeigt werden<br />
soll.<br />
Name: „stattgefunden“<br />
Typ: equal<br />
Beschreibung: Ist diese Variable gesetzt, wird dem User eine Liste von Buchungen<br />
präsentiert, die im Status „stattgefunden sind“.<br />
Name: „aufwandserfassung“<br />
Typ: equal<br />
Beschreibung: Ist diese Variable gesetzt, wird eine Liste von Betreuern angezeigt, die<br />
zur letzten angeschauten Buchung als Betreuer eingetragen waren.<br />
Name: „alert“<br />
Typ: equal<br />
Beschreibung: Ist diese Variable gesetzt wird eine Warnmeldung ausgeben, das zur<br />
Buchung noch keine Betreuer zugeordnet sind.<br />
Name: „action“<br />
Typ: boolean<br />
Beschreibung: Ist diese Variable mit einem „true“gesetzt und die Buchung im Status<br />
„angefragt“, wird die Buchung in den Zustand „akzeptiert“ überführt. Ist diese<br />
Variable gesetzt und die Buchung im Status „akzeptiert“, wird die Buchung in den<br />
Zustand „bereit“ überführt.<br />
Name: „stornieren“<br />
Typ: boolean<br />
Beschreibung: Ist diese Variable mit einem „true“ gesetzt und die Buchung im Status<br />
„angefragt“ oder „akzeptiert“ oder „bereit“, wird die Buchung in den Zustand<br />
„storniert“ überführt.<br />
Name: „loeschen“<br />
Typ: boolean<br />
Beschreibung: Ist diese Variable mit einem „true“ gesetzt und die Buchung im Status<br />
„storniert“, wird die Buchung in den Zustand „gelöscht“ überführt.<br />
Name: „reaktivieren“<br />
Typ: boolean<br />
Beschreibung: Ist diese Variable mit einem „true“ gesetzt und die Buchung im Status<br />
„storniert“, wird die Buchung in den Zustand „angefragt“ überführt.<br />
Datei: buchung_archivieren.php<br />
GET-Variablen:<br />
Name: „buchungsid“<br />
Typ: integer<br />
11
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Beschreibung: Über diese Variable wird bestimmt, welche Buchung archiviert<br />
werden soll.<br />
Datei: formular.php<br />
GET-Variablen:<br />
Name: „forward“<br />
Typ: String<br />
Beschreibung: Über diese Variable wird bestimmt, welche Seite nach dem<br />
erfolgreichen Login aufgerufen wird. Zum Beispiel ticket.php.<br />
Name: „fehler“<br />
Typ: equal<br />
Beschreibung: Ist diese Variable gesetzt, wird eine Fehlermeldung ausgegeben, dass<br />
die Logindaten falsch waren.<br />
Datei: index.php<br />
GET-Variablen:<br />
Name: „datum“<br />
Typ: Datum im Format ("Y-m-d")<br />
Beschreibung: Über diese Variable kann ein beliebiges Datum gesetzt werden, mit<br />
der die Datei dann arbeitet (bestimmt den Tag den der Kalender anzeigt). Falls sie<br />
nicht gesetzt wird, wird automatisch das aktuelle Datum ermittelt und die Datei<br />
arbeitet damit.<br />
Datei: kalender.php<br />
GET-Variablen:<br />
Name: „tag“<br />
Typ: integer [1-31]<br />
Beschreibung: Bestimmt den ausgewählten Tag, der im Kalender angezeigt wird.<br />
Name: „monat“<br />
Typ: integer [1-12]<br />
Beschreibung: Bestimmt den ausgewählten Monat, der im Kalender angezeigt wird.<br />
Name: „jahr“<br />
Typ: integer<br />
Beschreibung: Bestimmt das Jahr, das im Kalender angezeigt wird.<br />
Datei: login.php<br />
POST-Variablen:<br />
Name: „name“<br />
Typ: String<br />
Beschreibung: Übergibt den Loginnamen an die Datei.<br />
Name: „pwd“<br />
Typ: String<br />
Beschreibung: Enthält das Loginpasswort.<br />
12
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Datei: manipulation.php<br />
GET-Variablen:<br />
Name: „buchung“<br />
Typ: integer<br />
Beschreibung: Übergibt die ID der Buchung, die bearbeitet werden soll.<br />
Datei: notiz_help.php<br />
GET-Variablen:<br />
Name: „buchungsid_val“<br />
Typ: integer<br />
Beschreibung: Übergibt die ID der Buchung zu der eine neue Notiz angelegt werden<br />
soll.<br />
Datei: notiz_manipulation.php<br />
GET-Variablen:<br />
Name: „notizid_vall“<br />
Typ: integer<br />
Beschreibung: Übergibt die ID der Notiz zu der die bearbeitet werden soll.<br />
Datei: ticket.php<br />
GET-Variablen:<br />
Name: „datum“<br />
Typ: Datum im Format ("Y-m-d")<br />
Beschreibung: Über diese Variable kann ein beliebiges Datum gesetzt werden, mit<br />
der die Datei dann arbeitet (bestimmt den Tag den der Kalender anzeigt). Falls sie<br />
nicht gesetzt wird, wird automatisch das aktuelle Datum ermittelt und die Datei<br />
arbeitet damit.<br />
Name: „ticket“<br />
Typ: integer<br />
Beschreibung: Übergibt die ID eines Tickets, das angezeigt werden soll. Zusätzlich<br />
wird, wenn der User über entsprechende Rechte verfügt, die Funktion „Ticket<br />
bearbeiten“ angezeigt. Wenn der Parameter nicht übergeben wird, wird dem User<br />
eine Ticketübersicht über alle seine Tickets angezeigt.<br />
Datei: ticket_manipulation.php<br />
GET-Variablen:<br />
Name: „ticketid_val“<br />
Typ: integer<br />
Beschreibung: Übergibt die ID des Tickets, das bearbeitet werden soll.<br />
Datei: ticket_help.php<br />
GET-Variablen:<br />
Name: „buchungsid_val“<br />
Typ: integer<br />
Beschreibung: Übergibt die ID der Buchung zu der ein Ticket erstellt werden soll.<br />
13
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
3.6 Notizen und Ticketsystem:<br />
3.6.1 Notiz<br />
In verschiedenen Etappen(Zuständen) einer Buchung können Notizen (Kommentare in Textform)<br />
angelegt werden. Diese haben im Gegensatz zu einem Ticket kein Adressaten oder ein<br />
Fälligkeitsdatum. Dadurch empfiehlt sich eine Notiz vor allem für die Buchungshistorie.<br />
Vorbedingung: Die Buchung muss sich in dem Zustand 'Buchung angefragt' oder 'Buchung<br />
akzeptiert' oder 'Buchung bereit' oder 'Buchung storniert' befinden.<br />
3.6.2 Ticket<br />
Ist ein elektronisches Werkzeug, welches die Mitarbeiter der Inspirata während einer Buchung<br />
benutzen können und es dient intern als Supportunterstützung. Es soll die Buchungsabwicklung<br />
vereinfachen. Dafür besteht ein Ticket aus einem Textfeld, für einem Kommentar, einem<br />
Fälligkeitsdatum, bis zu diesem Datum erscheint das Ticket, einen oder mehreren Adressaten und<br />
einem Feld bearbeitet. Dieses Feld gibt an, ob das Ticket schon bearbeitet wurde. Ein Ticket wird<br />
als Erinnerung für ein spezifisches Ereignis verwendet oder als Werkzeug für die<br />
Betreuerzuordnung.<br />
Vorbedingung: Die Buchung muss sich in dem Zustand 'Buchung angefragt' oder 'Buchung<br />
akzeptiert' oder 'Buchung bereit' oder 'Buchung storniert' befinden.<br />
3.7 Formulare:<br />
Die Formulare dienen der Buchungsanfrage, d.h. zum Erstellen der Buchung, oder zur<br />
Buchungsbearbeitung. Jedes Formular besitzt Ressourcen, wie zum Beispiel die Buchungsdaten<br />
oder Notizen. Außerdem besitzt sie eine Session. Diese Session ist durch ein Timeout begrenzt.<br />
Falls es zum Timeout innerhalb einer Session kommt, wird der Inhalt des Formulars verworfen und<br />
damit erfolgt der Abbruch der Buchungsanfrage oder -bearbeitung. Zur Vermeidung von<br />
inkonsistenten Zuständen muss entschieden werden, ob bestimmte Ressourcen während einer<br />
Session für andere Benutzer gesperrt werden.<br />
3.7.1 Lebenszyklus eines Formulars:<br />
Jedes Formular durchläuft mehrere Zustände. Die Übergänge zwischen den Zuständen werden<br />
durch Prozesse/Interaktionen des Benutzers mit dem Formular ausgelöst.<br />
Als erstes befindet sich das Formular im Zustand 'Initialisiert'. Dort erfolgt die Initialisierung des<br />
Formulars, d.h. es werden Ressourcen geladen und, falls gewollt, manche gesperrt. Sobald der<br />
Nutzer mit dem Ausfüllen des Formulars beginnt, wechselt der Zustand in den neuen Zustand<br />
'Ausgefüllt'. Solange der Nutzer das Formular nicht bestätigt oder abbricht oder ein Timeout eintritt,<br />
bleibt das Formular in diesem Zustand. Drückt der Benutzer den Abbrechen-Button, so erfolgt ein<br />
Zustandswechsel. Nun wird dem Nutzer die Startseite oder eine Messageseite angezeigt.<br />
Falls der Benutzer das Formular bestätigt, wechselt es in den Zustand 'Bestätigt'. Der nächste<br />
Übergang erfolgt nicht durch eine Interaktion des Nutzers, sondern durch das System. Es überprüft<br />
die eingegebenen Daten und wechselt entweder in den Zustand 'Validiert', falls das Formular<br />
korrekt ausgefüllt wurde, oder in einen Fehlerzustand, falls die Daten nicht validiert wurden. Falls<br />
dies geschieht, geht das Formular wieder in den Zustand 'Initialisiert' über. Falls die Daten validiert<br />
wurden, werden die Daten in die Datenbank übernommen.<br />
14
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
4 Struktur und <strong>Entwurf</strong>skonzepte der Pakete<br />
4.1 Genauerer Überblick über die Schichtenarchitektur:<br />
4.1.1 Datenschicht:<br />
Die Daten des Inspirata Buchungssystem werden in einer MySQL-Datenbank gespeichert, die<br />
gleichzeitig die Datenschicht des Systems darstellt. Des Weiteren gehören zur Datenschicht die<br />
PHP-Klassen, die diese Daten aus der Datenbank auslesen und dem System zur Verfügung stellen.<br />
Erläuterung aller beteiligten Dateien:<br />
connect.php<br />
Die connect.php stellt die Verbindung zur MySQL-Datenbank her und speichert sie in<br />
der globalen Variable „$dbconnect“. Über diese Variable haben alle Funktionen aus<br />
der buchungsdaten.php und der db.php eine aktive Verbindung zur Datenbank.<br />
Außerdem müssen in diese Datei die umgebungsspezifischen Zugangsdaten zur Datenbank<br />
eingetragen werden.<br />
buchungsdaten.php<br />
In dieser Datei befinden sich ausschließlich SQL-Queries, die die Daten aus der<br />
MySQL-Datenbank auslesen und dem System verfügbar machen. Dies geschieht in<br />
Form von aufrufbaren Funktionen, die jeweils die gewünschten Daten als Return-Wert<br />
liefern.<br />
15
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
dp.php<br />
Die dp.php stellt, ähnlich wie die buchungsdaten.php, Zugriff auf die Daten in der MySQL-<br />
Datenbank bereit. Wobei die hier bereitgestellten Funktionen speziell auf das Formularsystem<br />
des Buchungssystems zugeschnitten sind, weswegen sie auch von der zentralen Datenbank<br />
Zugriffsdatei buchungsdaten.php ausgelagert sind.<br />
4.1.2 Logikschicht:<br />
In der Logikschicht des Inspirata Buchungssystems werden die Daten aus der Datenschicht entgegengenommen,<br />
verarbeitet und aufbereitet. Letztendlich werden sie dann der Präsentationsschicht<br />
übergeben.<br />
Erläuterung aller beteiligten Dateien:<br />
support.php<br />
Die support.php ist die zentrale Verarbeitungsklasse des Inspirata Buchungssystems. Sie<br />
wird in fast allen anderen Dateien inkludiert und stellt eine große Bandbreite an<br />
Funktionen zur Verfügung. Fast alle Funktionen nehmen Daten-Arrays aus der<br />
Datenschicht/Datenbank (buchungsdaten.php) entgegen und bereiten sie so auf, dass sie<br />
strukturiert ausgegeben werden können.<br />
helper.php<br />
Diese Datei enthält ein paar Funktionen, die Formatierungsfehler korrigieren<br />
sollen und wird von der support.php aufgerufen.<br />
buchung_akzeptieren.php<br />
Die buchung_akzeptieren.php enthält nur eine Funktion und hat die Aufgabe eine<br />
übergebene Buchung in den Zustand „akzeptiert“ zu überführen.<br />
buchung_archivieren.php<br />
Die Datei buchung_archivieren dient dazu, sich Informationen zu einer Buchung (Betreuerstunden<br />
usw.) anzeigen zu lassen. Wenn man mit allem zufrieden ist, hat man die Möglichkeit<br />
(wenn vorher alle Betreuer ihre Aufwandserfassung ausgefüllt haben), diese Buchung in<br />
den Zustand archiviert zu überführen. Wenn Unstimmigkeiten vorliegen, kann ausgewählt<br />
werden, an wen der Betroffenen ein Ticket geschickt werden soll.<br />
buchung_bereit.php<br />
Die buchung_bereit.php enthält nur eine Funktion und hat die Aufgabe eine<br />
übergebene Buchung in den Zustand „bereit“ zu überführen. Falls die Buchung nicht die<br />
Kriterien erfüllt um in den Zustand überführt zu werden, verbleibt sie im Zustand „akzeptiert“<br />
buchung_loeschen.php<br />
Die buchung_loeschen.php enthält nur eine Funktion und hat die Aufgabe eine<br />
übergebene Buchung in den Zustand „loeschen“ zu überführen. Eine Buchung in diesem Zustand<br />
wird im Buchungssystem nicht mehr erscheinen und als gelöscht betrachtet. Sie existiert<br />
aber noch physisch in der Datenbank.<br />
buchung_reaktivieren.php<br />
Die buchung_reaktivieren.php enthält nur eine Funktion und hat die Aufgabe eine<br />
übergebene Buchung zu reaktivieren und in den Zustand „angefragt“ zu überführen.<br />
buchung_stornieren.php<br />
Die buchung_stornieren.php enthält nur eine Funktion und hat die Aufgabe eine<br />
übergebene Buchung zu stornieren und in den Zustand „storniert“ zu überführen.<br />
kalender.php<br />
Diese Datei stellt die Kalenderfunktionalität des Buchungssystems bereit. Die<br />
16
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Funktion baut den Kalender selbst zusammen und holt sich die benötigten<br />
Daten/Informationen über die support.php. Sie gibt am Ende einen fertigen<br />
HTML-String zurück, der den fertigen Code enthält.<br />
logout.php<br />
Die logout.php zerstört die Session eines Users und meldet ihn somit vom System ab.<br />
Danach wird der User automatisch zu der Login Seite (formular.php) umgeleitet, da das System<br />
eine Identifizierung fordert.<br />
mail.php<br />
Die mail.php verwaltetet alle Aufgaben rund um das Versenden von Emails im<br />
System und stellt dafür eine Reihe von Funktionen zur Verfügung. Die dafür<br />
benötigten Daten, erhält sie, über die bereitgestellten Funktionen aus der<br />
Datenschicht (buchungsdaten.php).<br />
mail_cronjob.php<br />
Die mail_warning.php enthält nur zwei Funktionen. Die erste Funktion hat die Aufgabe eine<br />
Mail an alle Mitarbeiter der Inspirata zu senden, wenn sie eine Buchung findet, die noch<br />
nicht im Zustand „bereit“ ist, aber schon bald stattfindet. Und die zweite Funktion kümmert<br />
sich darum, dass Tickets, die das Fälligkeitsdatum überschritten haben, deaktiviert werden.<br />
cronjob.php<br />
Die cronjob.php ist ein Skript, welches von einem Cronjob alle 15 Minuten ausgeführt<br />
wird. Das Skript liest die aktuelle Zeit und das aktuelle Datum aus und realisiert dann den<br />
Übergang zwischen „bereit“ und „stattgefunden“. Falls sich die Buchung noch nicht im Zu<br />
stand „bereit“ befunden hatte, wird die Buchung storniert.<br />
export.php<br />
Die export.php ist ein Skript, welches eine Buchung mit allen Attributen ausliest und diese<br />
dann im RDF-Format in eine Datei schreibt. Außerdem kann man den Einsatz im RDF-Format<br />
in eine Datei exportieren.<br />
formular_build.php<br />
Dies stellt einige Objekte zur Gestaltung und Überprüfung von Formularen bereit.<br />
4.1.3 Präsentationsschicht:<br />
In der Präsentationsschicht des Inspirata Buchungssystems werden die Daten aus der Logikschicht<br />
entgegengenommen und zu einem View zusammengesetzt. Zugleich bildet sie auch die Schnittstelle<br />
zum Nutzer, sodass dieser mit dem Buchungssystem interagieren kann.<br />
Erläuterung aller beteiligten Dateien:<br />
anmelden.php<br />
Die anmelden.php stellt die Kunden Sicht (View) zur Verfügung und ansonsten völlig<br />
losgelöst vom sonstigen Buchungssystem, was das Design und Funktion betrifft. Zur<br />
Datenbereitstellung etc. greift sie natürlich auf die Logikschicht des Systems zurück.<br />
Wird die Datei mit einem Token in der URL aufgerufen, wird anstatt des<br />
Anmeldeformular, die zum Token zugehörige Buchung angezeigt. Ansonsten wird dem<br />
Kunden die Möglichkeit geboten sich zu informieren und eine neue Buchung anzulegen.<br />
anmelden_help.php<br />
Die anmelden_help.php stellt intern das Formular zur Anmeldung einer neuen<br />
Buchung zusammen und zeigt es dann dem User an.<br />
html_help.php<br />
Die html_help.php ist eine Support-Datei, hauptsächlich für die Datei anmelden.php.<br />
Sie enthält Funktionen die nur HTML-Code zurückliefern, welcher zur Bilddarstellung<br />
benötigt wird.<br />
17
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
betreuer.php<br />
Die betreuer.php gibt dem User eine Übersicht über alle Buchungen, die ihn selbst<br />
betreffen oder auf Wunsch eine Übersichtplan über aller Buchungen zu einem<br />
bestimmten internen User. Wenn die Datei ohne Parameter aufgerufen wird, gibt sie den<br />
Übersichtsplan des gerade angemeldeten Users zurück. Wenn eine BetreuerID übergeben<br />
wird, dann wird der Übersichtsplan dieses Users angezeigt, insofern er existiert.<br />
betreuer_help.php<br />
Die betreuer_help.php hat die Aufgabe ein Formular bereit zu stellen, welches die Betreuerzuordnung<br />
zu einer Buchung ermöglicht.<br />
buchung.php<br />
Die Datei buchung.php verwaltet alle Aufgaben der Darstellung, rund um eine Buchung. Sie<br />
bietet eine Übersicht über alle Informationen einer Buchung und stellt Schnittstellen zu folgenden<br />
weiteren Funktionen zur Verfügung. Eine Buchung kann bearbeitet werden bzw.<br />
können der Buchung Betreuer zugeordnet werden. Des Weiteren bietet sie, je nach dem jeweiligen<br />
Status der Buchung, weitere Funktionen wie, Buchung „akzeptieren“, Buchung<br />
„bereit“, Buchung „stornieren“, Buchung „reaktivieren“ und Buchung „löschen“. Die Funktionen<br />
Ticket erstellen und Notiz erstellen stehen unabhängig vom Status der Buchung immer<br />
zur Verfügung.<br />
index.php<br />
Die Datei index.php ist die Startseite des Buchungssystems. Sie hat die Aufgabe eine Übersicht<br />
über alle Buchungen zu vermitteln. Hierfür bietet sie den Kalender der alle Buchungen<br />
eines Monats anzeigt. Ist ein konkreter Tag ausgewählt, stellt sie alle Buchungen, die an<br />
diesem Tag stattfinden dar. Wenn kein konkretes Datum ausgewählt ist, stellt sie automatisch<br />
alle Buchungen des aktuellen Tages dar.<br />
notiz_help.php<br />
Die notiz_help.php hat die Aufgabe ein Formular bereit zu stellen, welches es ermöglicht<br />
eine neue Notiz zu einer Buchung zu erstellen.<br />
notiz_manipulation.php<br />
In der notiz_help.php wird ein Formular bereit gestellt, welches es ermöglicht eine Notiz einer<br />
Buchung zu bearbeiten.<br />
ticket.php<br />
Die Datei buchung.php verwaltet alle Aufgaben der Darstellung, rund um die Tickets. Sie<br />
bietet eine Übersicht über alle Tickets, die den eingeloggten User betreffen und stellt dem<br />
User die Möglichkeit zur Verfügung, die Tickets anzuschauen und zu bearbeiten.<br />
ticket_help.php<br />
Mit Hilfe von dieser Datei kann ein Ticket zu einer Buchung angelegt werden<br />
und die Empfänger für dieses Ticket können ebenfalls angegeben werden.<br />
ticket_manipulation.php<br />
Damit ist es einem Schöpfer eines Tickets möglich, ein von Ihm angelegtes Ticket zu<br />
bearbeiten.<br />
formular.php<br />
Die Datei formular.php hat die Aufgabe dem User ein Login Formular bereitzustellen und<br />
diese eingegeben Daten dann an die login.php weiterzuleiten.<br />
aufwand_help.php<br />
Dient dazu, dass ein Betreuer zu einer seiner Buchung seine Arbeitszeiten<br />
abrechnen kann. Um Spezialfälle abzudecken, kann er ein Kommentarfeld ausfüllen,<br />
um seine Arbeitszeit zu erklären.<br />
18
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
manipulation.php<br />
Hiermit ist es einem Verwalter oder Mitarbeiter möglich, Änderungen an einer gegebenen<br />
Buchung vorzunehmen. Diese Änderungen werden in der Änderungsnotiz zu diesem Ticket<br />
aufbewahrt.<br />
html.php<br />
Stellt die Grundlage dar, um mittels formular_build.php erzeugte Objekte auf einer Webseite<br />
darzustellen.<br />
login.php<br />
Die login.php nimmt die eingegeben Login-Daten vom User entgegen und gleicht sie<br />
mit dem egroupware-System der Inspirata ab. Sind sie korrekt wird dem User<br />
Zugang zum System gewährt. Über die globale Variable $useInternalDb kann man auch die<br />
Inspirata Datenbank zum identifizieren benutzen.<br />
recover.php<br />
Die recover.php bekommt von der formular.php eine Email-Adresse übergeben. Diese<br />
gleicht sie mit der Tabelle „angestellten“ ab. Findet sie einen Match, generiert sie ein neues<br />
Passwort und trägt es anstatt des alten Passwortes ein. Dieses wird dann auch dem User, der<br />
sein Passwort zurückgesetzt hat, via Mail zugeschickt.<br />
4.2 Genauerer Überblick über den Lebenszyklus einer Buchung:<br />
(Hauptprozesse die eine Buchung durchläuft)<br />
19
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
(Interne Prozesse zum vorbereiten einer Buchung)<br />
Der Lebenszyklus einer Buchung besteht aus mindestens fünf Zuständen. Um in den ersten<br />
Zustand, „Buchung angefragt“, zu gelangen, muss die Buchung mithilfe der anmelden_help.php<br />
erstellt werden (/LF 10/). In diesem Zustand kann ein Mitarbeiter die Buchung durch<br />
manipulation.php bearbeiten (/LF 40/). Er kann auch die Buchung in einen anderen Zustand<br />
überführen, in den Zustand „Buchung akzeptiert“ oder „Buchung storniert“. Im zweiten Fall wäre<br />
die Buchung storniert wurden (buchung_stornieren.php, /LF 50/). In diesem Zustand kann man die<br />
Buchung nur wieder reaktivieren, mithilfe der buchung_reaktivieren.php (/LF 60/) oder sie löschen,<br />
mithilfe der buchung_loeschen.php (/LF 110/). Durch das Löschen erscheint die Buchung nicht<br />
länger in der Softwarelösungen, aber sie wurde nicht physikalisch gelöscht. Durch das Reaktivieren<br />
wird die Buchung wieder in den Zustand „Buchung angefragt“ übergehen. Falls die Buchung durch<br />
die buchung_akzeptieren.php aufgerufen wird, ändert sich der Status der Buchung von „angefragt“<br />
in „akzeptiert“ und die Buchung ist dann im Zustand „Buchung akzeptiert“ (/LF 20/). In diesem<br />
Zustand kann die Buchung wieder, wie schon oben beschrieben, bearbeitet werden. Außerdem kann<br />
sie auch in diesem Zustand storniert werden. Der einzig neue Prozess ist der Prozess, der Betreuer<br />
einer Buchung zuordnet (/LF 70/). Ein Mitarbeiter kann mithilfe der betreuer_help.php einen oder<br />
mehrere Betreuer zuordnen und dies wieder rückgängig machen. Dagegen kann ein Betreuer nur<br />
sich selbst zuordnen (auch wieder mit der betreuer_help.php). Sobald die Betreuerzuordnung<br />
erfolgt, wird auch ein Zustandsübergang vollführt. Die Buchung wird durch die buchung_bereit.php<br />
in den Zustand „Buchung bereit“ überführt. In diesem Zustand kann die Buchung auch wieder<br />
bearbeitet oder storniert werden. Damit es nun zum nächsten Zustandsübergang kommt, also in den<br />
Zustand „Buchung stattgefunden“, muss das real-zeitliche Event, Buchung wurde ausgeführt,<br />
durchgeführt werden. Dies geschieht im System mit einem Cronjob. Dieser ruft dann das Skript<br />
cronjob.php auf, welches wiederum alle Buchungen zu dem spezifischen Datum und Zeit aus der<br />
Datenbank ausliest. Nun überprüft es den Status, wenn der Status gleich „bereit“ ist, wird die<br />
Buchung in den Zustand „Buchung stattgefunden“ überführt, sonst wird sie storniert. In Zustand<br />
„Buchung stattgefunden“ muss die Buchung nachbereitet werden (/LF 80/). Dazu muss jeder<br />
Betreuer, der der Buchung zugeordnet ist, eine Aufwandserfassung erstellen. Dies wird durch die<br />
20
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
aufwand_help.php realisiert. Sobald alle Aufwandserfassungen vorhanden sind, kann die Buchung<br />
archiviert werden (/LF 160/). Dadurch wird die Buchung in den Zustand „Buchung archiviert“<br />
überführt. Außerdem wird die Buchung und die Einsätze mithilfe der export.php exportiert.<br />
4.2.1 Geschäftsprozesse:<br />
/LF 10/ Geschäftsprozess: Buchung anfragen<br />
Beschreibung: Der Kunde füllt ein Webformular für eine neue Buchung aus. Danach erhält er<br />
einen Link inklusive zufälligem Zugriffsschlüssel, um später eingeschränkten Zugriff auf die<br />
Buchung zu erhalten. Im System wird eine Buchung im Zustand 'Buchung angefragt' angelegt.<br />
Vorbedingung: Der Kunde ist online.<br />
Nachbedingung: Die Buchung ist im Zustand 'Buchung angefragt' und alle Pflichtfelder sind<br />
ausgefüllt.<br />
/LF 20/ Geschäftsprozess: Buchung akzeptieren<br />
Beschreibung: Die Buchungsanfrage wird angenommen und der Kunde wird benachrichtigt.<br />
Vorbedingung: Ein Mitarbeiter oder Verwalter ist authentifiziert und die Buchung ist im Zustand<br />
'Buchung angefragt'.<br />
Nachbedingung: Die Buchung ist im Zustand 'Buchung akzeptiert'.<br />
/LF 30/ Geschäftsprozess: Buchungsauswahl nach Kalender<br />
Beschreibung: Die Buchungen sind mit dem Kalender verknüpft und können mithilfe diesem<br />
angezeigt werden.<br />
Vorbedingung: Eine Buchung ist mindestens im Zustand 'Buchung angefragt'.<br />
Nachbedingung: Die Buchung wird im Kalender angezeigt.<br />
/LF 40/ Geschäftsprozess: Buchung bearbeiten<br />
Beschreibung: Es werden die Daten einer Buchung manipuliert. Dabei werden unterschiedlichen<br />
Akteuren unterschiedliche Rechte zugestanden. So kann man einen Termin ändern, solange er noch<br />
im Zustand 'Buchung angefragt' ist.<br />
Vorbedingung: Der Akteur ist authentifiziert und die Buchung ist im einem Zustand, in dem jener,<br />
sie bearbeiten darf (siehe Tabelle Abschnitt Rechtemanagement).<br />
Nachbedingung: Die Buchung ändert ihren Zustand nicht. Außerdem wird eine Notiz angelegt, die<br />
den alten und neuen Wert der Änderungen beinhaltet.<br />
/LF 50/ Geschäftsprozess: Buchung stornieren<br />
Beschreibung: Die Buchung wird in den Zustand 'Buchung storniert' überführt und alle betroffenen<br />
Betreuer werden informiert. Außerdem wird der Kalender aktualisiert und der Kunde wird<br />
benachrichtigt.<br />
Vorbedingung: Ein Akteur ist authentifiziert und die Buchung ist im Zustand 'Buchung angefragt',<br />
'Buchung akzeptiert' oder 'Buchung bereit.<br />
Nachbedingung: Die Buchung ist im Zustand 'Buchung storniert'.<br />
/LF 60/ Geschäftsprozess: Buchung reaktivieren<br />
Beschreibung: Die Buchung wird reaktiviert und in den Zustand 'Buchung angefragt' überführt.<br />
Der Kunde wird benachrichtigt.<br />
Vorbedingung: Ein Mitarbeiter oder Verwalter ist authentifiziert und die Buchung ist im Zustand<br />
'Buchung storniert'. Der Kunde erwünscht die Reaktivierung.<br />
21
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Nachbedingung: Die Buchung ist im Zustand 'Buchung angefragt'.<br />
/LF 70/ Geschäftsprozess: Betreuer zuordnen<br />
Beschreibung: Betreuer werden durch einen Mitarbeiter oder Verwalter einer Buchung zugeordnet.<br />
Ein authentifizierter Betreuer kann sich außerdem selbst zuordnen.<br />
Vorbedingung: Ein Betreuer, Verwalter oder Mitarbeiter ist authentifiziert und die Buchung ist im<br />
Zustand 'Buchung akzeptiert'.<br />
Nachbedingung: Die Buchung ist im Zustand 'Buchung bereit'.<br />
/LF 80/ Geschäftsprozess: Buchung nachbereiten<br />
Beschreibung: Die Buchung wird nachbearbeitet und jeder Betreuer, der der Buchung zu geordnet<br />
ist, erstellt seine Aufwandserfassung.<br />
Vorbedingung: Ein Mitarbeiter oder Verwalter ist authentifiziert und die Buchung hat<br />
stattgefunden.<br />
Nachbedingung: Die Buchung ist im Zustand 'Buchung stattgefunden'.<br />
/LF 90/ Geschäftsprozess: Betreuer manipulieren<br />
Beschreibung: Verwalter bearbeitet Daten bezüglich eines Betreuers.<br />
/LF 100/ Geschäftsprozess: Mitarbeiter manipulieren<br />
Beschreibung: Verwalter bearbeitet Daten bezüglich eines Mitarbeiters.<br />
/LF 110/ Geschäftsprozess: Buchung löschen<br />
Beschreibung: Ein Mitarbeiter oder Verwalter löscht eine oder mehrere stornierte Buchungen.<br />
Dadurch werden sie unwiderruflich aus dem System entfernt, aber nicht physikalisch gelöscht.<br />
Vorbedingung: Die Buchung ist im Zustand 'Buchung storniert' und ein Mitarbeiter oder Verwalter<br />
ist authentifiziert.<br />
Nachbedingung: Die Buchung ist nicht mehr im System vorhanden.<br />
/LF 120/ Geschäftsprozess: Login Verfahren<br />
Beschreibung: Ein Benutzer identifiziert sich gegenüber dem System und erhält dadurch ein<br />
bestimmte Rolle mit entsprechenden Rechten.<br />
Vorbedingung: Der Benutzer ist im E-Groupwaresystem registriert.<br />
Nachbedingung: Der Benutzer ist mit entsprechender Rolle angemeldet.<br />
/LF 130/ Geschäftsprozess: RDF-Schnittstelle<br />
Beschreibung: Ein Verwalter kann mithilfe der Export-Schnittstelle, Buchungen aus der Datenbank<br />
exportieren. Mithilfe der Import-Schnittstelle ist ein Verwalter in der Lage, neue Betreuerdaten ins<br />
System einzuspielen.<br />
Vorbedingung: Ein Verwalter ist authentifiziert.<br />
/LF 140/ Geschäftsprozess: Ticket anlegen<br />
Beschreibung: Ein Mitarbeiter oder Verwalter kann mithilfe des Ticketsystem ein Ticket zu einer<br />
Buchung erstellen.<br />
Vorbedingung: Ein Benutzer hat sich gegenüber dem Systems als Mitarbeiter oder Verwalter<br />
identifiziert.<br />
Nachbedingung: Die gewählte Buchung besitzt ein Ticket, welches von einem Mitarbeiter oder<br />
Verwalter angelegt wurde.<br />
22
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
/LF 150/ Geschäftsprozess: Notiz anlegen<br />
Beschreibung: Ein Mitarbeiter, Verwalter oder Betreuer kann eine Notiz zu einer Buchung anlegen.<br />
Vorbedingung: Ein Benutzer hat sich gegenüber des Systems als Betreuer, Mitarbeiter oder<br />
Verwalter identifiziert.<br />
Nachbedingung: Die gewählte Buchung besitzt eine Notiz, welche von einem Betreuer, Mitarbeiter<br />
oder Verwalter angelegt wurde.<br />
/LF 160/ Geschäftsprozess: Buchung archivieren<br />
Beschreibung: Ein Mitarbeiter oder Verwalter archiviert eine Buchung. Diese wird dabei mit den<br />
Einsätzen der Betreuer exportiert.<br />
Vorbedingung: Die Buchung ist im Zustand 'Buchung stattgefunden' und das Nachbereiten der<br />
Buchung ist bereits vollendet. Außerdem ist der Mitarbeiter/Verwalter authentifiziert.<br />
Nachbedingung: Die Buchung ist im Zustand 'Buchung archiviert' und wurde exportiert.<br />
4.3 Genauerer Überblick über die Sichten der Präsentationsschicht:<br />
Das Buchungssystem der Inspirata verfügt über 3 verschiedene Sichten. Das wären die Sicht des<br />
Kunden oder auch externe Sicht, die Sicht des Betreuers und als letztes die Sicht des<br />
Mitarbeiters/Verwalters. Im nachfolgenden Text soll noch einmal genauer drauf eingegangen<br />
werden, wie die drei Sichten im Buchungssystem intern repräsentiert werden und wie sie<br />
miteinander agieren.<br />
4.3.1 Kundensicht:<br />
Aus der Sicht des Kunden ist es nur möglich eine neue Buchung anzulegen, sowie im Kalender zu<br />
blättern und sich zu informieren, an welchen Tagen schon Buchungen vorliegen. Zur Repräsentation<br />
dieser Schicht sind die Dateien amelden.php und anmelden_help.php verantwortlich. Die Datei<br />
amelden.php baut die Website zusammen und stellt den Link zum Anmeldeformular und den<br />
Kalender bereit. Über einen GET PARAMTER „token=“ kann Output der Datei Einfluss<br />
genommen werden. Wird der Parameter „token“ gesetzt, wird in der Datenbank nachgeschaut, ob<br />
eine entsprechende Buchung zum Token existiert. Falls ja, wird dem User eine detaillierte Ansicht<br />
seiner Buchung angezeigt. In der anmelden_help.php wird das Formular zum anmelden kreiert und<br />
zur Verfügung gestellt. Wird die anmelden.php mit dem Parameter „date=“ aufgerufen, wird das<br />
Formular mit dem entsprechenden Datum initialisiert. Die Sicht des Kunden ist weitgehend<br />
autonom vom Rest des Buchungssystems und das Design der Seite kann unabhängig vom Rest des<br />
Systems gesteuert werden.<br />
4.3.2 Betreuersicht:<br />
Die Präsentationsschicht des Betreuers wird aus einer Vielzahl von Dateien realisiert, die jeweils<br />
bestimmte Funktionen zur Verfügung stellen. Um in die Sicht eines Betreuers zu gelangen, muss<br />
man sich jedoch zuerst gegenüber dem System identifizieren. Diese Funktionalität übernimmt die<br />
Datei formular.php. Sie präsentiert ein Loginformular mit entsprechenden Feldern und übernimmt<br />
das Weiterschicken der Dateien via POST an die Datei login.php. Diese Datei gleicht die<br />
eingebenden Logindaten mit der Datenbank ab. Sind diese korrekt, wird der User am System<br />
angemeldet und an die Datei index.php weitergeleitet, welche die Startseite des Buchungssystems<br />
repräsentiert. Diese Webseite des Systems besteht aus statischen und dynamischen Content. Statisch<br />
ist das Menü oben und der Kalender. Die Funktionalität des Kalenders wird in der kalender.php<br />
bereitgestellt und die Funktionalität des Menüs in der support.php. Über das Menü wird man auf<br />
weitere Seiten weitergeleitet, die den gleichen statischen Content darstellen, wie die index.php, aber<br />
23
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
einen eigenen dynamischen Teil besitzen. Der dynamische Teil der index.php stellt eine<br />
Buchungsübersicht bereit. Standardmäßig wird nach dem Anmelden am System eine Übersicht über<br />
alle Buchungen des aktuellen Tages angezeigt. Wird jedoch ein beliebiges Datum aus dem Kalender<br />
gewählt, wird eine Übersicht mit allen Buchungen an diesem Datum angezeigt. Dies wird realisiert,<br />
indem die index.php mit dem GET Parameter „datum=“ aufgerufen wird. Es wird dann die<br />
Buchungsübersicht zu dem gewählten Datum angezeigt. Auf der rechten Seite bietet die index.php<br />
die Funktion an, eine neue Buchung anzulegen. Diese Funktion wird über die gleiche Datei<br />
(anmelden_help.php), wie in der Kundensicht bereitgestellt und einfach erneut aufgerufen. Über<br />
den Menübutton „Home“ gelangt man von überall zurück auf diese Buchungsübersicht.<br />
Jede angezeigte Buchung aus der Buchungsübersicht verfügt über einen „Mehr“ Button, der auf die<br />
Datei buchung.php leitet. Die buchung.php stellt wieder den typischen statischen Content aus Menü<br />
und Kalender sowie Raumbelegungsplan zur Verfügung. Im dynamischen Teil zeigt die Datei<br />
standardmäßig, die jeweilige aufgerufene Buchung detailliert, sowie die zugeordneten Betreuer<br />
(wenn vorhanden) und die zur Buchung zugehörigen Notizen, an. Welche Buchung die Datei<br />
anzeigt, wird über den GET Parameter „buchung=“ bestimmt, wird keine Buchung übergeben, wird<br />
nichts angezeigt. Auf der rechten Seite wird wieder die Funktion „neue Buchung erstellen“<br />
angezeigt. Es werden hier an dieser Stelle jedoch noch weiter Funktionen geladen, je nachdem in<br />
welchem Status die Buchung ist und welche Rolle der User besitzt. Im Falle des Betreuers ist das<br />
die Funktion „neue Notiz erstellen“. Diese Funktion wird über die Datei notiz_help.php realisiert.<br />
Ihr wird beim Aufruf via GET der Parameter „buchungsid_val“ übergeben, wodurch sie weiß, zu<br />
welcher Buchung sie eine neue Notiz anlegen muss. Des Weiteren kann unter Umständen die<br />
Funktion „Aufwandserfassung“ zur Verfügung stehen. Sie verweist auf die Datei<br />
aufwand_help.php. Ihr werden via GET die Parameter „buchungsid“ und „betreuerid“ übergeben,<br />
damit die Datei weiß für welche Buchung und welchen Betreuer eine Aufwandserfassung erfolgen<br />
soll. Wenn zur Buchung Notizen existieren, kann man diese einsehen, indem man auf die<br />
entsprechenden Links klickt. Man wird dann wieder auf die buchung.php weitergeleitet, jedoch<br />
wird noch ein zweiter GET Parameter „note=“ gesetzt, der angibt welche Notiz angezeigt werden<br />
soll. Wird der GET Parameter „note“ gesetzt, wird auch die Funktion „Notiz bearbeiten“ aktiviert.<br />
Welche wiederum in der Datei notiz_manipulation.php implementiert ist. Ihr wird der GET<br />
Parameter „notiz_val=“ übergeben, der kennzeichnet, welche Notiz bearbeitet werden soll. Als<br />
letztes existiert hier noch die Funktion „Betreuer zuordnen“. Die Funktion wird jedoch nur<br />
angezeigt, wenn die Buchung nicht im Status „stattgefunden“ ist. Bereitgestellt wird sie von der<br />
Datei betreuer_help.php und über den GET Parameter „buchungsid_val“ wird ihr mitgeteilt, zu<br />
welcher Buchung Betreuer zugeordnet werden sollen. Dabei ist es in der Betreuersicht nur möglich,<br />
sich selbst einer Buchung zu zuordnen.<br />
Über den Menüpunkt „Meine Buchungen“ wird man auf die Datei betreuer.php weitergeleitet. Die<br />
wieder den bekannten statischen Content anzeigt und ihn um ihren eigen dynamischen Inhalt<br />
erweitert. Standardmäßig zeigt der dynamische Inhalt den Einsatzplan des jeweiligen Users, der<br />
eingeloggt ist. Dabei wird die ticket.php ohne GET Parameter aufgerufen. Über die Betreuerliste<br />
Liste links (ist eine Funktion der Datei support.php) kann man jedoch auch einen beliebigen<br />
Mitarbeiter der Inspirata auswählen und sich dazugehörigen Einsatzplan anzeigen zulassen. Dies<br />
wird realisiert, indem der Parameter „betreuer=$id“ gesetzt wird. Dann weiß die Datei, dass sie<br />
nicht den Einsatzplan des eingeloggten Users anzeigen soll, sondern den des ausgewählten<br />
Mitarbeiters. Auch die Funktion, eine neue Buchung zu erstellen, ist wieder auf der rechten Seite<br />
implementiert. Der Einsatzplan zeigt alle Buchungen des jeweiligen Users an und bietet ein Link<br />
an, sich jede Buchung detailliert anzuschauen. Jeder dieser Links referenziert dabei auf die Datei<br />
buchung.php, die die Funktion, Buchung detailliert anzeigen, implementiert hat. Der Menüpunkt<br />
„Meine Tickets“ leitet auf die Datei ticket.php weiter. Sie stellt wieder den typischen Standard<br />
24
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Content bereit, sowie auf der rechten Seite die Funktion Buchung anlegen. Der dynamische Teil in<br />
der Mitte zeigt dem User eine Ticketübersicht, welche alle Tickets enthält die den jeweiligen User<br />
betreffen bzw. tangieren. Wird auf ein Ticket geklickt, wird man auf die Detailansicht des Tickets<br />
weitergeleitet, die in der ticket.php implementiert ist. Dies wird intern über die GET Variable<br />
„ticket“ geregelt. Wird die Ticket.php ohne Parameter aufgerufen, so liefert sie die Ticketübersicht<br />
zurück. Erfolgt der Aufruf mit dem Parameter „ticket=“, wird das jeweilige Ticket in der<br />
Detailansicht angezeigt.<br />
Der letzte Menüpunkt “Logout“ leitet auf die Datei logout.php weiter. Diese Datei selbst bietet<br />
keinen View sondern, beendet im Hintergrund die Session des Users. Anschließend leitet sie den<br />
User auf die index.php weiter, welche ihn jedoch auf die formular.php weitergeschickt, da er nicht<br />
eingeloggt ist bzw. nicht gegenüber dem System identifiziert ist.<br />
Mitarbeitersicht/Verwalter:<br />
Die Sicht des Mitarbeiters bzw. Verwalters ist im eigentlichen Sinne bloß eine Erweiterung der<br />
Sicht des Betreuers. Aus diesem Grund gelten, alle getroffenen Aussagen aus der Betreuersicht hier<br />
gleichermaßen. Deshalb werden an dieser Stelle nur die Punkte erläutert, in der sich die<br />
Mitarbeiter/Verwalter Sicht von der Betreuersicht unterscheidet. Ob der eingeloggte User eine<br />
bestimmte Funktion sieht, hängt davon ab, ob er dafür die erforderlichen Rechte besitzt. Dies regelt<br />
das Script intern, indem es die Rolle des jeweiligen Users abfragt und entsprechend reagiert.<br />
Ein erster Unterschied ergibt sich unter dem Menüpunkt „Meine Tickets“, wo der dynamische Teil<br />
auf der rechten Seite nun auch die Funktion „Ticket bearbeiten“ anbietet. Diese Funktion ist über<br />
die Datei ticket_manipulation.php realisiert. Sie wird mit dem GET Parameter „ticketid_val=“<br />
aufgerufen, wodurch sie weiß welches Ticket zu bearbeiten ist. Ob die Funktion angezeigt wird,<br />
wird in der Datei selbst berechnet, indem sie prüft, ob der User die Rolle Mitarbeiter oder Verwalter<br />
besitzt.<br />
Den größten Unterschied gegenüber der Betreuersicht gibt es in der Detailansicht der einzelnen<br />
Buchungen. Hier gibt es eine Reihe von Funktionen im dynamischen Teil, die nur zu gewissen<br />
Bedingungen angezeigt werden.<br />
Die Funktion „Buchung bearbeiten“ wird über die Datei manipulation.php implementiert. Die zu<br />
bearbeitende Buchung wird über den GET Parameter „buchung=“ übergeben. Diese Funktion ist<br />
immer verfügbar, egal in welchem Status sich die Buchung auch befindet. Bereits aus der Sicht des<br />
Betreuers bekannt, ist die Funktion „Betreuer zuordnen“. In der Mitarbeitersicht wird sie jedoch in<br />
ihrer Funktionalität erweitert. Es nun möglich nicht nur sich selbst, sondern alle verfügbaren<br />
Betreuern einer Buchung zu zuordnen. Die Funktionalität „Buchung akzeptieren“ ist in der Datei<br />
buchung_akzeptieren.php implementiert, welche bei Aufruf direkt in die buchung.php inkludiert<br />
wird. Die Funktion selbst wird nur angezeigt, wenn sich die Buchung im Zustand „angefragt“<br />
befindet. Über das gleiche Prinzip wird die Funktion „Buchung bereit“ realisiert (Datei<br />
buchung_bereit.php), mit dem Unterschied das sie nur verfügbar ist, wenn die Buchung im Status<br />
„akzeptiert“ ist. Auch der Aufruf der Funktion „Buchung stornieren“ ist genauso implementiert, wie<br />
die zwei vorangegangen Funktionen und wird über die Datei buchung_stornieren.php bereit gestellt.<br />
Anders als ihre Vorgänger ist jedoch in den Status „angefragt“, „akzeptiert“ und „breit“ verfügbar.<br />
Als letztes reihen sich noch die zwei Funktionen „Buchung löschen“ (buchung_loeschen.php) und<br />
„Buchung reaktivieren“ (buchung_reaktivieren.php) ein, da sie identisch wie die Funktion<br />
„Buchung akzeptieren“ realisiert sind. Beide Funktionen werden nur angezeigt, wenn sich die<br />
Buchung im Zustand „storniert“ befindet. Die Funktionalität „neues Ticket erstellen“ wird über die<br />
Datei ticket_hel.php bereitgestellt. Sie ist unabhängig vom Status immer verfügbar. Außerdem wird<br />
ihr über den GET Parameter „buchungsid_val“ mitgeteilt, zu welcher Buchung das erstellte Ticket<br />
gehört. Die Funktion „Buchung archivieren“ ist in der Datei buchung_archivieren.php<br />
25
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
implementiert und wird nur angezeigt wenn die Buchung im Status „stattgefunden“ ist. Sie wird<br />
ebenfalls mit einem GET Parameter „buchungsid“ aufgerufen, der kennzeichnet, welche Buchung<br />
archiviert werden soll.<br />
4.4 Layout-Konzepte des Buchungssystems<br />
An dieser Stelle soll die GUI des Inspirata Buchungssystems noch einmal kurz genauer erläutert<br />
werden. Des Weiteren soll ein kurzer Überblick über die Funktionsweise und Möglichkeiten der<br />
GUI gegeben werden.<br />
Layout-Konzept des Inspirata Buchungssystems:<br />
Das Menü mit dem Buttons „HOME“, „MEINE BUCHUNGEN“, „MEINE TICKETS“, „STATT-<br />
GEFUNDENE BUCHUNGEN“, „LOGOUT“ ist hart gecodet und wird über eine Funktion in alle<br />
entsprechenden Seiten geladen. Die Funktion befindet sich in der Datei support.php und heißt<br />
body(). Hier kann das Menü nach Belieben angepasst werden. Die Funktion hat des Weiteren drei<br />
Parameter, mit den Namen $links, $mitte und $rechts. Diesen können mit beliebigem HTML-Code<br />
bestückt werden und der Funktion übergeben werden, welche sie dann an den entsprechenden Orten<br />
darstellt (siehe Bild). Dies verleiht der Seite eine recht große Flexibilität, da die drei Spalten einfach<br />
mit jedem beliebigen Inhalt gefüllt werden können. Der Footer der Website ist ebenfalls hart gecodet<br />
und befindet sich in der body() Funktion (support.php).<br />
Das Design der Website ist in Form von Stylesheets implementiert die alle ausgelagert sind und sich<br />
im Unterordner „css“ befinden. Dies ermöglicht eine komfortable Verwaltung des Aussehens der<br />
26
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Webseite. Die style.css enthält das generelle Design der Webseite. Über die intern.css wird das Aussehen<br />
des Kalenders, Buchungsübersicht und Einsatztabelle bestimmt. Das Aussehen der Kundenseite<br />
(anmelden.php) kann über die kunde.css bestimmt werden. Die beiden Stylesheets login.css<br />
und button.css bestimmen das Design des Loginformulars und der Buttons im System.<br />
GUI:<br />
Wenn sie die Startseite des Systems aufrufen und noch nicht gegenüber dem System authentifiziert<br />
sind, werden sie vom System selbst auf die formular.php weitergeleitet.<br />
An dieser Stelle müssen sie ihren Benutzernamen und Passwort eingeben.<br />
Hat sich der User erfolgreich identifiziert, wird er auf die Startseite (index.php) geleitet.<br />
Hier sieht er auf der linken Seite den Buchungskalender, der standardmäßig den aktuellen Monat<br />
zeigt. An den Tagen, wo Buchungen stattfinden, ist der Tag grau hinterlegt und die Tageszahl rot<br />
dargestellt. Ebenfalls standardmäßig wird die Buchungsübersicht für den aktuellen Tag angezeigt.<br />
Unter dem Kalender wird der Raumbelegungsplan angezeigt, der Auskunft darüber gibt, wie spät<br />
und in welchem Raum die Buchungen am gewählten Tag stattfinden. Klickt man auf „Mehr“ bei einer<br />
der Buchungen in der Buchungsübersicht wird sie detailliert angezeigt. Dabei wird im Hintergrund<br />
die buchung.php aufgerufen und ihr über die $_GET Variable „buchung“ die ID, der Buchung,<br />
übergeben.<br />
27
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Die buchung.php zeigt in der linken Spalte den Kalenders und den Raumbelegungsplan. In der Mitte<br />
wird die gewählte Buchung detailliert angezeigt. Wenn schon Betreuer der Buchung zugeordnet<br />
sind, werden diese ebenfalls angezeigt. Als letztes werden alle verfügbaren Notizen zur Buchung<br />
aufgelistet. In der Spalte ganz rechts werden alle verfügbaren Funktionen aufgelistet, die abhängig<br />
vom Status der Buchung und von der Rolle des eingeloggten Users sind.<br />
Über den Button „Meine Tickets“ gelangt man auf die ticket.php<br />
Der einzige Unterschied liegt hier an den bereitgestellten Funktionen in der rechten Spalte und das<br />
in der mittleren Spalte nun angezeigt wird, welche Tickets des eingeloggten User betreffen. Wenn<br />
man auf einen Ticket klickt wird man auf die Detailansicht des Tickets geleitet und bekommt die<br />
Funktion zum Bearbeiten des Tickets angezeigt.<br />
Mit einem Klick auf den Button „Meine Buchungen“ (betreuer.php), bekommt der eingeloggte User<br />
seinen persönlichen Einsatzplan angezeigt. Dieser umfasst alle Buchungen bei denen der eingeloggte<br />
User als Betreuer eingetragen ist. Buchungen werden im Einsatzplan nicht mehr angezeigt, wenn<br />
sie im Status „gelöscht“ oder „archiviert“ sind.<br />
Termine die in der Zukunft liegen, also erst noch stattfinden, sind rot gekennzeichnet.<br />
28
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
29
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Der Kunde des Inspirata System besitzt seine eigene Sicht auf das Buchungssystem, da er sich gegenüber<br />
dem System nicht authentifizieren kann und außerdem nur die Funktion, Buchung anlegen,<br />
benötigt. Die Darstellung der Kundesicht übernimmt die anmelden.php. Sie kann problemlos in das<br />
bestehende WordPress der Inspirata eingebunden werden. Dabei kann das Design, getrennt vom Inspirata<br />
Buchungssystem, gesteuert werden. Die Steuerdatei befindet sich im Ordner „css“ und heißt<br />
kunde.css. Der HTML-Code der anmelden.php liegt in der Datei html_help.php. Er wird dort über<br />
Funktionen bereitgestellt und kann dort entsprechend an die eigenen Bedürfnisse angepasst werden.<br />
Das Formular zum Anlegen einer neuen Buchung wird über die Datei anmelden_help.php<br />
Bereitgestellt, welches wiederum über den Button „Formular aufrufen“ in der anmelden.php am<br />
Ende der Website aufgerufen wird.<br />
30
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
31
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
4.5 Dokumentation des Mailsystems des Buchungssystems:<br />
An dieser Stelle soll noch einmal kurz auf das Mailsystem des Inspirata Buchungssystems eingegangen<br />
werden. Es wird erklärt, wann das Buchungssystem Mails verschickt.<br />
Alle Mailfunktionen des Buchungssystems sind in der mail.php gespeichert. In dieser Datei existiert<br />
eine Funktion namens mailSend(). Diese Funktionen ist die Kernfunktion, die alle Mails des Systems<br />
verschickt. Sie verschickt jede Mail als Plaintext und kodiert sie in UTF-8, sodass auch Sonderzeichen<br />
korrekt dargestellt werden. In der Funktion gibt es eine Zeile<br />
„$to = beispiel@mailadresse.de;“. Wird diese Zeile mit einer Mailadresse bestückt und aktiviert,<br />
dann wird jede Mail die das System schickt an diese Adresse umgeleitet. Dies ist vor allem für Testzwecke<br />
äußerst nützlich.<br />
Das Buchungssystem verschickt eine Email, wenn eine neue Buchung angelegt wird. Dabei wird<br />
der Ersteller einer Buchungsanfrage darüber informiert, dass seine Anfrage erfolgreich war. (siehe<br />
Bild)<br />
Des Weiteren wird eine Mail vom Buchungssystem verschickt, wenn die Buchung in den Status<br />
„akzeptiert“, „storniert“ oder „bereit“ wechselt. Dabei wird der Ersteller über den neuen Status seiner<br />
Buchung informiert. (siehe Bilder)<br />
32
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
Wenn eine neue Notiz im System erstellt oder bearbeitet wurde, dann informiert das Buchungssystem<br />
alle zur Buchung eingetragen Betreuer via Mail darüber (siehe Bilder).<br />
Wenn ein neues Ticket im System erstellt oder bearbeitet wurde, dann informiert das Buchungssystem<br />
alle zur Ticket eingetragen Betreuer via Mail darüber (siehe Bilder).<br />
33
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
5 Datenmodell<br />
Die einzigen Daten die in Buchungssystem dauerhaft gespeichert werden befinden sich in der<br />
Datenbank des Systems. Welche folgenden Aufbau besitzt:<br />
6 Testkonzept<br />
Schon wahrend der Implementierung wird der Code fortlaufend, durch automatische Tests,<br />
überprüft. Diese automatischen Tests werden dann jeweils durch manuelle Tests ergänzt und<br />
bedürfen größerer Aufmerksamkeit. Jede geschriebene Komponente wird auf Korrektheit und<br />
Fehlerfreiheit geprüft. Hierzu sollte z.B. zu jeder Komponente eine Test Datei geschrieben werden,<br />
die alle Funktionalitäten der jeweiligen Komponente implementiert und durch testet. Bei den Tests<br />
sollten auf jeden Fall auf die Grenzfalle und unvorhergesehene Eingaben geachtet werden.<br />
Wenn die Komponenten bzw. Klassen getestet sind, wird das System zusammengesetzt. Dann muss<br />
das gesamte System auf Funktionstüchtigkeit geprüft werden, was sehr sorgfältig geschehen soll<br />
und daher entsprechend viel Zeit in Anspruch nehmen wird. Hierbei soll getestet werden, ob sich<br />
alle Komponenten im Zusammenspiel mit den anderen Komponenten korrekt verhalten und ob der<br />
Workflow des Buchungssystems fehlerfrei durchläuft. Des Weiteren muss an dieser Stelle überprüft<br />
werden, ob das Nutzerinterface fehlerfrei arbeitet und der Benutzerfreundlichkeit genügt.<br />
Da das Buchungssystem eine einfache Arbeitsoberfläche besitzt, die einfach via Browser<br />
34
Gruppe: swp13-insp Verantwortlicher: Tobias Kosmalla 17.06.2013<br />
angesteuert werden kann, ist der Test des Systems für viele Tester einfach möglich. Sodass schnell<br />
eine Fehlerliste zusammengestellt werden kann, die dann durch die Programmierer abgearbeitet<br />
wird.<br />
Hierbei soll das Gesamtsystem in mehreren Testdurchläufen immer wieder überprüft werden bis<br />
alle Fehler ausgemerzt sind.<br />
7 Glossar<br />
Betreuer: Ein Betreuer ist eine natürliche Person in der Rolle des Betreuers. Sie ist mit den<br />
Rechten „Betreuer zuordnen“ für sich selber ausgestattet. Außerdem wird er bei einigen<br />
Änderungen an Buchungen, zu denen er zugeordnet ist, benachrichtigt.<br />
Buchung: Dieses zentrale Objekt beinhaltet alle wesentlichen Merkmale einer Buchung. Durch<br />
Zuweisen einer systemgenerierten eindeutigen ID lassen sich Objekte unterscheiden und sind<br />
jederzeit wieder auffindbar, Buchungen werden durch einen Kunden generiert (angefragt) und<br />
können mit entsprechenden Rechten weiter bearbeitet werden<br />
Kunde: Er hat die geringsten Rechte und beinhaltet die meisten Nutzer des Buchungssystems. Jeder<br />
Nutzer ist bis zu seiner Anmeldung standardmäßig als Kunde identifiziert. Kunden, die eine<br />
Buchung erstellt haben, können auf diesen Buchungen, mit dem zur Buchung gehörigen<br />
Zugangsdaten, zugreifen.<br />
Mitarbeiter: Der Mitarbeiter ist ein Arbeitnehmer der Inspirata mit erweiterten Rechten im<br />
Buchungssystem.<br />
Notiz: Eine Notiz ist ein textbasiertes Datenobjekt, das einer Buchung zu geordnet wird.<br />
Ticket: Ein Ticket ist ein textbasiertes Datenobjekt, das zu einem bestimmten Zeitpunkt einem oder<br />
mehreren Mitarbeitern/Betreuern der Inspirata vorgelegt wird.<br />
Verwalter: Er hat uneingeschränkte Rechte im Buchungssystem und kann somit Buchungen nach<br />
Belieben verwalten. Außerdem ist er auch für die Verwaltung des Systems verantwortlich.<br />
35