Sie sind auf Seite 1von 20

 

Berufsakademie Schleswig‐Holstein 
Wirtschaftsakademie Schleswig‐Holstein  
Hans‐Detlev‐Prien‐Straße 10 
24106 Kiel 

Transferprojekt II 
Thema:  

Neuentwicklung, Codierung und Dokumentation eines 
Ticketsystems für den Einsatz in der IT‐Abteilung der 
Klinikum Nordfriesland gGmbH 

 
Name  Florian Znottka 

Studierendennummer  100004093264 – BA109 WINF1 

Email  florian.znottka@klinikum‐nf.de 

Gutachter der Berufsakademie  Dozent Claus Greve 

Gutachter des Betriebes  Johannes Christian Nissen 

 
 
 
 
Dieses Thema wurde über den Gutachter als Individualprojekt beantragt. 

 
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite I  

 
 

Inhaltsverzeichnis 
1. Einführung ....................................................................................................................................... 1
2. Istanalyse......................................................................................................................................... 2
2.1 Analyse der vorhandenen Software ...................................................................................... 2
2.2 Arbeitsabläufe........................................................................................................................ 4
3. Sollkonzept ...................................................................................................................................... 5
3.1. Funktionsanforderungen ....................................................................................................... 6
3.2. Technische Anforderungen.................................................................................................... 6
4. Implementation................................................................................................................................... 7
4.1 Grundsätzlicher Aufbau ......................................................................................................... 7
4.2 Die Model‐Klasse ................................................................................................................... 8
4.3 Die View‐Klasse ...................................................................................................................... 9
4.4 Die Controller‐Klasse............................................................................................................ 11
4.5 Zusätzliche Skripte ............................................................................................................... 12
5. Reflexion............................................................................................................................................ 12 
Anhang 

Anhangverzeichnis ................................................................................................................................. III


Literaturverzeichnis................................................................................................................................ IV
Quellcode auf CD‐ROM ........................................................................................................................... V
 

Tabellen und Abbildungsverzeichnis 
 
Tabelle 1: Datenbanktabelle Ticketsystem (Quelle: eigene Darstellung) ............................................... 4
Tabelle 2: Datenstruktur der neuen Software (Quelle: eigene Darstellung) .......................................... 8
 
Abbildung 1: Oberfläche der vorhandenen Software (Quelle: eigene Darstellung) ............................... 3
Abbildung 2: Antwort‐ und Bearbeitungsdialog (Quelle: eigene Darstellung) ....................................... 3
Abbildung 3: Umsetzung des MVC‐Pattern (Quelle: eigene Darstellung)............................................... 7
Abbildung 4: Oberfläche der neuen Software (Quelle: eigene Darstellung) .......................................... 9
Abbildung 5: Quelltextausschnitt  ......................................................................................................... 10
Abbildung 6:  Übersicht aller verwendeten Klassen (Quelle: eigene Darstellung) ............................... 12
 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite II  

Abkürzungsverzeichnis 
Fachbegriff  Erklärung 
AJAX  Asynchronous JavaScript and XML 
Browser  Computerprogramme zum Betrachten von Webseiten im World Wide Web 
CSS  Cascading Stylesheet (Deklarationssprache für strukturiere Dateien) 
DB  Datenbank 
Div‐Tag  HTML‐Tag, der einen Block/Bereich (Division) kennzeichnet 
Framework  Framework ist ein Programmiergerüst mit fertigen Entwurfsmustern, die den 
Programmierer bei der Anwendungsentwicklung 
unterstützen(=„Rahmenstruktur“) 
IT  Information Technologie 
Javascript  objektorientierte Skriptsprache mit Elementen aus den prozeduralen 
Programmiersprachen 
Kapselung   Gruppierung und Abschottung von Datenstrukturen 
LAMPP  Serversoftwarezusammenstellung – Linux, Apache, MySQL, PHP, Perl/Python 
MVC  Programmierkonzept für objektorientierte Programmiersprachen 
MySQL  Relationales Datenbankverwaltungssystem, als open‐source verfügbar, 
Grundlage für dynamische Webauftritte 
PHP  Serverseitige interpretierte Skriptsprache (PHP: Hypertext Preprocessor) mit 
dynamischer Typisierung, in neueren Versionen ist auch eine objektorientierte 
Programmierung möglich 
Shoutbox  Elektronische Pinwand oder Minigästebuch auf Webseiten 
SQL  Structured Query Language (Strukturierte Abfragesprache für Datenbanken) 
String   Datentyp "Zeichenkette" 
Tag  Etikett, Auszeichnung 
Thread  Eine Folge von Beiträgen in einem Blog, Forum oder im Usenet 
Usability  Gebrauchstauglichkeit 
Weblog  Weblog oder Blog – eine Webseite in der nach Datum sortierte Einträge des 
Verfassers dargestellt werden 
XML  extented markup language (erweiterbare Auszeichnungssprache) 
 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 1 |13 

