26.12.2013 Aufrufe

Entwurf

Entwurf

Entwurf

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!