Sie sind auf Seite 1von 32

P FLICHTENHEFT

App zur Verwaltung von Fahrern und Fahraufträgen

fiktives Szenario für die Vorlesung Software Engineering I des Lehr-


stuhls Software Engineering an der Universität Bayreuth

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

T10/ Abrufen eines Auftrags .......................................................................... 27


T20/ Auftragslebenszyklus regulär ............................................................... 27
T25/ Auftragslebenszyklus mit Ausnahmen ................................................. 27
T40/ Auftragserstellung ................................................................................. 27
T45/ Kundendatenänderung .......................................................................... 27
T70/ Fahrerlebenszyklus ............................................................................... 27
T80/ Controlling ............................................................................................. 28
T90/ Accountverwaltung ................................................................................ 28
6.2 Qualitätsanforderungen ......................................................................... 28
7 Projektplan ..................................................................................................... 29
8 Auslieferung ................................................................................................... 30
8.1 Datenmigration ....................................................................................... 30
9 Glossar............................................................................................................ 30
Bei allen in diesem Dokument verwendeten Personenbezeichnung (Fahrer, Mit-
arbeiter, etc.) sind natürlich auch Frauen mit eingeschlossen sowie bei Personal-
und Possessivpronomen stets auch die weibliche Form gemeint.

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:

Hier soll nur die Architektur des Clients aufgeführt werden.

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

Die Benutzerschnittstelle setzt zusammen mit dem Datenmodell das Modell-


View-Controller-Entwurfsmuster um, wofür in der View die Klassen zur Model-
lierung der Fenster liegen und im Controller die zur Behandlung von Benutzer-
eingaben, Manipulation des Datenmodells und der View sowie Server-Anfragen
in Auftrag gegeben und deren Antworten verarbeitet werden. Neben dem Schi-
cken von Serveranfragen und Empfangen der Antworten übernimmt das Paket
Serverkommunikation auch die Verwaltung der Update-Warteschlange. Das
Paket Authentifizierung enthält Klassen zur Authentifizierung und Verschlüs-
selung der Übertragung und wird von ITDevelopments zur Verfügung gestellt.
Util stellt übergreifende Hilfsklassen zur Konvertierung von Objekten in XML,
Parsen von Datumsangaben und Weiteres bereit. In folgenden Abschnitten wird
auf die Funktionalität der einzelnen Pakete genauer eingegangen.

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

<<enumeration>> Person <<enumeration>> <<enumeration>> <<enumeration>>


Geschlecht Fahrerstatus Eigenschaft Auftragsart
id : int
MAENNLICH vorname : String BEWORBEN ZERBRECHLICH LIEFERAUFTRAG
WEIBLICH nachname : String AKTIV ENTZUENDLICH ABHOLAUFTRAG
geschlecht : Geschlecht IN_URLAUB GIFTIG SONSTIGES
telefonnummer : String KRANK WASSEREMPFINDLICH
mobilnummer : String ARBEITSUNFAEHIG
faxnummer : String IN_RENTE
email : String AUSGESCHIEDEN <<enumeration>>
Statusart
Adresse ERFASST
FREIGESCHALTEN
id : int AUSLIEFERUNGSBEGINN
0..* 0..1 land : String VERSCHOBEN
Fahrer Kunde wohnt in u
kunden ort : String NICHT_ZUSTELLBAR
wohnort gebaeude : String VERZOEGERT
geburtsdatum : Date plz : int ZUGESTELLT
sozialversicherungsnummer : String 0..1 dritter 0..1 kunde strasse : String AN_DRITTEN
steueridentifikationsnummer : String hausnummer : String ABGESCHLOSSEN
status : Fahrerstatus
krankenversicherung : String 0..1 zielort
rentenversicherung : String

tag : Date[0..*] an Dritten p hat Kunden p <<enumeration>>