1. Einführung 
Die  Klinikum  Nordfriesland  gGmbH  ist  ein  Zusammenschluss  regionaler 
Krankenhäuser im Kreisgebiet Nordfriesland. Sie unterhält vier Einrichtungen an 
den  Standorten  Husum,  Niebüll,  Tönning  und  Wyk  auf  Föhr.  Die  zentrale 
Verwaltung  am  Standort  Husum  beinhaltet  neben  der  Geschäftsführung  und 
dem  Finanzmanagement  auch  die  EDV  Abteilung.  Diese  ist  für  alle  Belange  der 
nichtmedizinischen  Informationstechnologie  innerhalb  und  zwischen  den 
Krankenhäusern zuständig. 

Die  EDV  Abteilung  ist  mit  ihren  vier  Angestellten,  einem  Auszubildenden  und 
einem  BA  Studenten  für  über  1200  Endgeräte,  Server,  Netzwerkkomponenten 
sowie  dem  gesamten  Softwaresupport  der  laufenden  80  Softwareprodukte 
zuständig. Die Abdeckung einer so großen Vielfalt von Aufgabenbereichen ist nur 
durch  aktive  Kommunikation  und  Absprachen  zwischen  den  Mitarbeiterinnen 
und  Mitarbeitern  innerhalb  der  Abteilung,  sowie  einer  offenen  und 
partnerschaftlichen Führung möglich. Um die Abläufe und Kommunikation in der 
Abteilung zu unterstützen und jederzeit abrufbare Informationen über den Stand 
unterschiedlicher Aufgaben  zur  Verfügung  zu  stellen, wurde  vor  vier Jahren ein 
Ticket‐,  Nachrichten‐  und  Informationssystem  programmiert,  welches  seitdem 
zentraler Kern des Informationsmanagements innerhalb der Abteilung ist. 

Aufgrund  veränderter  Anforderungen  und  der  Qualität  der  vorhandenen 


Software  wurde  durch  den  Leiter  der  Abteilung  entschieden  im  Rahmen  eines 
Transferprojektes  ein  neues  Ticketsystem  zu  entwickeln.  Die  Software  soll 
moderne  Programmiertechniken  nutzen  und  die  aktuellen  Anforderungen 
erfüllen. 

Dieses Transferprojekt beschreibt den Entwicklungsprozess der neuen Software. 
Durch  Beobachtung  und  Befragung  der  Mitarbeiterinnen  und  Mitarbeiter  wird 
zunächst  die  Istanalyse  durchgeführt  um  folgend  das  Sollkonzept  mit  den 
funktionellen  und  technischen  Anforderungen  darzustellen.  Anschließend  wird 
das  Lösungskonzept  skizziert.  Nach  der  eigentlichen  Codierung  der  Software 

Florian Znottka 
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 2 |13 
 

werden  die  Implementation  und  die  genutzten  Techniken  vorgestellt.  Die 


folgende Reflexion beschreibt das Projekt aus Sicht des Entwicklers. 

2. Istanalyse 
In der Istanalyse werden der Ausgangszustand und die typischen Arbeitsabläufe 
innerhalb  der  Abteilung  in  Zusammenhang  mit  der  vorhandenen  Software 
dargestellt1. Zunächst muss also die vorhandene Software analysiert werden um 
anschließend die Verwendungs‐ und Einsatzgebiete aufzuzeigen. 

