Beruflich Dokumente
Kultur Dokumente
Nico Höllerich
Version 1.0
25.03.2015
25.3.2015
PFLICHTENHEFT
Inhalt
1 Allgemeines ...................................................................................................... 3
2 Architektur ....................................................................................................... 3
2.1 Strukturmodell ......................................................................................... 4
2.2 Verhaltensmodelle .................................................................................... 8
3 Datenmodell ..................................................................................................... 4
3.1 Speicherung .............................................................................................. 5
3.2 Controlling ................................................................................................ 6
3.3 Updates ..................................................................................................... 7
3.4 Antworten ................................................................................................. 8
3.5 Suche ......................................................................................................... 8
4 Server-Kommunikation ................................................................................... 8
4.1 Übertragungsformat ............................................................................... 10
4.2 Authentifizierung.................................................................................... 10
4.3 Ablauf ...................................................................................................... 10
4.4 GET - Anfragen ....................................................................................... 13
4.5 POST - Anfragen ..................................................................................... 13
4.6 PUT - Anfragen ....................................................................................... 14
4.7 DELETE - Anfragen ............................................................................... 15
5 Benutzerschnittstelle ..................................................................................... 15
5.1 Login........................................................................................................ 16
5.2 Auftragsauswahl ..................................................................................... 17
5.3 Auftragsdetails........................................................................................ 18
5.4 Status aktualisieren ............................................................................... 20
5.5 Nachricht erstellen ................................................................................. 20
5.6 Kunden und Adresse eingeben ............................................................... 21
5.7 Quittung ausstellen ................................................................................ 22
5.8 Posten und Artikel eingeben .................................................................. 23
5.9 Fahrersuche ............................................................................................ 24
5.10 Fahrer bearbeiten ................................................................................... 25
5.11 Fahrerperformance ................................................................................. 26
5.12 Accountverwaltung ................................................................................. 27
6 Testfälle .......................................................................................................... 27
6.1 Funktionale Anforderungen ................................................................... 27
1
25.3.2015
2
25.3.2015
1 ALLGEMEINES
In dem folgende Dokument wir die softwaretechnische Umsetzung der im Las-
tenheft App zur Verwaltung von Fahrern und Fahraufträgen in der Version 1.1
festgelegten Anforderungen konkret beschrieben. Es wird dabei in der Hauptsa-
che auf die Umsetzung der Pflichtkriterien eingegangen, wobei die Umsetzung
der Wunschkriterien zwar prinzipiell in der Architektur vorgesehen ist, aus
Gründen der Übersichtlichkeit aber zum großen Teil bei der Erklärung der gra-
fischen Benutzeroberfläche weggelassen wird. Die endgültige Prüfung der Daten
auf Korrektheit findet auf dem Server statt und führt ggf. zu einer Warnung
oder Fehlermeldung. Die Kriterien hierfür sind im von ITDevelopments verfass-
ten Lastenheft zur Server-Applikation genauer spezifiziert.
2 ARCHITEKTUR
Die Gesamtarchitektur lässt sich schematisch in drei Schichten gliedern:
3
25.3.2015
2.1 Strukturmodell
Client
Benutzerschnittstelle
Netzwerkkomponente
View Controller
Serverkommunikation
<<import>> <<import>>
<<import>>
<<import>> Authentifizierung
Datenmodell
Updates <<import>>
Speicherung
<<import>>
Antworten
<<import>>
Util
Suche Controlling
3 DATENMODELL
Das Datenmodell dient der Speicherung und Manipulation von Aufträgen und
Fahrern, ersteres lokal auf dem Client, letzteres im Austausch mit dem Server.
4
25.3.2015
3.1 Speicherung
Speicherung
0..1 artikel
durchlief q hat angehängt y
statushistorie Artikel
0..* nachrichten
0..*
id : int
Status Nachricht volumen : double
gewicht : double
id : int id : int verpackungseinheit : String
zeitstempel : Date zeitstempel : Date bezeichnung : String
art : Statusart art : Nachrichtenart eigenschaften : Eigenschaft[0..*]
ursache : String inhalt : String
Dieses Schema dient dem Abspeichern der Information über Fahrer und Aufträ-
ge und wird auch genutzt, um einem Fahrer die notwendigen Informationen
anzuzeigen. Hierbei ist jedes Objekt mit einer eindeutigen ID versehen, um es
so in der Datenbank abspeichern und für Updates Referenzen auflösen zu kön-
nen. Abgesehen von der Fahrer-ID, welche identisch zur Personalnummer ist,
werden sämtliche IDs serverseitig in Übereinstimmung mit der Datenbank ver-
geben. Die abstrakte Oberklasse Person dient lediglich dazu, die Attribute für
Kontaktinformationen einheitlich abspeichern zu können. Darüber hinaus wird
besonders berücksichtigt, dass mit der Software die Personalakten der Fahrer
langsam abgelöst werden sollen, wofür die darin enthaltenen Informationen mit
aufgenommen wurden. Weiterhin soll eine effiziente Navigation vom Fahrer zu
seinen Aufträgen in Abhängigkeit des Datums gewährleistet sein, weshalb eine
qualifizierte Assoziation zu der Auftragsliste besteht. Da Aufträge auch verscho-
ben werden, können sie in verschiedenen Auftragslisten auftreten. Mit der As-
soziation "an Dritten" wird insbesondere auf den Anwendungsfall F25 eingegan-
gen, für den Kontakt- und Adressinformationen des Empfängers gesondert ge-
5
25.3.2015
speichert werden müssen. Die Übergabe an den Empfänger, mit dem Auftrag
verbundene Nachrichten und weiter Vorkommnisse bei der Abarbeitung werden
in der Statushistorie bzw. den angehängten Nachrichten gespeichert, um so die
Anwendungsfälle F20, F25 und F50 abzudecken. Die separate Speicherung der
Zieladresse ermöglicht es, einen von dem Hauptwohnsitz des Kunden abwei-
chenden Zielort anzugeben, um so auch Lieferungen zu einem Zweitwohnsitz
oder Schrebergarten erfassen zu können. Die Aufspaltung von Posten und Artikel
bietet den Vorteil, dass identische Eigenschaften für gleiche Gegenstände nicht
immer wieder neu eingegeben werden müssen. Das Attribut gesamtgewicht in
Auftrag ist die Summe aus quantitaet · gewicht der jeweiligen Artikel.
3.2 Controlling
Dieses Paket erweitert das Speicherungsdatenmodell um speziell für das Con-
trolling nötige Klassen, die zumeist aggregierte Daten enthalten. Klassen mit
dem Zusatz "(von Speicherung)" stehen lediglich stellvertretend für entspre-
chende Importe.
Controlling
Fahrer
(von Speicherung)
0..1 fahrer
0..1 fahrerperformance
Fahrerperformance fahrerperformance
statustypen
umfasst u Statustyp
1 0..9
art : Statusart
fahrerperformance ursachen : String[0..*]
1
haeufigkeit : int
fahrerperformance 0..1
Zur Trennung der Pakete Speicherung und Controlling wird die Klasse Fahrerper-
formance eingeführt, welche einen Fahrer repräsentiert und auf diesen eine Re-
ferenz hat. Geholt werden dabei nur diejenigen von Fahrerperformance referen-
zierten Objekte, die sich in einem angegebenen Zeitraum befinden (siehe Fens-
ter Fahrerperformance der Benutzeroberfläche). Dies dient zusammen mit der
Klasse Statustyp dazu, aktuelle und häufig auftretende Probleme identifizieren
zu können. Statustyp ist die Aggregation (und Zählung) von Statusobjekten an-
6
25.3.2015
3.3 Updates
Updates
AddAuftraege
InsertArtikel InsertAdresse
auftraegeId : int[1..*]
bezeichnung : String land : String
fahrerId : int
verpackungseinheit : String ort : String
datum : Date
volumen : double gebaeude : String
gewicht : double plz : int
eigenschaften : Eigenschaften[0..*] strasse : String
UpdateKunde hausnummer : String
wohnortId : int
vorname : String
nachname : String Update InsertPosten
geschlecht : Geschlecht
telefonnummer : String RemoveAuftrag
mobilnummer : String auftragId : int
faxnummer : String artikelId : int
auftragId : int
email : String quantitaet : double
UpdateFahrer
auftragId : int auftragId : int kundeId : int
zeitstempel : Date zeitstempel : Date dritterId : int
geburtsdatum : Date art : Nachrichtenart art : Statusart zielortId : int
sozialversicherungsnummer : String inhalt : String ursache : String frist : Date
steueridentifikationsnummer : String auslieferungshinweis : String
status : Fahrerstatus
krankenversicherung : String
rentenversicherung : String
Klassennamen, die mit Update beginnen, dienen dem Erstellen bzw. Ändern der
persistierten Objekte auf dem Server. id bezieht sich dabei auf den Primär-
schlüssel der Klasse. Die Attribute adresse, artikel, kunde, fahrer, auftrag, auftrags-
liste und zielort enthalten die IDs der entsprechend referenzierten Objekte.
AddNachricht, AddStatus und AddPosten sollen einem Auftrag eine neue Nach-
richt bzw. Status bzw. Posten hinzufügen. AddAuftrag fügt eine Liste von Auf-
trägen, deren IDs in auftraege gespeichert sind, einer Auftragsliste hinzu, welche
mittels des angegebenen Fahrers und Datums bestimmt bzw. erstellt wird.
7
25.3.2015
3.4 Antworten
Die Antworten des Servers sind in der Regel Objekte des Datenmodells Speiche-
rung, bei denen ggf. auf Referenzen verzichtet wird, siehe Abschnitte GET - An-
fragen und POST - Anfragen. Zur Unterstützung kompakter Aktualisierungen
und Suchoperationen werden möglicherweise weitere Klassen benötigt, welche
Listen bestehend aus den angeforderten Objekten kapseln.
3.5 Suche
Suche
Die Klassen dienen zur Übergabe der Suchkriterien für bestimmte Serveranfra-
gen. Ihre genaue Bedeutung wird im Abschnitt POST - Anfragen erklärt.
4 VERHALTENSMODELLE
beschäftigt
löschen
8
25.3.2015
Hier ist verzeichnet, welchen Status eine Fahrer haben kann und welche Über-
gänge zwischen diesen jeweils möglich sind. Gespeichert wird dieser in einem
gesonderten Attribut status, siehe Abschnitt Speicherung.
erfasst
freischalten
freigeschalten verschoben
verschieben
Auslieferung beginnen
verschieben
Auslieferung
wieder aufnehmen
Auslieferung
Auslieferung
verzögern verzögert
begonnen
zustellen
Zustellung abbrechen an Dritte geben
abschließen abschließen
löschen
abgeschlossen
löschen
Hier ist verzeichnet, welchen Status ein Auftrag annehmen kann und welche
Übergänge möglich sind. Ausschlaggebend für den aktuellen Status ist das Ob-
jekt mit dem aktuellsten zeitstempel in der statushistorie, siehe Abschnitt Spei-
cherung.
9
25.3.2015
5 SERVER-KOMMUNIKATION
5.1 Übertragungsformat
Der Client ruft über eine http-Verbindung benötigte Ressourcen vom Server ab
und erhält als Antwort ein serialisiertes Objekt des Datenmodells, welches ge-
mäß dem Standard zur Serialisierung von Objekt in Java aufgebaut ist. Sollte
keine Internetverbindung bestehen, werden die Update-Objekte in einer Liste
gespeichert. Sobald die Verbindung wieder steht, werden diese nach dem FIFO-
Prinzip abgearbeitet und die IDs für Referenzen auf neu erstellte Objekte noch
ergänzt. Die Server-Kommunikation sollte gegenüber der Benutzerschnittstelle
auch asynchron implementiert werden, damit diese nicht blockiert wird.
5.2 Authentifizierung
Die Serverschnittstelle soll mehrbenutzerfähig sein. Da die REST-Spezifikation
Zustandslosigkeit und damit keine Sessions vorsieht, soll in jeder Anfrage eine
Benutzeridentifikation, bestehend aus Benutzername und Passwort erfolgen.
Dies bietet den Vorteil, dass keine permanente Sitzung nötig ist, um Anfragen
an den Server zu schicken. Damit kann die Applikation wegen des geringen
Overheads auch bei schlechter oder regelmäßig abbrechender Verbindung ge-
nutzt werden.
Die Authentifizierung erfolgt über den HTTP-Header unter Benutzung
des RFC2617-Authentifizierungsschemas: Eine zusammengesetzte Zeichenkette
der Form Benutzername:Passwort wird Base64-verschlüsselt in das
Authentication-Feld des Headers eingetragen.
Der Server soll eine Anfrage nur bearbeiten, wenn das Authentifizierungsmodul
Benutzernamen und Passwort als übereinstimmend erkannt hat. Ansonsten
soll die Antwort einen Fehlercode enthalten.
5.3 Ablauf
Die folgenden Sequenzdiagramme geben einen vereinfachten Ablauf der Client-
Server-Kommunikation für die Anwendungsfälle F20 und F60 wieder. Haupt-
augenmerk liegt dabei darin, aufzuzeigen mit welcher Häufigkeit, mit welchem
Umfang und mit welchem Typ (GET, PUT, POST oder DELETE) Anfragen je-
10
25.3.2015
weils nötig sind. Versendete Objekte, die bei Statusupdates jeweils ihre art als
Objektbezeichner haben, werden den Methoden put, post, delete und get als Pa-
rameter übergeben, wobei nicht zwischen Klassen des Datenmodells Speicherung
und denen des Pakets Updates unterschieden wird.
:Server
Fahrer
1 : get(id = 50)
2 : auftrag = get(…)
3 : post(UpdateStatus = zustellbeginn)
4 : id = post(…)
5 : Ware abliefern
6 : post(UpdateStatus = zugestellt)
7 : id = post(…)
Erstellen eines Auftrags für einen bestehenden Kunden zu einer neuen Adresse,
der zwei Posten bereits bestehender Artikel umfasst. Anschließend wird der
Auftrag freigegeben:
11
25.3.2015
:Server
Mitarbeiter
1 : Auftragsart auswählen
2 : Kunden auswählen
3 : get(SucheKunde = suchkrit1)
5 : Adressdaten aufnehmen
6 : post(adresse = adr1)
7 : adr1.id = post(…)
8 : Auftragsdetails eingeben
9 : post(Auftrag = auftr1)
10 : auftr1.id = post(…)
11 : Posten aufnehmen
12 : get(SucheArtikel = suchkrit2)
14 : post(AddPosten = posten1)
15 : id = post…)
16 : Posten aufnehmen
17 : post(AddPosten = posten2)
18 : id = post(…)
19 : post(UpdateStatus = freigegeben)
13 : id = post(…)
12
25.3.2015
http://Servername/Speditionsapp/
Hierauf folgt dann der unter "Ressource" angegebene Pfad, an den noch die Ob-
jekt-ID zur Identifizierung angehängt wird. Rückgabe ist ein Objekt der ent-
sprechenden Klasse. Ist die Ressource nicht vorhanden, wird ein entsprechender
Fehlercode zurückgegeben.
Ressource Beschreibung
auftragsliste falls keine id spezifiziert ist, wird die auftragsliste des angemel-
deten Fahrers und heutigen Tages zurückgegeben; die referen-
zierten auftraege und deren zielort werden ebenfalls übertragen
auftrag liefert den Auftrag samt aller direkt oder indirekt referenzierten
Objekte (insbesondere auch Kundenadresse und Artikel)
fahrer liefert den Fahrer mit der angegebenen id inklusive seiner auf-
tragslisten (und nur diese!)
kunde liefert angegebenen Kunden samt wohnort zurück
artikel liefert angegebenen Artikel zurück
adresse liefert angegebene Adresse zurück
13
25.3.2015
14
25.3.2015
der URL mitgegeben. In der Spalte Klasse ist wiederum angegeben, ein Objekt
welcher Klasse bei der Anfrage anzuhängen ist. Die von Auftrag existenzabhän-
gigen Objekte sowie Artikel sind dabei immutabel, d. h. sie können weder an
einen anderen Auftrag angehängt noch ihre Attribute bearbeitet werden. Auch
das Löschen ist mit Ausnahme der Posten nicht vorgesehen.
5.8 Update-Warteschlange
Sollte die Kommunikation mit dem Server nicht unmittelbar möglich sein, weil
z. B. die Internetverbindung abgebrochen ist, so werden die Manipulationen am
Datenmodell in folgender Warteschlange zwischengespeichert, um die Daten-
bank auf dem Server später noch aktualisieren zu können:
0..1 Update
Ressource bezieht sich auf u
Queue update (von Updates)
0..*
verwaltet u
anfuegen(res : Ressource) ressourcen {ordered} pfad : String
entnehmen() : Ressource operation : Operation
antwort : Object <<enumeration>>
Die id ist im pfad
Operation
gespeichert
PUT
POST
GET
DELETE
6 BENUTZERSCHNITTSTELLE
Die Benutzeroberfläche soll mit Java Swing geschrieben werden und als Infor-
mationsquelle die Objekte des Datenmodells Speicherung verwenden. Da sowohl
Fahrer als auch Mitarbeiter die gleiche Software benutzen, ist beim Login fest-
15
25.3.2015
6.1 Login
Login
ID
Text eingeben
Passwort
Login
Dies ist der Startbildschirm der Anwendung. Ein Mitarbeiter loggt sich mittels
seiner Personalnummer und seines Passworts ein. Im Passwortfeld erscheinen
jedoch nur Sterne. War dies nicht erfolgreich, wird eine Fehlermeldung ange-
zeigt und das eingegebene Passwort gelöscht. Andernfalls gelangt er zur Auf-
tragsübersicht des Tages (Fahrer) oder zur Auswahl der Fahrer- und Auftrags-
verwaltung (interne Mitarbeiter) mit dem zusätzlichen Menüpunkt Controlling
(Mitarbeiter im Controlling).
16
25.3.2015
6.2 Auftragsauswahl
Übersicht
Details anzeigen
Auftragsauswahl
Suchkriterien
Auftragauswahl
Ansicht für die Fahrer zum Auswählen eines Auftrags (oben), welche auf der
aktuellen Auftragsliste basiert, und für die internen Mitarbeiter zum Heraussu-
chen und Zuweisen mehrerer Aufträge (unten). Sollte im vorangegangenen
Fenster ein Fahrer ausgewählt worden sein, so wird die Standardeinstellung
der Suchkriterien so angepasst, dass nur dessen Aufträge angezeigt werden. Ein
solches Verhalten wird beim Wechsel zu fast allen Fenstern mit Suchfunktion
angestrebt.
17
25.3.2015
6.3 Auftragsdetails
Auftragsdetails
Posten
Zeitstempel Status Ursache
Quantität Bezeichnung 1
Volumen/Gewicht Verpackungsmaße Datum Text Text
Eigenschaften
Datum Text Text
Quantität Bezeichnung 2
Volumen/Gewicht Verpackungsmaße Datum Text Text
Eigenschaften Datum Text Text
Quantität Bezeichnung 3
Volumen/Gewicht Verpackungsmaße
Eigenschaften Nachrichten
Quantität Bezeichnung 4
Volumen/Gewicht Verpackungsmaße Zustellungshinweise
Eigenschaften
In dieser Ansicht werden dem Fahrer alle Informationen zum Auftrag angezeigt.
Es dient als Ausgangspunkt für die Behandlung der Anwendungsfälle F20, F25
und F50. Die Anzeige von "Land" ist optional. Die Statushistorie und Nachrich-
ten sind nach Zeitstempel sortiert, wobei an erster Stelle der Nachrichtenliste
der Zustellungshinweis eingeblendet wird, sofern einer vorhanden ist. Das Sta-
tusupdate "Zustellungsbeginn" kann direkt durch Drücken der Schaltfläche "Zu-
stellung beginnen" zum Server geschickt werden. Danach wird die Schaltfläche
ausgegraut und wird nur dann wieder aktiviert, wenn der Auftrag verschoben
wurde.
18
25.3.2015
Auftragsdetails
Posten
Nachricht 2
freigeben zwischenspeichern
Dies ist die entsprechende Ansicht für Mitarbeiter, die als Ausgangspunkt zum
Erstellen, Vervollständigen und Ändern der Aufträge dient (Anwendungsfälle
F40 und F45), und bei der Kunde, Adresse, Frist und Posten eingegeben und
letztere auch wieder gelöscht werden können. Wurde ein Kunde ausgewählt, so
wird zunächst automatisch dessen Wohnort als Zielort übernommen. Der Ka-
lender ist ausgegraut, solange das Kontrollkästchen vor Frist nicht aktiviert
wurde."Status ändern" und "Nachricht erstellen" stehen erst zur Verfügung,
wenn der Auftrag erstmalig gespeichert wurde. Nach dem Freigeben des Auf-
trags (aktualisieren und Status "freigegeben" zuweisen) fällt die Option "zwi-
schenspeichern" weg und freigeben wird durch "speichern" ersetzt. Vor dem
Hinzufügen eines Artikels wird bei Bedarf ein Auftragsupdate zum Server ge-
schickt und danach ein Artikelupdate. Erfolgte die Warenübergabe an einen
Dritten, so werden im entsprechenden Feld Informationen hierüber angezeigt.
19
25.3.2015
Ursache
Text eingeben
ändern
In dieser Ansicht kann ein neuer Auftragsstatus für die Statushistorie erstellt
werden, welcher dann der aktuelle Status des Auftrags ist. Damit sollen insbe-
sondere Vorkommnisse wie Verzögerung und Aufschub mit einer Begründung
erfasst werden.
Text bearbeiten
Nachrichtentext
erstellen
Dieses Fenster dient dem Anhängen von Nachrichten an einen Auftrag, wobei
das Auswählen einer Vorlage den Text im unteren Textfeld durch vordefinierte
Standardformulierungen samt Auftragsinformationen ersetzt. Nach Wunsch,
kann die Nachricht auch an eine E-Mail-Adresse geschickt werden, was zum
Öffnen einer neuen Nachricht mit dem eingegebenen Text in einem E-Mail-
Programm führt. Standardmäßig wird hier die E-Mail des Kunden eingeblendet.
20
25.3.2015
Vorschläge
Person 1
Person 2
Adresse eingeben
übernehmen
In dieser Ansicht können Kunden erstellt und bearbeitet werden. Die Vorschlä-
ge basieren zunächst auf zuletzt ausgewählten Kunden und nach Drücken der
Schaltfläche "suchen" auf gespeicherten Kunden, die den eingegebenen Vor- und
Nachnamen enthalten. Die Schaltfläche "eingeben" öffnet folgendes Fenster:
Adresse eingeben
speichern
Hier kann eine neue Adresse eingegeben oder eine alte bearbeitet werden. Land
kann dabei neu eingegeben oder aus einer fixen Auswahl gewählt werden. Bear-
beiten bewirkt jedoch das Erstellen eines neuen Adressobjekts, falls nicht genau
dieses schon vorhanden ist, da ansonsten der Zielort alter Aufträge verfälscht
würde.
21
25.3.2015
an Dritten
Vorschläge
Person 1
Person 2
Person 3
Optionen
erstellen
Dieses Fenster dient der Zustellung eines Auftrags (Anwendungsfall F30), in-
dem abhängig davon, ob ein Dritter ausgewählt wurde, ein entsprechendes Sta-
tusupdate an den Server geschickt wird. Die Namenseingabe und Vorschläge
werden erst mit einem Häkchen vor "an Dritten" aktiv. Die Vorschläge basieren
zunächst auf Kunden, deren Wohnort in PLZ und Straße mit dem des Zielorts
des Auftrags übereinstimmt. Nach Drücken auf "suchen" werden alle Personen
gelistete, die den eingegebenen Vor- und Nachnamen entsprechen. Die Option
"Lieferschein" erstellt ein PDF-Dokument, das den Lieferschein mit den Arti-
keln und Unterschriftsfeld enthält. "Artikel detailliert" listet im Lieferschein zu
jedem Posten alle Angaben und "Informationszettel" hängt an den Lieferschein
eine extra Seite an, die für den Kunden gedacht ist und Informationen zum
Empfänger erhält, beide sind nur nach Bedarf verfügbar. Bei Klick auf "erstel-
len" wird das Statusupdate zum Server geschickt und nach dem Speicherort für
das PDF-Dokument gefragt.
22
25.3.2015
erstellen
Vorschläge
Artikel 1
Artikel 2
hinzufügen
Mit diesem Fenster wird ein neuer Posten für einen bestimmten Auftrag er-
stellt. Im Feld "Artikel" kann ein Teil der Bezeichnung angegeben und so nach
passenden Artikeln gesucht werden. Das Auswählen eines Vorschlags und die
Eingabe einer Artikel-ID sind dabei äquivalent, sodass eines genügt und das
andere passend gesetzt wird. Die Quantität gibt an, wie viele Stück eines Arti-
kels in einem Auftrag enthalten sind oder welchen Anteil der Referenzmenge
ein Posten tatsächlich hat, wenn Artikel nach Menge verkauft werden.
Artikel erstellen
Eigenschaften
wasserempfindlich
erstellen
Ein neuer Artikel wird in diesem Fenster erstellt, wobei für den Transport kriti-
sche Eigenschaften angegeben werden können.
23
25.3.2015
6.9 Fahrersuche
Fahrersuche
Suchkriterien
Fahrersuche
ID Text Text
ID Text Text
ID Text Text
ID Text Text
ID Text Text
ID Text Text
In dieser Ansicht wird eine Liste, die nach den angegebenen Suchkriterien gefil-
tert ist, angezeigt. Dies dient dazu, Fahrer auszuwählen und ein Fenster zum
Bearbeiten und Erstellen zu öffnen. Die Schaltfläche "zuweisen" erscheint, wenn
vorher in der Auftragsauswahl mindestens ein Auftrag selektiert wurde. An-
hand des ausgewählten Fahrers und des Datums daneben, wird dann ein Up-
date an den Server geschickt, die selektierten Aufträge in die entsprechende
Liste zu übernehmen (Anwendungsfall F60). Andernfalls ist die Schaltfläche mit
"Liste anzeigen" beschriftet und es wird anhand des Datums die entsprechende
Auftragsliste angezeigt, falls sie existiert.
24
25.3.2015
Krankenversicherung: Name
Diese Ansicht dient dem Erstellen, Bearbeiten und Löschen von Fahrern mit all
seinen Attributen. Unter Kranken- und Rentenversicherung wird der jeweilige
Träger sowie die für beide relevante Sozialversicherungsnummer gespeichert.
25
25.3.2015
6.11 Fahrerperformance
Fahrerperformance
Status: Fahrerstatus
Typ: Nachrichtentyp auswählen anzeigen
Probleme
Nachrichten
durchschn. Auftragsdauer
Nachricht 1
Nachricht 2
Nachricht 3
Zeitraum
Diese Ansicht erscheint nach Auswahl eines Fahrers und Aufrufen des Menü-
punkts Controlling. Es arbeitet auf den Klassen des Datenmodells Controlling
und zeigt Probleme und Leistung des Fahrers. Die zu Grunde gelegten Aus-
gangsdaten stammen aus dem ausgewählten Zeitraum. Die durchschnittliche
Dauer wird in einem Liniendiagramm dargestellt, auf dem jeder Arbeitstag ein
Messpunkt ist und mit separater Skalierung und y-Achsenbeschriftung auch
Gewicht und Volumen als eigene Linien aufgetragen sind (dies sind in der Skiz-
ze nicht enthalten), um Korrelationen zu erkennen. Falls vorhanden können
zusätzlich noch die Wegstreckenwerte angezeigt werden oder sogar der Quotient
aus Dauer durch Wegstrecke. Darüber hinaus werden anhand der Statushisto-
rie (ein Statusobjekt wird genau dann berücksichtigt, wenn an dem Tag, an dem
es erstellt wurde, der zugehörige Auftrag in der Auftragsliste des Fahrers ist)
die Häufigkeit von Problemen analysiert, deren Ursachen in der darunterlie-
genden Liste ausgeklappt werden können. Schließlich besteht noch die Möglich-
keit, alle Nachrichten eines bestimmten Typs (z. B. Feedback) in diesem Zeit-
raum anzuzeigen, die diesen Fahrer betreffen. Die Zuordnung erfolgt wie bei
Status, wobei für Feedback der Status "zugestellt" bzw. "an Dritten" herangezo-
gen wird, weil selbiges auch erst zu einem späteren Zeitpunkt eingegangen sein
kann, zu dem der Auftrag in keiner Auftragsliste mehr war.
26
25.3.2015
6.12 Accountverwaltung
Zur Erstellung und Verwaltung von Accounts dient ein Webinterface, das von
ITDevelopments bereitgestellt wird. Hierüber können Mitarbeiter und Fahrer
auch ihr Passwort ändern.
7 TESTFÄLLE
Diese sollen noch vorhandene Fehler in der Software aufdecken und darüber
hinaus die Einhaltung der Qualitätsbestimmungen des Lastenhefts (Abschnitt
6) überprüfen.
/T40/ Auftragserstellung
Zuweisen eines Kunden mit dessen Adresse, Hinzufügen eines Postens, Hinzu-
fügen eines Postens auf Basis eines neu erstellten Artikels. (Test von F40)
/T45/ Kundendatenänderung
Ändern der Kontaktdaten, des Nachnamens und der Adresse eines Kunden vor
Freigabe eines Auftrags. (Test von F45)
/T70/ Fahrerlebenszyklus
Einfügen eines Bewerbers, Freischalten eines Fahrers, Erkrankung eines Fah-
rers, Genesung eines Fahrers, Ausscheiden eines Fahrers, Löschen eines Fah-
rers. (Test von F70, F75)
27
25.3.2015
/T80/ Controlling
Überprüfung der Korrektheit der Datenauswertung in der Ansicht Controlling
für verschiedene Fahrer und Zeiträume. (Test von F80)
/T90/ Accountverwaltung
Hinzufügen eines Accounts für interne Mitarbeiter, Hinzufügen eines Accounts
für Fahrer, Ändern des Passworts, Löschen eines Accounts, Überprüfung der
mit dem Account verknüpften Sicht
7.2 Qualitätskriterien
Hierzu wird bei der Verwendung der Software nebenbei die Zeit gemessen, die
bis zur Aktualisierung der Ansicht vergeht. Dies geschieht jeweils getrennt für
Anfragen, die typischerweise vom Fahrer initiiert über das Internet gehen, und
solche im lokalen Netzwerk. Die daraus berechneten Mittelwerte müssen dann
den Anforderungen entsprechen (Abschnitt 2.3 im Lastenheft). Zur Sicherstel-
lung der Sicherheitsanforderungen (Abschnitt 2.4 im Lastenheft) werden brute-
force Angriffe auf den Testserver ausgeführt und der Netzwerkverkehr analy-
siert. Hieraus werden dann auch Anforderung an die Passwörter abgeleitet. Die
Qualitätsbestimmungen in Abschnitt 6 des Lastenhefts sollen dadurch geprüft
werden, dass nicht an der Entwicklung beteiligte Personen die Software im
Testbetrieb benutzen und auf missverständliche Beschriftungen sowie kontrain-
tuitives Verhalten der Benutzeroberfläche hinweisen. Sicherheit wird durch die
von ITDevelopments zur Verfügung gestellten Komponenten für Authentifizie-
rung und Verschlüsselung sichergestellt. Verfügbarkeit wird durch das lokale
Speichern einmal heruntergeladener Daten sowie das Halten von Updates an
den Server in einer Warteschlange, bis die Internetverbindung wiederherge-
stellt ist, erzielt.
28
25.3.2015
8 PROJEKTPLAN
29
25.3.2015
9 AUSLIEFERUNG
Die Auslieferung umfasst die Installation der Software auf allen betroffenen
Rechnern (Betriebssystem: Windows 7, ggf. muss noch eine Java-Umgebung
installiert werden) und es muss sichergestellt werden, dass von allen Rechnern
aus der Server erreichbar ist. Dies geschieht in enger Zusammenarbeit mit der
EDV-Abteilung des Unternehmens.
9.1 Datenmigration
Bisher sind die Daten zu den Fahrern in Excel-Tabellen gespeichert, welche in
etwa folgendes Aussehen haben:
Um diese in die Datenbank einzupflegen, soll ein Tool entwickelt werden, das
die als CSV-Datei gespeicherte Excel-Tabelle einliest und die einzelnen Daten-
sätze an die Datenbank schickt.
10 GLOSSAR
Primärschlüssel Menge von Attributen, die einen Datensatz in einer
Tabelle einer Datenbank eindeutig identifizieren
FCFS First-Come-First-Serve, Verfahren, bei dem Objekte in
der Reihenfolge ihres Eingangs (wer sich als Erster in
die Warteschlange einreiht, wird als Erster bedient)
abgearbeitet werden
Fahrer-ID 6-stellige Zahl, die jeden Fahrer des Unternehmens
eindeutig identifiziert
Auftragslistenstatistik Objekt, welches das jeweilige arithmetische Mittel der
Gesamtgewichte, Gesamtvolumen, Wegstrecke und
Auslieferungsdauer von Aufträgen speichert, welche an
einem Tag von einem bestimmten Fahrer erledigt wur-
den
Updates Objekte, die der Manipulation vorhandener Daten-
strukturen dienen
REST Representational State Transfer, Programmierpara-
digma zur Maschine-Maschine-Kommunikation, bei
dem mittels Webadressen Seiteninhalte angefordert
werden
XML Extensible Markup Language, maschinenlesbare Spra-
che für hierarchisch strukturierte Daten im Textformat
SSL Secure Socket Layer, Verschlüsselungsprotokoll der
Transportschicht zum sicheren Datenaustausch im In-
ternet
http Hyper Text Transfer Protocol, zustandsloses Protokoll
30
25.3.2015
31