Nachrichtenart
hat Zielort {
KUNDENHINWEIS
FEEDBACK
hat zugeteilt q HINWEIS_AN_ZENTRALE
empfangen 0..* 0..* auftraege auftraege HINWEIS_AN_FAHRER
auftragslisten 0..*

auftragslisten auftraege Auftrag posten


Auftragsliste
umfasst u beinhaltet u Posten
0..* 0..* 0..*
id : int id : int
art : Auftragsart id : int
erstelldatum : Date quantitaet : double
frist : Date
auslieferungshinweis : String 0..* posten
/gesamtgewicht : double
bezieht sich auf q

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

bezieht sich auf p

0..1 fahrerperformance

Fahrerperformance fahrerperformance
statustypen
umfasst u Statustyp
1 0..9
art : Statusart
fahrerperformance ursachen : String[0..*]
1
haeufigkeit : int
fahrerperformance 0..1

wird beurteilt beinhaltet Statistiken y


anhand von q
auftragslistenstatistiken

0..* 0..* Auftragslistenstatistik


nachrichten

Nachricht auslieferungsdauer : Date


(von Speicherung) strecke : double
gesamtgewicht : double
gesamtvolumen : double
tag : Date

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

hand des Aufzählungstyps Statusart, wobei nur diejenigen berücksichtigt wer-


den, die zum ausgewählten Fahrer gehören und im spezifizierten Zeitraum ent-
standen sind. Darüber hinaus liefern die Objekte der Klasse Auftragslistenstatis-
tik, welche die Durchschnittswerte der erledigten Aufträge eines Tages reprä-
sentieren, Rückschlüsse über die Entwicklung des Fahrers. Für eine Auftrag
werden hierfür die Auslieferungsdauer als Differenz der Zeitstempel der Sta-
tusupdates "Zustellungsbeginn" und "zugestellt" bzw. "an Dritte", das Gesamt-
gewicht als Produkt aus Postenquantität und Artikelgewicht summiert über alle
Posten, das Gesamtvolumen als Produkt aus Postenquantität und Artikelvolu-
men summiert über alle Posten sowie der optionale Wert Wegstrecke als grobe
Distanz zwischen den Zieladressen zweier aufeinanderfolgender Aufträge (Der
tägliche Startpunkt ist die Zentrale) berechnet. Schließlich werden noch alle mit
einem Fahrer in Verbindung gebrachten Nachrichten festgehalten, um das
Feedback der Kunden in eine Beurteilung mit einfließen lassen zu können.

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

InsertNachricht InsertStatus UpdateAuftrag

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

SucheFahrerperformance SucheFahrer SucheAuftrag

fahrerId : int vorname : String status : Statusart


start : Date nachname : String fahrer : int
ende : Date status : Fahrerstatus fristStart : Date
nachrichtenart : Nachrichtenart fristEnde : Date
erstellStart : Date
erstellEnde : Date
plz : int
SucheKunde
SucheStatus
vorname : String SucheNachricht
nachname : String SucheArtikel
auftrag : int plz : int auftrag : int
zeitstempel : Date strasse : String bezeichnung : String
zeitstempel : Date

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

krank wird arbeitsunfähig arbeitsunfähig

erkrankt genest geht in Rente

beworben darf fahren aktiv geht in Rente in Rente

nimmt Urlaub kommt aus Urlaub scheidet aus

in Urlaub scheidet aus ausgeschieden

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

nicht zustellbar an Dritte


zugestellt

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.

 Transportprotokolle: http und https


 Anfrageformat: REST (mit Level 2 nach dem REST-Reifegradmodell und
Verwendung von GET, PUT, POST und DELETE)
 Antwortformat: XML
 Authentifizierung: HttpBasicAuth mit bekannten Kombinationen aus
Benutzername und Passwort, welche am Server registriert wurden. Die
im Paket Netzwerkkommunikation liegende Authentifizierungskomponente
wird von ITDevelopments bereitgestellt.
 Verschlüsselung bei https-Verbindung über ein von ITDevelopments er-
zeugtes SSL-Zertifikat
Unter Benutzername ist in diesem Zusammenhang die Personalnummer, wel-
che auch zur eindeutigen Identifizierung der Fahrerobjekte dient, zu verstehen.
Datumsangaben werden im ISO-Standard 8601 unter Verwendung eines Zeit-
offsets übertragen.

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(…)

Statusupdates bei Abarbeitung eines Auftrags mit Übergabe an den Kunden


ohne besondere Vorkommnisse.

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

5.4 GET - Anfragen


Sie dienen dem Holen von Objekten vom Server. Es werden nur explizit angege-
bene referenzierte Objekte mitgegeben. Generell beginnt jede angeforderte URL
wie folgt:

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

5.5 POST - Anfragen


Sie dienen dem Erstellen von Objekten auf Serverseite sowie der Ausführung
von Suchanfragen. Beim Erstellen werden die Informationen in Objekten des
Pakets Updates gespeichert und hochgeladen (im Folgenden in der Spalte Klasse
spezifiziert), welche auch zum Aktualisieren eines Datensatzes dienen. Rückga-
bewert ist dabei stets die serverseitig generierte ID oder eine Fehlermeldung.
Ein Fahrer wird mittels PUT-Anfrage erstellt, da dessen ID bereits bekannt ist.

Ressource Klasse Beschreibung


auftrag UpdateAuftrag erstellt einen auftrag
kunde UpdateKunde erstellt einen kunden mit der angegebenen
adresse als wohnort; sollten vorname, nachname
und adresse mit einem bereits vorhandenen
übereinstimmen, so wird dieser aktualisiert
artikel InsertArtikel erstellt einen artikel; sollte bereits ein Artikel
mit denselben Attributen bestehen, so wird
dessen id zurückgegeben.
posten InsertPosten erstellt einen posten mit Referenz auf den an-
gegebenen artikel.
adresse InsertAdresse erstellt eine adresse; sollte sie bereits vorhan-
den sein, so wird deren id zurückgegeben
nachricht InsertNachricht erstellt eine nachricht, die von dem angegebe-
nen auftrag referenziert wird.
status InsertStatus erstellt einen status und fügt ihn der statushis-
torie des angegebenen auftrags hinzu.
auftragsliste AddAuftraege fügt die angegebenen Aufträge der durch den

13
25.3.2015

fahrer und das datum eindeutig bestimmten


auftragsliste hinzu und gibt deren id zurück;
sie wird bei Bedarf erstellt

Zur Ausführung von Suchen werden ebenfalls POST-Anfragen verwendet und


die Suchkriterien per Objekt übergeben. Leere Parameter bewirken, dass alle
Objekte dieses Typs geholt werden bzw. nur die übrigen Parameter berücksich-
tigt werden, sofern nicht anders angegeben. Zurückgegeben wird eine Liste mit
Objekten der entsprechenden Klasse, die auch leer sein kann. Das Ausführen
der Suche ist dabei seiteneffektfrei, führt also zu keiner Manipulation der Da-
tensätze in der Datenbank. Ausgeführt auf den gleichen Datensätzen wird stets
das gleiche Ergebnis zurückgegeben.

Ressource Klasse Beschreibung


suche SucheAuftra liefert gleichen Ergebnistyp wie Auftragsliste,
/auftrag g wobei Aufträge mit folgenden Eigenschaften ent-
halten sind: Der aktuellste Status hat die ange-
gebene Statusart, er kommt in einer der Auftrags-
listen des Fahrers mit der ID fahrer vor (0 : er
kommt in einer beliebigen auftragsliste vor, -1 : er
kommt in keiner vor), die frist liegt zwischen
fristStart und fristEnde, das erstelldatum zwischen
erstellStart und erstellEnde sowie der zielort die
angegebene plz hat.
suche SucheFahrer gibt alle fahrer mit dem angegebenen vornamen,
/fahrer nachnamen und Fahrerstatus zurück
suche SucheKunde gibt alle kunden und ihren wohnort mit dem ange-
/kunde gebenen vornamen und nachnamen, die eine wohn-
ort mit der angegebenen plz und strasse haben
zurück
suche SucheArtikel gibt alle artikel, welche die angegebene bezeich-
/artikel nung enthalten, zurück
suche SucheFahrer gibt für einen fahrer mit der angegebenen id alle
/fahrerperfo performance zugehörigen Objekte aus dem Paket controlling
rmance zurück, für die gilt, dass die Nachrichten von der
angegebenen nachrichtenart sind, der tag von Auf-
tragslistenstatistik sowie der zeitsptempel von Sta-
tustyp zwischen start und ende liegt
suche SucheStatus liefert alle Statusobjekte zurück, die zum Auftrag
/status mit der angegebenen id gehören und deren zeit-
stempel nach dem angegebenen ist
suche SucheNachri wie suche/status, nur für Nachrichten
/nachricht cht

5.6 PUT - Anfragen


Sie dienen dem Aktualisieren von Objekten sowie zur Manipulation der Daten-
struktur. Zur Identifizierung des Objekts wird die jeweilige ID als Parameter in

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.

Ressource Klasse Beschreibung


kunde UpdateKunde ändert ggf. dessen Attribute und referenzier-
te Adresse
fahrer UpdateFahrer ändert ggf. dessen Attribute, wird bei Bedarf
erstellt
auftrag UpdateAuftrag ändert ggf. dessen Attribute und Referenzen
auftragsliste RemoveAuftrag entfernt den angegebenen auftrag aus der
angegebenen auftragsliste (nur dieser!) ohne
ihn zu löschen; eine leere Liste wird im An-
schluss gelöscht

5.7 DELETE - Anfragen


Sie dienen zum endgültigen Löschen von Objekten und haben als URL-
Parameter lediglich die id des betroffenen Objekts. Gelöscht werden können nur
Objekte vom Typ fahrer, kunde, auftrag und posten (ihre Ressourcen im URL-Pfad
heißen dementsprechend). Mit dem fahrer werden auch all seine auftragslisten
gelöscht, ansonsten bleiben alle anderen Objekte unberührt mit der Ausnahme,
dass Referenzen auf gelöschte Objekte null werden.

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

Ressource enthält dabei alle nötigen Informationen, um unmittelbar eine Ser-


veranfrage zu generieren und die optionale Referenz auf Update, das ggf. der
Anfrage angehängte Objekt.

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

zustellen und an den Client zurückzugeben, welcher Nutzergruppe der Benutzer


angehört, und damit, was er ansehen und bearbeiten darf. Eine Übersicht über
alle Fenster und ihre Abhängigkeiten (sofern nicht selbsterklärend) ist in den
Dokumenten Layout-GUI-Fahrer.vsdx und Layout-GUI-Mitarbeiter.vsdx gege-
ben. Fenster mit Menüelementen ersetzen dabei für gewöhnlich den Inhalt des
vorangegangenen Fensters, wohingegen die ohne Menüelemente sich separat
öffnen. Wurde ein Auftrag oder Fahrer ausgewählt und wird zu einem anderen
Menüpunkt gewechselt, so soll die Auswahl berücksichtigt werden, sofern das
neue Fenster eine Suche beinhaltet. Als Menüpunkte hat ein Fahrer "Übersicht"
und "Logout" sowie nach Bedarf "aktualisieren" und "Details", wobei letzteres
zum zuletzt ausgewählten Auftrag führt. Interne Mitarbeiter haben "Aufträge",
"Fahrer", "Accountverwaltung" und "Logout" sowie "Controlling", falls sie in die-
ser Abteilung arbeiten und ein Fahrer ausgewählt wurde. Die einzelnen Fester
und ihr Verhalten werden im Folgenden genauer beschrieben.

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

Übersicht aktualisieren Logout Heutige Aufträge

Art Frist Ort Straße Gesamtgewicht

Text Datum Text Text Zahl

Text Datum Text Text Zahl

Text Datum Text Text Zahl

Text Datum Text Text Zahl

Text Datum Text Text Zahl

Text Datum Text Text Zahl

Text Datum Text Text Zahl

Text Datum Text Text Zahl

Details anzeigen

Auftragsauswahl

Aufträge Fahrer Accountverwaltung Logout Auftragsart erstellen

Suchkriterien

Auftragauswahl

Art Frist Ort Straße

Text Datum Text Text

Text Datum Text Text

Text Datum Text Text

Text Datum Text Text

Text Datum Text Text

Text Datum Text Text

Fahrer zuweisen bearbeiten

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

Übersicht aktualisieren Logout Adresse Typ: Auftragsart


Ort [Land] PLZ Ortsname Vorname
Zustellung beginnen Nachricht erstellen Straße Straße Hausnummer Gebäude Nachname

Quittung erstellen Status ändern Kontaktdaten und Frist

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

Quantität Bezeichnung 5 Nachricht 1


Volumen/Gewicht Verpackungsmaße
Eigenschaften
Nachricht 2

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

Aufträge Fahrer Accountverwaltung Logout löschen


Frist
März 15
Kunde Zusammenfassung der Kundendaten auswählen
M D M D F S S
Zielort Kurzbeschreibung Zielort 1
bearbeiten
2 3 4 5 6 7 8
Dritter Zusammenfassung der Personendaten 9 10 11 12 13 14 15
16 17 18 19 20 21 22
Posten hinzufügen Status ändern Nachricht erstellen 23 24 25 26 27 28 29
30 31

Posten

Quantität Bezeichnung 1 Nachrichten


Volumen/Gewicht Verpackungsmaße
Eigenschaften
Zustellungshinweise
Quantität Bezeichnung 2
Volumen/Gewicht Verpackungsmaße
Eigenschaften Nachricht 1

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

6.4 Status aktualisieren


Status ändern

Typ: Statustyp auswählen

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.

6.5 Nachricht erstellen


Nachricht erstellen

Typ: Nachrichtentyp auswählen

Vorlage: Vorlage auswählen

E-Mail schicken: Kunden E-Mail

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

6.6 Kunden und Adresse eingeben


Kunden eingeben

Vorschläge

Person 1

Person 2

Vorname: Text eingeben

Nachname: Text eingeben suchen

Geschlecht: männlich weiblich

E-Mail: Text eingeben

Festnetz: Text eingeben

Mobilnummer: Text eingeben

Fax: Text eingeben

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

Land: Land auswählen

Ort: Text eingeben

PLZ: Text eingeben

Straße: Text eingeben Hausnummer

Gebäude: Text 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

6.7 Quittung ausstellen


Quittung erstellen

Übersicht Details aktualisieren Logout

an Dritten

Vorname: Text eingeben erstellen

Nachname: Text eingeben suchen

Vorschläge

Person 1

Person 2

Person 3

Optionen

Lieferschein Artikel detailliert Informationszettel

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

6.8 Posten und Artikel eingeben


Posten eingeben

erstellen
Vorschläge

Artikel 1

Artikel 2

Artikel: Text eingeben suchen

Artikel-ID: Ganzzahl eingeben

Quantität: Kommazahl eingeben

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

Bezeichnung: Text eingeben

Verpackungseinheit: Text eingeben

Volumen: Kommazahl eingeben m³

Gewicht: Kommazahl eingeben kg

Eigenschaften

zerbrechlich entzündlich giftig

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

Aufträge Fahrer Controlling Accountverwaltung Logout erstellen

Suchkriterien

Fahrersuche

Personalnummer Vorname Nachname

ID Text Text

ID Text Text

ID Text Text

ID Text Text

ID Text Text

ID Text Text

bearbeiten zuweisen TT.MM.JJJJ

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

6.10 Fahrer bearbeiten


Fahrer bearbeiten

Aufträge Fahrer Controlling Accountverwaltung Logout löschen

Vorname: Text eingeben


Geburtsdatum
Nachname: Text eingeben
März 15
Geschlecht: männlich weiblich M D M D F S S
1
2 3 4 5 6 7 8
Personalnummer: Nummer eingeben
9 10 11 12 13 14 15
Festnetz: Telefonnummer eingeben 16 17 18 19 20 21 22
23 24 25 26 27 28 29
Mobilnummer: Telefonnummer eingeben 30 31

E-Mail: Text eingeben

Rentenversicherung: Name Nummer

Krankenversicherung: Name

Steueridentifikationsnummer: Nummer Account bearbeiten

Status: auswählen speichern

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

Aufträge Fahrer Controlling Accountverwaltung Logout Zeitraum

Name: Vorname Nachname von TT.MM.JJJJ bis TT.MM.JJJJ

Status: Fahrerstatus
Typ: Nachrichtentyp auswählen anzeigen

Probleme

verschoben nicht zustellbar verzögert an Dritte

Häufigkeit Häufigkeit Häufigkeit Häufigkeit

Ursachen Ursachen Ursachen Ursachen

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.

7.1 Funktionale Anforderungen


Mit folgenden Testfällen soll geprüft werden, ob die Aktualisierung auf dem
Server funktioniert und in den jeweiligen Ansichten auch die Objekte vollstän-
dig und korrekt, insbesondere im Hinblick auf die Suchen, angezeigt werden.

/T10/ Abrufen eines Auftrags


Holen einer Auftragsliste und eines Auftrags vom Server über das Internet.
(Test von F10)

/T20/ Auftragslebenszyklus regulär


Speichern und Freigeben eines Auftrags mit zwei Posten, Zuweisung an einen
Fahrer, Zustellung beginnen, Übergabe an Kunden ohne Generierung eines
PDF-Dokuments, Abschließen des Auftrags, Löschen des Auftrags. (Test von
F40, F60, F20)

/T25/ Auftragslebenszyklus mit Ausnahmen


getrennte Speicherung und Freigabe, Zuweisung an Fahrer im Bündel mit meh-
reren Aufträgen, Hinzufügen einer Kundennachricht, Verschieben eines Auf-
trags, Zuweisung an einen anderen Fahrer an einem anderen Tag, Ausliefe-
rungsbeginn, Verzögerung, Übergabe an Dritten mit Generierung aller Doku-
mente, Kundenfeedback. (Test von F40, F45, F50, F60, F25, F30)

/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:

Name Vorname Handyn. Geburtsd. FamilienstandSteuerid. Sozialvers. E-Mail weitere Angaben


Müller Michael 13429729 05.07.1962 verheiratet 62984193708 18050762M05 micheal.mueller@s4t.de in Urlaub bis 23.3
Haderlein Sabine 9434698 24.12.1984 ledig 84726570197 18241284H628 sabine.haderlein@s4t.de
Humpen Gerhard 14.03.1952 verwitwet 52045186372 18140352H014 in Rente
Bauer Sigmund 34648541 01.07.1974 ledig 74390262184 18010774B039 sigmund.bauer@s4t.de

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

zum Datenaustausch im Internet, wobei jede Nachricht


aus einem Header und dem Body besteht
HTTPBasicAuth In HTTP integriertes Authentifizierungsverfahren, bei
dem eine Base64-codierte Benutzername:Passwort
Kombination im Nachrichtenheader übertragen wird
ISO-Standard 8601 Norm zur Codierung numerischer Zeit- und Datumsan-
gaben
RFC2617 Spezifikation von HTTPBasicAuth
Base64 Verfahren zur Codierung von 8-Bit Binärdateien in
eine Folge alphanumerischer Zeichen
CSV Comma-Seperated Values, Dateiformat zur Speiche-
rung einfach strukturierter Daten

31

Das könnte Ihnen auch gefallen