2.1 Analyse der vorhandenen Software 
Das  vorhandene  Ticketsystem  ist  ein  in  der  Skriptsprache  PHP  Version  4 
geschriebenes,  webbasiertes  Nachrichtensystem.  Es  ist  mit  kurzen 
Javascriptelementen  angereichert,  um  quasi‐dynamische  Benutzereingaben  zu 
ermöglichen.  Zur  Ausgabe  wird  HTML‐Code  in  Version  4  erzeugt,  dessen 
Codierung für den Internet Explorer 6 optimiert ist. Die gesamte Programmlogik, 
Auswertung  und  Ausgabe  wird  durch  ein  zentrales  PHP‐Skript  gesteuert.  Durch 
die  eingesetzte  imperative  Programmiertechnik  ohne  die  Nutzung  von 
Objektorientierung  oder  Unterfunktionen  ist  das  Programm  nur  schwierig 
erweiter‐ und wartbar. 

Die  Hauptansicht  des  Ticketsystems  gliedert  sich  in  zwei  Bestandteile:  das 
Formularfeld  für  neue  Einträge  und  die  eigentliche  Nachrichtenansicht.  Die 
Weboberfläche ähnelt einem Weblog oder einer Shoutbox, wie in Abbildung 1 zu 
sehen ist. 

Das  Formularfeld  für  neue  Einträge  ist  ein  HTML‐Formular,  welches  die 
eingetragenen Daten als HTTP Post Request an sich selbst versendet. Die Daten 
werden  hierdurch  direkt  in  die  Datenbank  geschrieben  und  anschließend  als 
neuer Eintrag in der Nachrichtenansicht angezeigt. 

                                                            
1
Vgl. D. Abts, W. Mülder (2009) S. 302.

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 3 |13 
 

Abbildung 1: Oberfläche der vorhandenen Software (Quelle: eigene Darstellung) 

Die  Nachrichtenansicht  ist  eine  nach  Änderungsdatum  sortierte  Abbildung  der 


gespeicherten Nachrichten in der Datenbank. Atomares Element ist in Anlehnung 
zu  typischer  Blogsoftware  die  Einzelnachricht.  Sie  ist  Kernelement  der 
Datenbanktabelle  und  kann  in  zwei  Ausprägungen  auftreten  ‐  als  Ersteintrag 
oder als Antwort auf einen Ersteintrag. Antworten sind immer einem Ersteintrag 
zugehörig und können nicht einzeln in der Nachrichtenansicht angezeigt werden. 

Abbildung 2: Antwort‐ und Bearbeitungsdialog (Quelle: eigene Darstellung) 

Durch  Nutzung  von  versteckten  Inline‐HTML‐Formularen  und  kurzen 


Javascriptelementen  ist  es  möglich  in  der  Nachrichtenansicht  eine  Antwort  auf 
einen  Ersteintrag  zu  schreiben  oder  eine  Nachricht  textlich zu  verändern  (siehe 
Abbildung 2). Das Verändern oder Eintragen von Nachrichten und Antworten hat 
immer ein Neuladen des PHP‐Skriptes und damit der gesamten Seite zur Folge. 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 4 |13 
 

Die Datenbankstruktur ist mit einer Datentabelle und sieben Feldern aufgebaut, 
wie  in  Tabelle  1  zu  erkennen.  Die  Daten  werden  in  einer  MySQL  Datenbank 
gespeichert.  Datenbank  und  Programm  laufen  auf  einem  LAMPP  basierten 
Server  innerhalb  des  klinikweiten  Intranets.  Das  System  ist  nach  einer  vom 
Programm  unabhängigen  Benutzerauthentifizierung  von  allen  Arbeitsplätzen 
innerhalb des Kliniknetzwerkes nutzbar. 

Feld  Typ  Beschreibung 


