Softwarepraktikum (Grundlagen der Informatik) 2004 OmniCleaner Projektdokumentation (Teilbeleg 1) Teamleiter: Enrico Billich Mitglieder des Projektteams: Albert Kurz Praktikumsbetreuer: Dr. Müller Chemnitz, den 09.05.2004 -1- 1 Spezifikation der funktionellen Anforderungen 1.1 Produktbeschreibung Leistungsumfang: Die Software OmniCleaner soll einen Einsatzplan für ein Reinigungsunternehmen erstellen und am Ende eines Monats die Stundenabrechnung für die Mitarbeiter durchführen. Dazu müssen die Mitarbeiter und die Objekte in je einer Datenbank festgehalten und verwaltet werden, was die Software ebenfalls kann. Die Software setzt dabei voraus, dass es in dem Unternehmen, in dem sie eingesetzt wird, feste Arbeitszeiten (typisch wäre von 20 Uhr bis 4 Uhr) vorherrschen. Nutzungsumgebung: Die Browserversion läuft auf einem zentralen Server und kann mit jedem Computer, der mit dem Server verbunden ist und einen Browser besitzt, bedient werden. So können auch Arbeiter von zu Hause aus ihre Daten und Dienstplan abfragen. Alternativ wird auch an einer browserunabhängigen Version gearbeitet, die nur auf einem Windowsrechner läuft und ohne Server auskommt. Es ist aber momentan noch ungewiss, ob diese Version jemals wirklich realisiert wird. Eine spezielle Linuxversion ist derzeit nicht geplant. Da bleibt nur die plattformunabhängige Onlineversion. Nutzergruppen: Hauptsächlich wird die Verwaltung und die Firmenführung auf das System uneingeschränkt zugreifen können. Mitarbeiter können ihre Daten überprüfen (nur Lesezugriff) und ihren Einsatzplan anschauen. 1.2 Funktionelle Anforderungen 1.2.1 Umgebungsmodell 1.2.1.1 Ereignistabelle (V = Verwaltung, M = Mitarbeiter) (Verwaltung kann auch alles was Mitarbeiter kann) Nr. Ereignis 1. V bearbeitet Mitarbeiterdaten Datenfluss zum System Mitarbeiterdaten 2. V bearbeitet Objektdaten Objektdaten 3. V erstellt Dienstplan 4. 5. V erstellt Stundenabrechnung M ruft Mitarbeiterdaten ab 6. M ruft Dienstplan ab Auftrag zur DienstplanErstellung Auftrag zur Stundenabrechnung Stundenabrechnung Informationsanforderung Ausgabe Mitgliederdaten Dienstplananforderung Ausgabe Dienstplan -2- Antwort des Systems Bestätigung der Änderung Bestätigung der Änderung Dienstpläne 1.2.1.2 Kontextdiagramm Bestätigung der Änderung Verwaltung Bestätigung der Änderung Dienstpläne Stundenabrechnung Auftrag zur Stundenabrechnung Auftrag zur Dienstplan-Erstellung Objektdaten Mitarbeiterdaten 0 OmniCleaner System Mitarbeiterdatenanforderung Ausgabe Mitarbeiterdaten Dienstplananforderung Ausgabe Dienstplan Mitarbeiter -3- 1.2.2 Verhaltensmodell 1.2.2.1 Grobes Verhaltensmodell (vergröbertes primäres Verhaltensmodell) Mitarbeiterdatenanforderung Ausgabe Mitarbeiterdaten Dienstplananforderung Ausgabe Dienstplan Mitarbeiterdaten Bestätigung der Änderung Objektdaten Bestätigung der Änderung .1 Datenbewegung Mitarbeiter Objekte Dienstpläne .2 Dienstplan/ Abrechnung Auftrag zur Dienstplan-Erstellung Dienstpläne Auftrag zur Stundenabrechnung Stundenabrechnung -4- 1.2.2.2 Primäres Verhaltensmodell 1.2.2.2.1 Teilmodell Datenbewegung Mitarbeiterdaten Ergebnis Mitarbeiteränderung Objektdaten .1 Mitarbeiter registrieren Mitarbeiter Ergebnis Objektänderung .2 Objekt registrieren Dienstpläne Objekte .4 Dienstplan ausgeben .3 Mitarbeiterdaten ausgeben Dienstplananforderung Mitarbeiterdatenanforderung Ausgabe Dienstplan Ausgabe Mitarbeiterdaten -5- 1.2.2.2.1.1 Verfeinerung des Prozesses Mitarbeiter registrieren Name Ausgabe Mitarbeiterdaten Bestätigung der Änderung Mitarbeiterdatensatz .1 Mitarbeiterdaten ausgeben .2 Mitarbeiter hinzufügen Mitarbeiter .4 Mitarbeiter löschen .3 Mitarbeiterdaten bearbeiten Name Mitarbeiterdatensatz Bestätigung der Änderung Bestätigung der Änderung -6- 1.2.2.2.1.2 Verfeinerung des Prozesses Objekt registrieren Objektname Ausgabe Objektdaten Bestätigung der Änderung Objektdatensatz .1 Objektdaten ausgeben .2 Objekt hinzufügen Objekte .4 Objekt löschen .3 Objektdaten bearbeiten Objektname Objektdatensatz Bestätigung der Änderung Bestätigung der Änderung -7- 1.2.2.2.2 Teilmodell Dienstplan/ Abrechnung Auftrag zur Dienstplan-Erstellung Dienstpläne .1 Dienstplan-Erstellung Mitarbeiter Dienstpläne Objekte .2 Erstellung der Stundenabrechnung Auftrag zur Stundenabrechnung -8- Stundenabrechnung 1.2.2.3 Datenkatalog Element Mitarbeiter Mitarbeiterdatensatz = = Mitarbeiternummer = Name Vorname Nachname Anschrift Straße PLZ Stadt Telefonnummer Email Monatsstunden Rang Qualifikation = = = = = = = = = = = = Computer Blumen Öl Säure Medizin Autos Leichen Objekte Objektdatensatz = = = = = = = = = Objektnummer = Objektname Einsatzzeitpunkt Uhrzeit Stunden Minuten Wochentag = = = = = = Häufigkeit Dauer Personal AnzTeamleiter AnzNormal AnzSpezial = = = = = = AnzComputer = Strukturbeschreibung {Mitarbeiterdatensatz} @Mitarbeiternummer + Name + Anschrift + Monatsstunden + Rang + Qualifikation gZahl *Mitgliedsnummer >= 0, automatisch festgelegt* Vorname + Nachname Zeichenkette30 *nur Buchstaben* Zeichenkette30 *nur Buchstaben* Straße + PLZ + Stadt + Telefonnummer + (Email) Zeichenkette30 *besteht aus Straße und Hausnummer* gZahl *5 stellig, PLZ >= 00000* Zeichenkette30 *nur Buchstaben und Leerzeichen* Zeichenkette20 *nur Ziffern* Zeichenkette30 *keine Leerzeichen* gZahl *0 <= Monatsstunden <= 170* [“Chef’’ | “Teamleiter’’ | “Angestellter’’ | “Aushilfe’’] (Computer) + (Blumen) + (Öl) + (Säure) + (Medizin) + (Autos) + (Leichen) [“0’’ | “1’’] [“0’’ | “1’’] [“0’’ | “1’’] [“0’’ | “1’’] [“0’’ | “1’’] [“0’’ | “1’’] [“0’’ | “1’’] {Objektdatensatz} @Objektnummer + Objektname + Anschrift + Einsatzzeitpunkt + Personal *Anschrift wie bei Mitarbeiter* gZahl *Mitgliedsnummer >= 0, automatisch festgelegt* Zeichenkette30 Uhrzeit + Wochentag + Häufigkeit + Dauer Stunden + Minuten gZahl *00 <= Stunden <= 04, 20 <= Stunden <= 24* gZahl *00 <= Minuten <= 60* [“Montag’’ | “Dienstag’’ | “Mittwoch’’ | “Donnerstag’’ | “Freitag’’] [“täglich’’ | “wöchentlich’’ | “monatlich’’] gZahl *0 <= Dauer <= 420, in Minuten* AnzTeamleiter + (AnzNormal) + (AnzSpezial) gZahl *AnzTeamleiter <= 5* gZahl *AnzNormal <= 20* (AnzComputer) + (AnzBlumen) + (AnzÖl) + (AnzSäure) + (AnzMedizin) + (AnzAutos) + (AnzLeichen) *Werte verschieden von Mitarbeiter* gZahl *0 <= Computer <= 10* -9- AnzBlumen AnzÖl AnzSäure AnzMedizin AnzAutos AnzLeichen Dienstpläne Dienstplansatz Einsatz = = = = = = = = = Einsatzzeit = Tag = Position = Ergebnis Mitarbeiteränderung Ergebnis Objektänderung Mitarbeiterdaten Objektdaten Bestätiung der Änderung Mitarbeiterdatenanforderung Ausgabe Mitarbeiterdaten Ausgabe Objektdaten Dienstplananforderung Ausgabe Dienstplan Auftrag zur DienstplanErstellung Auftrag zur Stundenabrechnung Cheflohn Angestelltenlohn Aushilfenlohn Stundenabrechnung Lohn Passwort = gZahl *0 <= Blumen <= 10* gZahl *0 <= Öl <= 10* gZahl *0 <= Säure <= 10* gZahl *0 <= Medizin <= 10* gZahl *0 <= Autos <= 10* gZahl *0 <= Leichen <= 10* {Dienstplansatz} {Einsatz} Objektname + Einsatzzeit + Position *Objektname siehe Objekt* Tag + Uhrzeit + Dauer *Uhrzeit und Dauer siehe Objekt* Zeichenkette15 *im Format Wochentag + Woche im Monat* [“Teamleiter’’ | “Normal’’ | “Computer’’ | “Blumen’’ | “Öl’’ | “Säure’’ | “Medizin’’ | “Autos’’ | “Leichen’’] [Mitarbeiterdatensatz | Bestätigung der Änderung] = = = = = = = = = = [Objektdatensatz | Bestätigung der Änderung] [Mitarbeiterdatensatz | Name] [Objektdatensatz | Objektname] [“Es hat geklappt’’ | “fehlgeschlagen] Name *Name siehe Mitarbeiter* [Mitarbeiterdatensatz | “Existiert nicht’’] [Objektdatensatz | “Existiert nicht’’] Name *Name siehe Mitarbeiter* [Dienstplansatz | “Existiert nicht’’] “1’’ = Cheflohn + Angestelltenlohn + Aushilfenlohn *= Stundenlöhne* = gZahl = gZahl = gZahl = {Lohn} = rZahl *Monatsstunden mal Stundenlohn* = Zeichenkette20 *momentan belegok* - 10 - 1.2.2.4 Beziehungen zwischen Speichern (Entity-Relationship-Diagramm) Mitarbeiternummer Rang Name Monatsstunden Qualifikation Anschrift Mitarbeiter 1 n besitzt 1 Dienstpläne arbeiten Objektname Position Einsatzzeit m Personal Objekte Einsatzzeitpunkt Objektname Anschrift - 11 - Objektnummer 1.2.2.5 Prozessspezifikationen 1.2.2.5.1 Mitarbeiter hinzufügen Begin Eingabe des Mitarbeiterdatensatz If Mitarbeiterdatensatz vollständig und korrekt Trage Daten in Datenbank „Mitarbeiter“ ein Bestätigung der Änderung Else Weise auf die fehlenden oder fehlerhaften Einträge hin und zeige Fenster wieder an End. 1.2.2.5.2 Objekt hinzufügen Begin Eingabe des Objektdatensatz If Objektdatensatz vollständig und korrekt Trage Daten in Datenbank „Objekte“ ein Bestätigung der Änderung Else Weise auf die fehlenden oder fehlerhaften Einträge hin und zeige Fenster wieder an End. 1.2.2.5.3 Mitarbeiterdaten ausgeben Begin Eingabe Name des Mitarbeiters If Mitarbeiter vorhanden Ausgabe Mitarbeiterdatensatz Else Ausgabe Mitarbeiter existiert nicht End. 1.2.2.5.4 Objektdaten ausgeben Begin Eingabe Objektname des Objektes If Objekt vorhanden Ausgabe Objektdatensatz Else Ausgabe Objekt existiert nicht End. - 12 - 1.2.2.5.5 Mitarbeiter bearbeiten Begin Prozess Mitarbeiterdaten ausgeben Veränderung der Daten If Mitarbeiterdatensatz vollständig und korrekt Aktualisiere Daten in Datenbank „Mitarbeiter“ Bestätigung der Änderung Else Weise auf die fehlenden oder fehlerhaften Einträge hin und zeige Fenster wieder an End. 1.2.2.5.6 Objekt bearbeiten Begin Prozess Objektdaten ausgeben Veränderung der Daten If Objektdatensatz vollständig und korrekt Aktualisiere Daten in Datenbank „Objekte“ Bestätigung der Änderung Else Weise auf die fehlenden oder fehlerhaften Einträge hin und zeige Fenster wieder an End. 1.2.2.5.7 Mitarbeiter löschen Begin Eingabe Name des Mitarbeiters If Mitarbeiter vorhanden Lösche Mitarbeiterdatensatz Bestätigung der Änderung Else Ausgabe Mitarbeiter existiert nicht End. 1.2.2.5.8 Objekt löschen Begin Eingabe Objektname des Objektes If Objekt vorhanden Lösche Objektdatensatz Bestätigung der Änderung Else Ausgabe Objekt existiert nicht End. - 13 - 1.2.2.5.9 Dienstplan ausgeben Begin Eingabe Name des Mitarbeiters If Mitarbeiter vorhanden While Einsatz Ausgabe Einsatz Else Ausgabe Mitarbeiter existiert nicht End. 1.2.2.5.10 Dienstplan-Erstellung Begin Betätigung des Startknopfes While Objektdatensatz While Personal *für jede Art Personal z.B. Teamleiter, AnzComputer, etc.* While Mitarbeiterdatensatz und Anz der Qualifikation nicht erreicht If Mitarbeiterdatensatz besitzt gesuchte Qualifikation Neuer Einsatz im Dienstplansatz Anz der Qualifikation wird erhöht *Es werden zuerst die Angestellten, Chefs und Teamleiter durch sucht, dann erst die Aushilfen, wenn noch nicht genug* Else Gehe zum nächsten Mitarbeitersatz If alle Anz erfüllt Erfolgsmeldung Else Ausgabe Fehlgeschlagen End. 1.2.2.5.11 Erstellung der Stundenabrechnung Begin Eingabe des Cheflohns, Angestelltenlohn, Aushilfenlohn *= Stundenlöhne* While Mitarbeiterdatensatz Monatsstunden mal Stundenlohn End. - 14 - 1.3 Definition der Nutzerschnittstelle Browserversion: Die Darstellung von Internetseiten wurde durchs W3C standardisiert und sollte mit jedem Browser gleich aussehen. Im Endeffekt unterliegt sie aber den Eigenarten des Browsers, deshalb sollte man über geringe Unterschiede hinwegsehen. Die Seiten sollten noch mit einer Auflösung 640x480 gut sichtbar sein, wurden aber für 1024x768 entwickelt und optimiert. Die Browserfenster kann man normalerweise belieb in der Größe ändern, ab einer gewissen Mindestgröße wird das Programm durch das viele betätigen der Scrollbalken unbenutzbar. Verschieben und Minimieren gehört ebenfalls zum Funktionsumfang aktueller Browser. Alle derartigen Modifikationen sind permanent bis sie geändert werden. Die oben genannten Bedingungen gelten sowohl für das Grundfenster, als auch für sämtliche anderen Fenster des Programms. Alle Fenster werden im gleichen Browserfenster geöffnet. Man kann aber auch über das Kontextmenü des Browser, wenn man mit der rechten Maustaste auf einen Link klickt (bei den meisten Browsern so), das Fenster in einem neuen Browserfenster öffnen. Das Programm ist jederzeit beendbar. Es gibt keinen Datenverlust, bei den abgespeicherten Daten. Die Farbwahl wird ebenfalls teilweise vom Browser bestimmt. Die Schrift ist in Schwarz, das Logo ist grün, Links sind entweder Blau oder rot, und der Hintergrund ist einheitlich in weiß. Die Bedienung erfolgt über Maus und Tastatur. Die Ausgabe über einen Bildschirm mit oben genannter Auflösung. Wenn der Browser eine Druckfunktion und der Rechner einen Drucker besitzt, kann man ebenfalls den Drucker zur Ausgabe benutzen. Die Bilder unten sind Screenshots des Programms. Fenster ohne Eingabefelder haben nur informierenden Charakter und werden nicht abgebildet. Browserunabhängige Version: Sollte diese Version jemals das Licht der Welt erblicken, wird sie bestmöglich der Browserversion nachempfunden. Das Fenster kann ebenfalls in der Größe verändert, minimiert und verschoben werden. Die Farbwahl würde mehr ins graue gehen. Bisweilen stellt sich aber die grafische Ausgabe als sehr schwierig dar. Bei dem derzeitigen Stand ist es ein Konsolenprogramm mit reiner Textausgabe. Durch geschickte Programmierung bleibt das Programm aber bedienbar. Zur Verdeutlichung werden nur ein oder zwei Beispiele hier gezeigt. Zur Eingabe werden ebenfalls Maus und Tastatur benutzt. Ausgabe ist wieder der Monitor. - 15 - 1.3.1 Layoutentwurf 1.3.1.1 Legende zur Layoutdarstellung Text und Eingabefelder - Ausgabebereich des Fensters - Ein- und Ausgabebereich mit Element des Datenkatalog - Knopf, um Daten abzuschicken - Auswahlfeld als Pull-Down Menü - Checkbox, mit Häkchen ausgewählt Eingabe 1.3.1.2 Grundfenster Das ist das Grundfenster, was die Verwaltung sieht. Im Mitarbeiterbereich fehlt das Feld „Objekte“. Das Browserfenster kann man sich drum herum denken. Das Logo und das Hauptmenü bleiben für jedes Fenster sichtbar. So ist ein schnelles wechseln zwischen allen Bereichen gewährleistet. - 16 - 1.3.1.3 Menüs Für jeden Menüpunkt des Hauptmenüs existiert ein Untermenü. Diese werden an der linken Seite unterhalb von „Wir über uns“ angezeigt. Zum Untermenüpunkt „Manual“ des Hauptmenüpunktes „Hilfe“ gibt es noch ein weiters Untermenü, das unterhalb des Hauptmenüs abgebildet wird. Die Untermenüs von „Mitarbeiter“ und „Objekte“ sind identisch. Alle Menüs bestehen aus Links. Wir über uns Mitarbeiter/Objekte Dienstplan/Abrechnung 1.3.1.4 Fenster Mitarbeiterbereich 1.3.1.5 Fenster Mitarbeiter Anzeigen - 17 - Hilfe 1.3.1.6 Fenster Mitarbeiter Hinzufügen 1.3.1.7 Fenster Mitarbeiter Bearbeiten Zu erst sieht man das Fenster „Mitarbeiter Anzeigen“, dann das Fenster „Mitarbeiter Hinzufügen“, wenn der Mitarbeiter existiert. Siehe Screenshots oben. 1.3.1.8 Fenster Mitarbeiter Löschen Siehe „Mitarbeiter Anzeigen“. Anstatt den Mitarbeiter anzuzeigen, wird er gelöscht. - 18 - 1.3.1.9 Fenster Objekt Anzeigen 1.3.1.10 Fenster Objekt Hinzufügen 1.3.1.11 Fenster Objekt Bearbeiten Zuerst wird das Fenster „Objekt Anzeigen“ angezeigt, dann das Fenster „Objekt Hinzufügen“, wenn das Objekt existiert. - 19 - 1.3.1.12 Fenster Objekt Löschen Siehe Fenster „Objekt Anzeigen“. Anstatt das Objekt anzuzeigen, wird es gelöscht. 1.3.1.13 Fenster Dienstplan Anzeigen 1.3.1.14 Fenster Dienstplan Erstellen 1.3.1.15 Fenster Stundenabrechnung 1.3.1.16 Browserunabhängige Versionen Konsolenprogramm Grafische Oberfläche - 20 - 2 Spezifikation der operationellen Anforderungen 2.1Operationelle Anforderungen an die Daten und die Datenbasen Die Minimalanzahl an Daten in der Mitarbeiterdatenbank ist der gesamte Mitarbeiterdatensatz ohne spezielle Qualifikationen und ohne Emailadresse, und eine Spalte für den Dienstplandatensatz. Die Maximalanzahl besteht aus dem Mitarbeiterdatensatz und den Dienstplandatensatz. Für Minimalanzahl an Daten in der Objektdatenbank wird der gesamte Objektdatensatz ohne Email Adresse und Anzahl der Spezialqualifikationen benötigt. Die Maximalzahl besteht aus dem gesamten Objektdatensatz. Alle Zahlen werden als ganze Zahlen in die Datenbanken eingetragen. Die Monatsstunden werden Minutengenau eingetragen. Die Stunden beim Objektdatensatz werden vom Benutzer als normale Uhrzeit eingetragen, vom Programm aber in eine Zahl zwischen 20 und 28 umgewandelt, weil sich die Uhrzeit nur zwischen 20 und 04 Uhr befinden darf. Die Anzahl der Teamleiter ist eine ganze Zahl größer Null. Die Anzahl der Normalen Putzen und die Anzahlen der Spezialqualifikationen kann eine beliebe Zahl größer gleich Null sein. 2.2Operationelle Anforderungen an die Datenströme Datenflüsse finden immer statt, wenn eine Aktion mit dem Programm ausgeführt werden soll. Dabei werden die Mitarbeiter wesentlich häufiger auf ihre Dienstpläne zugreifen, als die Verwaltung neue Mitarbeiter und Objekte einträgt, oder einen Dienstplan/Stundenabrechnung erstellt. Wenn man berücksichtigt, dass ein Mitarbeiter etwa dreimal wöchentlich auf seinen Dienstplan zugreift und die Verwaltung vielleicht zweimal pro Woche, ergeben sich pro Woche die Anzahl der Zugriffe aus Mitarbeiteranzahl mal 3 plus 2. Bei etwa 30 Mitarbeitern, kann man mit 100 Datenflüssen rechnen. 2.3Operationelle Anforderungen an die Prozesse Alle Prozesse, die Daten ausgeben, sollten innerhalb von 5 Sekunden ausgeführt worden sein, um die Nerven der Benutzer nicht zu stark zu strapazieren. Die Prozesse DienstplanErstellung und Stundenabrechnung haben eine größere Toleranzspanne und können mehrere Minuten dauern. Es ist aber anzunehmen, dass auch diese recht schnell in wenigen Sekunden oder Bruchteile von Sekunden ausführbar sind. - 21 - 3 Spezifikation wichtiger Qualitätsanforderungen Das System erfüllt alle bei 1.1 erwähnten Anforderungen, mit den dort angesprochenen Einschränkungen. Das System erstellt den Dienstplan nach einem vorgegebenen festen Logarithmus und kann sich nicht selbst zur Optimierung anpassen. Es wurde deshalb der Algorithmus gewählt, der in den meisten Fällen zu einem Erfolg führt. 3.1Benutzbarkeit Für einfache Mitarbeiter ist die Bedienung sehr einfach zu erlernen, wenn sie schon vorher mit einem Browser Erfahrungen gesammelt hatten. Mit Browsern unerfahrene Benutzter werden nach wenigen Minuten Surfen im Internet ebenfalls problemlos das System für Mitarbeiter bedienen können. Benutzer in der Verwaltung, die ebenfalls die Datenbank direkt bedienen können sollten, müssen sich mit wesentlich mehr Funktionen vertraut machen. Das Programm selber ist selbsterklärend und mögliche Fragen werden in der integrierten Hilfe beantwortet. Nach einmaliger Benutzung sollte ein durchschnittlicher Verwaltungsmitarbeiter damit umgehen können. Die Benutzung von Software, um die Datenbank direkt zu bedienen, ist etwas komplizierter und benötigt etwa eine halbe Stunde Einarbeitungszeit. Wer noch einen Schritt weiter gehen möchte und die Datenbank über Textbefehle bedienen will, muss eine spezielle Befehlssprache erlernen. Das nimmt mehrere Stunden in Anspruch und ist nicht empfehlenswert, da man schwerwiegende Fehler in der Datenbank verursachen kann. 3.2Zuverlässigkeit Die Software vermeidet bestmöglich Eingabefehler. Direkte Eingaben in der Datenbank werden aber nicht korrigiert und man kann schwerwiegende Fehler verursachen. Abstürze des Servers dürften keine Schäden in der Datenbank hinterlassen. Bei einem Festplattendefekt sind aber Datenbankfehler nicht auszuschließen. Deshalb sollte man stets Backups von der Festplatte anfertigen oder eine Kopie der Datenbank auf einem anderen Rechner sichern. Diese Funktionen unterstützt die Software selbst nicht. 3.3Integrität Um Manipulationen an der Datenbank vornehmen zu können, muss man das Passwort für den Verwaltungsbereich kennen. Dieses ist einfach und schnell veränderbar, man muss nur ein Wort in einer PHP Datei ändern und auf dem Server aktualisieren. Solange der Server nicht mit dem Internet verbunden ist, kann man beinahe jede illegalen Einbrüche ausschließen. Sollte man ihn doch verbinden, damit Mitarbeiter auf ihre Dienstpläne zu Hause zugreifen können, kann jeder den Dienstplan eines Mitarbeiters abrufen, der seinen Namen kennt. Deshalb bleibt als bedeutendes Risiko datenschutzrechtliche Bedenken. 3.4Flexibilität Man kann problemlos weitere Funktionen hinzufügen und die Hilfe erweitern. Bestehende Funktionen sollte man nur vorsichtig verändern. Der Logarithmus zur Dienstplanerstellung wurde extra so gewählt, dass man ihn leicht modifizieren kann. So kann man auch Dienstpläne für mehrere Monate oder zusätzliche Qualifikationen erstellen. Ebenso kann man die Mitarbeiter- und Objektdatensätze beliebig erweitern. - 22 - 3.5Portabilität Das System ist plattformunabhängig. Man braucht nur einen Computer mit einem Webserver mit PHP Unterstützung und MySQL Datenbank. Clientrechner brauchen nur einen Webbrowser, der XHTML Dateien anzeigt, was so ziemlich jeder aktuelle kann. 4 Basismaschine und Entwicklungsumgebung 4.1Basismaschine 4.1.1 Hardwarekonfiguration Die minimale Hardwarekonfiguration des Servers sollte etwa bei 500MHz, 8 GB Festplatte und 256 MB Speicher liegen, damit auch sämtliche benötigte zusätzliche Software drauf läuft. Es ist nicht auszuschließen, dass auch Rechner mit geringerer Ausstattung die nötige Leistung aufbringen. Clientrechner brauchen nur einen Webbrowser, der XHTML Dateien anzeigen kann. Somit kommen Selbst Rechner unter 100 MHz und webfähige Handys in Frage. 4.1.2 Betriebssystem Heutzutage gibt es für alle verbreiteten Betriebssysteme Webserver mit PHP Unterstützung und die MySQL Datenbank. Es wird aber empfohlen entweder Linux oder Windows XP (Windows Server 2003) zu benutzen, da diese Systeme zu tausenden für diese Aufgabe genutzt werden. 4.1.3 Sonstige Basissoftware Man sollte sich zusätzlich einen Webserver, die PHP Unterstützung und die MySQL Datenbank kostenlos aus dem Internet herunterladen und installieren. Installationsanweisungen findet man rasch durch Suchmaschinen. 4.2Entwicklungsumgebung Das System wurde auf einem Windows XP Rechner mit der Software HTML-Kit entwickelt. Um es zu testen, wurde es zum einen auf den TU Chemnitz Webserver hochgeladen und zum anderen mit einem selbst Konfigurierten System aus Apache 2 (2.0.49) Webserver, PHP (4.3.6) Unterstützung, MySQL (4.0.18) Datenbank und phpMyAdmin (2.5.6) auf dem Windows XP Rechner erfolgreich getestet. Es gibt keine Garantien, dass es noch mit dem neuen, kommenden PHP 5 läuft. - 23 - 5 Planung Die Entwicklung des Systems OmniCleaner erfolgt nach folgendem Plan. - 24 -