Id  Integer  Primary Key der Tabelle. 
Mit  Tinyinteger 
Foreign Key zur Verknüpfung der Mitarbeitertabelle. 
(vierstellig) 
Date  Date‐ Typ (MySQL)  Datum der Eintragung. 
Time  Time‐Typ (MySQL)  Zeitpunkt der Eintragung. 
Besch  Text  Der Nachrichtentext des Eintrages. 
An  Antwort Key – Bestimmt den Nachrichtentyp. Wenn der 
Key leer ist, liegt eine Erstnachricht vor, ist ein Key gesetzt, 
Text 
liegt eine Antwort auf eine Nachricht mit diesem Keywert 
vor. 
Archiv  Archivkey bestimmt ob die Nachricht in der normalen View 
Tinyinteger 
angezeigt wird, der Keywert kann 0 (anzeigen) oder 1 
(vierstellig)  (nicht anzeigen annehmen. 
Tabelle 1: Datenbanktabelle Ticketsystem (Quelle: eigene Darstellung) 

2.2 Arbeitsabläufe 
Die  EDV  Abteilung  und  dessen  Mitarbeiterinnen  und  Mitarbeiter  nutzen  das 
Ticketsystem nicht nur für die Bearbeitung von Support‐ und Problemfällen von 
Kunden,  sondern  auch  zur  allgemeinen  Informationsweitergabe  von  internen 
Projekten,  aktuellen  Informationen  zu  bestimmten  Terminaufgaben  oder  zur 
Absprache  und  Hilfestellung  bei  Supportbearbeitung.  Dies  ist  zwar  nicht  die 
typische Aufgabe eines Ticketsystems, hat sich aber in der Praxis bewährt. 

Da  der  Hauptteil  der  Supportanfragen  in  der  EDV  Abteilung  durch  Telefonate 
angenommen  wird,  unterstützt  das  System  dies  durch  Aufnahme  von  kurzen 
Notizen  über  Telefonate  zu  dem  bestimmten  Problemfall.  Da  alle  Arbeitsplätze 
der  Abteilung  gleichermaßen  Hardware‐  und  Softwaresupportanfragen 
annehmen, werden auch Anfragen in anderen Aufgabenbereichen angenommen 
und  für  die  Kollegen  gekennzeichnet.  Diese  können  dann  durch  die 
Kommentarfunktion  Lösungskonzepte  mit  den  Kollegen  erarbeiten  oder  kurze 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 5 |13 
 

Informationen  über  den  momentanen  Bearbeitungsstand  notieren.  Somit 


ergeben sich je nach Schwere der Supportanfragen unterschiedliche Notizlängen. 

Das  interne Ideenmanagement  und der  Informationsaustausch  über allgemeine 


EDV  Angelegenheiten  werden  mit  dem  System  ebenfalls  abgedeckt.  Da  das 
System  keine  privaten  Nachrichten  vorsieht  und  dies  auch  durch  die  offene 
Informationspolitik  innerhalb  der  Abteilung  nicht  gewünscht  ist,  können  alle 
eingeloggten  Mitarbeiter  alle  Informationen  einsehen  und  durch  die 
Kommentarfunktion aktiv gestalten. 

Zudem  wird  das  System  zur  kurzfristigen  und  langfristigen  Aufgabenverteilung 


genutzt.  Beispielsweise  werden  die  Außenhäuser  der  Klinikum  Nordfriesland 
gGmbH  nur  nach  Bedarf  durch  die  EDV  vor  Ort  betreut.  Probleme  und 
Fehlermeldungen, die mit einer geringen Priorität gekennzeichnet sind, werden 
in  einem  Nachrichtenthread  gesammelt  und  können  dann  vor  Ort  durch  den 
EDV‐Mitarbeiter abgerufen werden. 

Zusätzlich  hat  die  Software  eine  Archivfunktion  für  Nachrichten  oder  ganze 
Nachrichtenthreads.  Sollen  wichtige  Informationen  über  einen  längeren 
Zeitraum  genutzt  werden,  können  Nachrichten  in  einen  Archivbereich 
verschoben werden,  um  diese  später  zu  nutzen ohne  die  Übersicht  der  Ansicht 
zu verschlechtern. 

3. Sollkonzept 
Nach der Aufnahme der aktuellen Situation sollen nun die Anforderungen an die 
neue  Software  formuliert  werden.  Das  Sollkonzept  beinhaltet  insbesondere 
Anforderungen  an  den  Funktionsumfang  und  den    Entwicklungsaufwand2. 
Zusätzlich  werden  technische  Anforderungen  an  die  Software  aufgeführt. 
Typischerweise fließen diese nicht in ein Sollkonzept ein, um Lösungswege nicht 
im  vornherein  zu  verbauen  oder  an  eine  bestimmte  Lösungsmöglichkeit  zu 
binden.  Hier  sollen  aber  vor  allem  die  veränderten  Anforderungen  formuliert 

                                                            
2 Vgl. D. Abts u. W. Mülder (2009) S. 303.

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 6 |13 
 

werden,  um  herauszuarbeiten,  welche  Änderungen  an  der  vorhandenen 


Software notwendig sind. 

3.1.  Funktionsanforderungen 
Die  Grundfunktionalitäten  der  Vorgängersoftware,  insbesondere  neue 
Nachrichten  verfassen,  Nachrichten  verändern  und  Nachrichten  kommentieren, 
müssen in der neuen Software möglich sein. Eine Archivfunktion ermöglicht das 
verschieben von Nachrichten in einen Zwischenstand, sodass diese Nachrichten 
in einer eigenen View angezeigt werden können. Alle Funktionalitäten sollten so 
einfach  wie  möglich  zu  nutzen  sein  und  zudem  eine  klare  Oberfläche  mit 
abgegrenzten Funktionsbereichen besitzen. 

Die Geschwindigkeit der Anzeige hat für alle Mitarbeiter eine hohe Priorität um 
möglichst  schnell  und  unkompliziert  neue  Eingaben  und  Änderungen 
durchführen zu können. Das erneute Laden der gesamten Webseite ist möglichst 
zu vermeiden, da bei Teamsitzungen das Tool auch als Aufgabenliste dient. Wenn 
Einträge  während  dieser  Sitzung  bearbeitet  werden,  ist  das  ständige  Neuladen 
der Seite nicht produktiv. 

Das  Softwaretool  sollte  die  graphischen  Grundzüge  des  vorhandenen  Prototyps 


übernehmen,  um  eine  Migration  für  alle  User  so  einfach  wie  möglich  zu 
gestalten.  Außerdem  sollte  es  sich  nahtlos  in  das  vorhandene  Intranetportal 
einfügen lassen.  

3.2. Technische Anforderungen 
Um  die  Software  durch  möglichst  alle  Mitarbeiterinnen  und  Mitarbeiter  lesbar 
und verständlich zu entwickeln soll die Skriptsprache PHP in der Version 5.3 zur 
Entwicklung genutzt werden, da bereits Grundkenntnisse bei allen Mitarbeitern 
der  EDV  Abteilung  vorhanden  sind.  Auf  PHP‐Frameworks  sollte  verzichtet 
werden, um die Einstiegshürde für andere Mitarbeiter gering zu halten. 

Die  objektorientierte  Programmierung  und  Funktionsorientierung  hat  Vorrang 


vor  Geschwindigkeit  der  Programmausführung.  Eine  Optimierung  der 
Programmablaufgeschwindigkeit  kann  in  einem  nächsten  Schritt  durchgeführt 
werden. 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 7 |13 
 

Die  Nutzung  von  JavaScript  soll  vor  allem  Interaktionen  mit  dem  User 
vereinfachen  und  die  Usability  erhöhen.  Der  Einsatz  von  JavaScript  ist 
browserunabhängig  zu  gestalten  und  ist  unter  Verwendung  eines  aktueller 
JavaScript‐Frameworks wie JQuery zu lösen. 

Das  Programm  sollte  möglichst  modular  aufgebaut  sein,  damit  neue  Features 
einfach  nachgerüstet  werden  können.  Außerdem  muss  es  unabhängig  von  der 
eigentlichen  Verwendung  konzipiert  werden,  sodass  auch  andere  Abteilungen 
die Anwendung in abgeänderter Art nutzen können. Die Modularität sollte auch 
die  Trennung  von  Inhalt  und  Ausgabe  beinhalten,  sodass  auch  andere 
Ausgabeformen und Methoden möglich sind. 

Abbildung 3: Umsetzung des MVC‐Pattern (Quelle: eigene Darstellung) 

4. Implementation 
Um  einen  Überblick  über  die  genutzten  Techniken  der  Implementation  zu 
schaffen ist zunächst der grundlegende Aufbau der Software zu erläutern. In den 
einzelnen Klassenbeschreibungen werden dann die dort genutzten Technologien 
eingehender beschrieben. 

4.1 Grundsätzlicher Aufbau 
Da  für  eine  Trennung  von  Inhalten  und  Anzeige  besonders  das  Entwurfsmuster 
Model‐View‐Controller  geeignet  ist,  bildet  dies  die  Grundlage  der  neuen 
Webapplikation  wie  in  Abbildung  3  dargestellt.  Die  Nutzung  dieses 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 8 |13 
 

Entwurfsmusters  hilft  bei  der  Trennung  von  Datenmodellierung, 


Datenmanipulation und Datenanzeige.3 

4.2 Die Model‐Klasse 
Grundlage  der  neuen  Software  ist  die  note‐Klasse  (class.note.php),  welche  das 
Nachrichtenmodell  in  der  Anwendung  abbildet  und  damit  den  Model‐Teil  des 
MVC‐Pattern darstellt. Die Klasse bildet die Grundstruktur aller Nachrichten und 
Antworten  in  der  neuen  Anwendung.  Die  privaten  Attribute  sind  die  Merkmale 
einer  Nachricht  wie  Verfasser,  Zeitstempel,  Nachrichtentext  und  Typ  der 
Nachricht. Als zusätzliches Attribut des Objektes ist ein Array vorhanden, welches 
je  nach  Typ  der  Nachricht  die  Antworten  aufnehmen  kann.  Durch  die 
Speicherung  der  Daten  als  Klasse  mit  Zugriffsmethoden  ist  eine  bessere 
Kapselung von Daten und Inhalten möglich. 

Die  Attribute  spiegeln  sich  auch  in  der  Datenbankstruktur,  wie  in  Tabelle  2  zu 
sehen  ist,  wieder.  Die  Hauptteile  der  alten  Datenbankstruktur  wurden 
übernommen  um  eine  einfache  Migration  zu  gewährleisten.  Zusätzlich  wurden 
Felder  für  einen  weiteren  Zeitstempel  eingefügt  um  auch  Änderungen  an 
Nachrichten  mitzuspeichern.  Außerdem  wurde das  Archivieren  der  Nachrichten 
durch ein weiteres Flag‐Feld erweitert (Datenfeld Aktiv), um die Hauptnachricht 
zu einer archivieren Antwort auch dann in der Archivansicht anzeigen zu können, 
wenn die eigentliche Hauptnachricht noch nicht archiviert wurde. 

Feld  Typ  Beschreibung 


id  Integer (elfstellig)  Primary Key der Tabelle. 
Tinyinteger 
editor  Foreign Key zur Verknüpfung der Mitarbeitertabelle. 
(vierstellig) 
time  Time‐Typ (MySQL)  Zeitpunkt der Eintragung. 
date  Date‐ Typ (MySQL)  Datum der Eintragung. 
latest_time  Time‐Typ (MySQL)  Zeitpunkt der letzten Änderung. 
Latest_date  Date‐ Typ (MySQL)  Zeitpunkt der letzten Änderung. 
text  Text  Der Nachrichtentext des Eintrages. 
Tabelle 2: Datenstruktur der neuen Software (Quelle: eigene Darstellung) 

                                                            
3
Vgl. Freemann & Freemann (2008) S. 531.

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 9 |13 
 

Die Nachrichten werden in einer auf dem Intranetwebserver laufenden MySQL‐
Datenbank gespeichert. Die note‐Klasse besitzt in dieser Implementierung keinen 
direkten Zugriff auf die Datenbank. Alle Veränderungen an den Datensätzen der 
Datenbank werden über die Methoden der Controller‐Klasse ermöglich. 

Abbildung 4: Oberfläche der neuen Software (Quelle: eigene Darstellung) 

4.3 Die View‐Klasse 
Die  views‐Klasse  (class.views.php)  beinhaltet  Methoden  zur  Ausgabe  von 
verschiedenen  HTML‐Konstruktionen  und  bildet  im  MVC‐Pattern  die 
namensgebende  View.  Sie  ist  für  die  direkten  Ausgaben  an  den  User 
verantwortlich. Bei der Erstellung der views‐Klasse wurde besonderen Wert auf 
die  Nutzung  von  dem  neuen  HTML  5  Standard  gelegt,  um  die  Ausgabe  so 
browserunabhängig wie möglich zu halten. Dazu gehört z.B. dass alle HTML‐Tags 
XML‐konform geschlossen werden müssen. 

Für  die  eigentliche  Gestaltung  der  HTML‐Ausgabe  wurde  eine  neue  Cascading‐
Stylesheet‐Datei  erstellt.  Dies  hilft  zusätzlich  bei  der  Trennung  von  Inhalt  und 
Design  der  eigentlichen  Benutzeroberfläche.  Veränderungen  am  Design  sind 
dadurch  ohne  Änderungen  am  PHP‐Code  möglich.  Zusätzlich  wurde  eine 
alternative  CSS‐Datei  für  die  Ausgabe  auf  Drucker  hinzugefügt,  um  z.B.  das 
Eingabefeld  bei  einem  Druck  nicht  auszugeben.  Als  weitere  Ressourcen  für  die 
HTML‐Anzeige ist noch der Ordner /img für Bilder der View zuzuordnen. 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 10 |13 
 

Die  views‐Klasse  stellt  unterschiedliche  Methoden  zur  Verfügung  Daten  im 


Webbrowser  darzustellen.  Um  eine  hohe  Flexibilität  zu  ermöglichen  wurde  die 
Anzeige und damit die Ausgabe des HTML‐Codes in unterschiedliche Methoden 
mit  bestimmten  Aufgabenbereichen  aufgeteilt.  Besondere  Bedeutung  hat  die 
Klassenmethode  views::print_note($note),  welche  die  Aufgabe  der  Ausgabe 
eines note‐Objektes übernimmt. 

Die  Methoden  print_all_re($array[objekt])  ist  für  die  Ausgabe  aller  Nachrichten 


im  zu  übergebenden  Array  zuständig.  Die  Ausgabe  der  Nachrichten  und  dessen 
Nachfolger  werden  dabei  mit  Hilfe  von  Rekursion  und  einer  privaten 
Unterfunktion gelöst, wie im Quelltextausschnitt in Abbildung 5 zu sehen ist. Dies 
erscheint  die  richtige  Lösung  um  eine  effizientere  Programmierung  zu 
ermöglichen und die Lesbarkeit des Codes zu erhöhen.4 

public function print_all_re($obj_array){

function print_rekursiv($obj){
if($obj->get_anzahl_antworten() == 0){
views::print_note($obj);
if($obj->get_type() == 0){
echo "<div class='antwort_zeiger' id='zeiger".$obj-
>get_id()."'><img src='img/antwort.gif' id='ant".$obj-
>get_id()."' onclick='antwortdiv_zeigen(this,".$obj-
>get_id().");'></div>\n";
}
}
else{
views::print_note($obj);
$antworten = $obj->get_antworten();
foreach($antworten as $key=>$obj){
print_rekursiv($obj);
}
echo "<div class='antwort_zeiger' id='zeiger".$obj->get_type()."'><img
src='img/antwort.gif' id='ant".$obj->get_type()."'
onclick='antwortdiv_zeigen(this,".$obj->get_type().");'></div>\n";
}
}

foreach($obj_array as $key=>$note){
$
Abbildung 5: Quelltextausschnitt class.views.php

Alle  Methoden  bieten  somit  unterschiedliche  HTML‐Bereiche  zur  Ausgabe  an, 


wobei  die  Methoden  print_head()  und  print_body()  Links  zu  den  externen 
JavaScript‐Dateien im Ordner „js/“ enthalten. Neben den JavaScript‐Dateien des 
                                                            
4
Vgl. G. Saake u. K. Sattler (2010) S. 10.

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 11 |13 
 

Frameworks  JQuery  werden  außerdem  die  eigenen  JavaScript‐Methoden  aus 


common.js benötigt. Das JQuery‐Framework wurde ausgewählt, da dies einfache 
Methoden  zur  asynchronen  Datenübertragung  und  eine  einfache  Möglichkeit 
von  Inlineediting  bietet.  Inlinediting  ist  eine  Methode  zur  direkten  Bearbeitung 
von HTML‐Text im Browserfenster. 

Die  JavaScript‐Methoden  einschließlich  Inlineediting  im  common.js‐Skript  sind 


Aufrufe  von  AJAX‐Methoden  des  JQuery  Frameworks  und  sind  für  den 
Datenaustausch zwischen View und Controller zuständig. 

4.4 Die Controller‐Klasse 
Die db‐Klasse (class.db.php) ist als der Controller zwischen dem Model und der 
View  im  MVC‐Pattern  für  die  Vermittlung  zwischen  diesen  beiden  Klassen 
zuständig.  Sie  enthält  Methoden  zur  direkten  Veränderung  der  Daten  in  der 
Datenbank  unter  Zuhilfenahme  der  Model‐Klasse.  Teil  des  Controllers  ist 
außerdem das PHP‐Skript rpc.php, welches die Verknüpfung zwischen JavaScript 
AJAX‐Aufrufen und Controller schließt. Die AJAX‐Methoden rufen dabei das rpc‐
Skript mit unterschiedlichen http‐Parametern mittels POST und GET  Übergaben 
auf,  welche  als  UTF8‐String  übertragen  werden.  Das  rpc‐Skript  überprüft  die 
Parameter und ruft dann Methoden des Controllers zum Verändern, Hinzufügen 
oder  Löschen  von  Nachrichten  auf.  Anschließend  sendet  es,  entweder  über 
UTF8‐Strings  oder  JSON,  Daten  zurück  an  die  JavaScript‐Methoden,  welche  die 
Anzeige ohne Neuladen der Seite verändert. 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 12 |13 
 

Abbildung 6:  Übersicht aller verwendeten Klassen (Quelle: eigene Darstellung) 

4.5  Zusätzliche Skripte 
Der  eigentliche  Programmaufruf  wird  wie  bei  Webanwendungen  üblich  in  der 
index.php  gesteuert,  welche  die  Instanzen  der  entsprechenden  Klassen  erstellt 
und die jeweiligen Methoden aufruft. 

Neben  den  PHP‐Klassen  für  die  eigentliche  Software  sind  die  Dateien 
class.common.php  und  class.login.php  notwendig  um  die  Webanwendung  mit 
den vorhandenen Sicherheits‐ und Loginskripten zu verbinden. Diese sind für die 
zentrale Authentifizierung gegen die vorhandene Usertabelle zuständig. 

5. Reflexion 
Der  Einsatz  eines  individuell  angepassten  Ticket‐  und  Nachrichtensystems  in 
einer  kundenorientierten  Abteilung  kann  die  Kommunikation  zwischen  den 
einzelnen  Mitarbeitern  deutlich  erleichtern.  Solche  Systeme  können  die 
Informationsweitergabe beschleunigen und diese für alle abrufbar zur Verfügung 
stellen.  Durch  die  Nutzung  aktueller  Programmiersprachen  und 
Entwicklungsmustern  wurde  eine  neue  Software  implementiert,  die  außer  der 
Oberfläche wenig mit dem Vorgänger gemein hat. Durch dynamische Javascript‐
Methoden  konnte  die  Bedienbarkeit  deutlich  verbessert  werden.  Die  gesamte 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite 13 |13 
 

Programmstruktur  ist  nun  auf  mehrere  PHP‐Skripte  verteilt,  was  der 


Übersichtlichkeit  und  Erweiterbarkeit  dient.  Der  Programmierstil  hat  sich 
deutlich  vom  prozeduralen  Abarbeiten  des  Hauptskriptes  zu  einer 
objektorientierten  Webanwendung  gewandelt.  Das  Transferprojekt  hat  in 
diesem  Sinne  sein  Ziel  erreicht  ‐    es  wurde  eine  lauffähige  Software 
implementiert,  welche  alle  gestellten  Anforderungen  erfüllt  und  Möglichkeiten 
zur Erweiterung in nächster Zukunft bietet. 

Florian Znottka   
Semesterarbeit Multimedia  |  Projekt: Wet  – Klinikum Nordfriesland  Seite III | 20 

Anhangverzeichnis 
Literaturverzeichnis 

CD‐ROM mit Quellcode des lauffähigen Programms 

Florian Znottka 
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite IV |13 
 

Literaturverzeichnis 
 

Autoren  Titel  Ort  Jahr 


Abts, D. u.  Grundkurs Wirtschaftsinformatik  Wiesbaden  2009 
Mülder, W.  6. Auflage 
Freemann, Er. u.  Entwurfsmuster von Kopf bis Fuß  Köln  2008 
Freemann, El.  4. Auflage 
Saake, G. u.  Algorithmen und Datenstrukturen  Illmenau  2010 
Sattler, K.  4. Auflage 
Seeboerger‐Weichselbaum  PHP‐Workshop  Hamburg  2005 
Reimers, S. u.  PHP 5.3 & MySQL 5.1  Bonn  2009 
Thies, G.  2. Auflage 
 

Florian Znottka   
Transferprojekt II   |  Ticketsystem  – Klinikum Nordfriesland  Seite V |13 
 

Quellcode auf CD‐ROM 

(Die Daten stehen auch unter http://www.cullit.net/tp2.zip bereit) 
 

Florian Znottka   
 

Eidesstattliche Erklärung 
Hiermit versichere ich, dass ich das Transferprojekt selbstständig verfasst und keine 
anderen als die angegebenen Quellen und Hilfsmittel benutzt habe, alle 
Ausführungen, die anderen Schriften wörtlich oder sinngemäß entnommen wurden, 
kenntlich gemacht sind und die Arbeit in gleicher oder ähnlicher Fassung noch nicht 
Bestandteil einer Prüfungsleistung war. 

________________________ 

Unterschrift 

Florian Znottka