Sie sind auf Seite 1von 7

SEP – Sommersemester 2015

Kurseinheiten Manager

Lastenheft

Christian Bachmaier, Andreas Eisenkolb,


Stefan Ganser, Andreas Stahlbauer

1 Motivation
Auf dem herkömmlichen Weg ist die Kommunikation zur Ankündigung/Absprache
von sich häufig ändernden Zeiten und Orten mit mehreren Teilnehmern oftmals auf-
wändig und langwierig. E-Mail oder Telefon eignen sich für größere Gruppen nur be-
dingt, da der Abstimmungsaufwand mit der Zahl der Teilnehmer deutlich steigt. Eine
erhebliche Erleichterung stellen Online-Portale dar, welche die Funktionalität zur Ab-
sprache des Termins noch mit weiteren Funktionen verbinden, etwa der Vereinbarung
eines Treffpunkts oder automatische Benachrichtigungen bei kurzfristigen Änderun-
gen. Kurseinheiten finden nicht notwendigerweise strikt regelmäßig statt, sondern ggf.
nur dann, wenn sich Personen in genügender Anzahl dazu zusammengefunden haben.
Auch eine spontane Verabredung zu einer Kurseinheit soll möglich sein. Der Ort ei-
ner Kurseinheit kann ebenso variieren. In diesem Dokument wird als durchgängiges
Beispiel ein Sportverein verwendet, der Kurseinheiten zu unterschiedlichen sportlichen
Schwerpunkten/Kursen anbietet. Dies bedeutet jedoch keine Beschränkung auf diesen
Anwendungsfall.
Kurseinheiten-Manager Lastenheft

2 Aufgabenstellung
Ziel des Software-Engineering Praktikums im Sommersemester 2015 ist es, eine Web-
Anwendung zur einfachen Absprache von gemeinsamen Kurseinheiten, Sitzungen, o.ä.
(nachfolgend nur noch als Kurseinheiten bezeichnet) zu entwickeln. Trainern, Tutoren,
Dozenten, o.ä. (nachfolgend nur noch als Trainer bezeichnet) soll darin die Möglichkeit
gegeben werden, Kurse bzw. Kurseinheiten anzulegen und auszuwerten. Registrierte
Benutzer können sich zu Kurseinheiten an- oder abmelden. Nicht registrierten, oder
(aktuell) nicht am System angemeldeten Benutzern soll es möglich sein sich im System
zu bewegen und für sie interessante Kurse zu finden.
Die zu erstellende Web-Anwendung soll intuitiv zu bedienen sein, geringe Anwen-
dungshürden aufweisen, zugleich aber fortgeschrittenen Benutzern eine Vielzahl von
erweiterten Funktionen mit einfacher Bedienung bieten.
Ein Beispiel für ein ähnliches, und bereits existierendes, System ist box planner 1 ;
dieses System geht jedoch über die hier geforderte Funktionalität hinaus.
Die Anwendung muss mit Java 8 und JavaServer Faces (JSF) entwickelt werden.
Auf Benutzerseite kann ein moderner Web-Browser vorausgesetzt werden.

3 Produkteinsatz
Zur Zielgruppe der zu entwickelnden Anwendung gehören (kommerzielle) Firmen, Ver-
eine, lose Gruppierungen, und organisierte Teams. Die Anwendung muss über das
Internet erreichbar sein.

4 Produktfunktionen
4.1 Begriffsdefinitionen
Ein Kurs findet regelmäßig, einmalig oder unregelmäßig statt. Er besteht in der Regel
aus mehreren Kurseinheiten. Eine Kurseinheit ist ein konkret stattfindender Termin
eines Kurses. Ein regelmäßiger Kurs besteht i.d.R. aus mehreren Kurseinheiten, die
z.B. wöchentlich stattfinden; ein Kurs kann jedoch auch nur eine Kurseinheit umfassen.
Es gibt mehrere Gruppen von Benutzern (= Akteuren) des Systems: Administra-
toren, anonyme Nutzer, angemeldete Benutzer (die über ein eigenes Benutzerkonto
verfügen). Administratoren sind für die Verwaltung und Konfiguration des gesamten
Systems verantwortlich. Trainer können Kurse und die zugehörigen Kurseinheiten an-
legen. Optional sollen Trainer zudem Personen, die nicht im System registriert sind, zu
Kurseinheiten eintragen können. Diese Personen werden als Invited Guests bezeichnet.
Die Verwaltung von Kursen und Kurseinheiten ist für deren Besitzer/Ersteller, andere
zugeordnete Trainer und Administratoren bequem über ihr Nutzerkonto durchführbar.
Das System soll sowohl zur Organisation von Freizeitaktivitäten, als auch zur Syn-
chronisierung professioneller Treffen geeignet sein. Der freie Zugang über das Internet
soll für ein produktiv eingesetztes System möglich sein.
1 http://www.box-planner.com

2
Kurseinheiten-Manager Lastenheft

4.2 Minimale Anforderungen


Im Folgenden ist mit Erstellen gleichzeitig auch nachträgliches Editieren und Löschen
gemeint.

Customizing Administratoren sollen das System an den Verein anpassen können, z.B.
Look & Feel, Registrierungsmodalitäten von Benutzern, Kontaktmöglichkeiten,
Impressum, usw..
Kurse Ein Administrator kann einen Kurs erstellen, worauf die Web-Anwendung eine
ID zur Identifikation des Kurses generiert. Beim Erstellen/Editieren des Kur-
ses kann der Administrator mehrere Trainer ernennen. Es gibt eine textuel-
le Beschreibung des Kurses. Kurse sollen über eindeutige URLs identifizier-
bar/bookmarkbar sein. Die Anmeldung zu Kursen ist nur für registrierte Benut-
zer möglich. Ein Kurs hat einen Startzeitpunkt und einen Endzeitpunkt. Beide
Termine werden beim Erstellen des Kurses festgelegt. Innerhalb des festgelegten
Zeitraumes können Kurseinheiten stattfinden. Das System soll allen eine Suche
nach Kursen ermöglichen.
Kurseinheiten Die einem Kurs zugeordneten Trainer können dafür Kurseinheiten er-
stellen. Diese können regelmäßig (z.B. jede Woche) oder unregelmäßig (z.B. ein-
malig) sein. Sobald ein Nutzer zu einem Kurs angemeldet ist, kann er sich darin
zu Kurseinheiten registrieren. Kurseinheiten können Geld kosten oder gratis sein.
Invited Guests (optional) können auch ohne Bezahlung der Kurseinheit an die-
ser teilnehmen. Auch bei regelmäßigen Kurseinheiten können sich Zeit und Ort
kurzfristig ändern. Trainer können optional eine Mindestteilnehmerzahl für die
Kurseinheiten festlegen. Falls dieser Schwellwert unterschritten wird, kann der
Trainer festlegen ob die Kurseinheit stattfindet.
Teilnahme Ein Benutzer kann bei Kurseinheiten teilnehmen. Bei regelmäßigen Kurs-
einheiten kann man sich entweder (automatisch) zu allen anmelden und einzelne
Termine durch Nichtteilnahme markieren, oder man wählt einzelne Kurseinhei-
ten zur Teilnahme aus. Teilnahmen können kurzfristig geändert bzw. abgesagt
werden, wodurch einzelne Kurseinheiten entfallen können. Die Entscheidung dar-
über trifft der jeweilige Trainer. Der Trainer kann Teilnahmen editieren, und auch
selbst Teilnehmer eintragen (z.B. auch Invited Guests).
Benachrichtigung Zu einem Kurs angemeldete Nutzer können sich als Empfänger von
E-Mail-Benachrichten, wie z.B. Informationen über neue Kurseinheiten, Termin-
änderungen, etc., zu diesem Kurs eintragen. Derjenige, der Änderungen veran-
lasst, kann jeweils dabei entscheiden ob alle Kursteilnehmer oder nur die für
die Teilnahme an einer Kurseinheit Angemeldeten oder keiner eine Nachricht
über die Änderung bekommt. Trainer/Administratoren können auch initiativ ei-
ne Nachricht an diese Gruppen senden. Als optionale Funktion wäre denkbar,
dass sich nicht zu einem Kurs angemeldete Nutzer als Interessenten für Benach-
richtigungen über einen Kurs registrieren. Diese würden eine weitere Gruppe zu
benachrichtigender Nutzer darstellen.

3
Kurseinheiten-Manager Lastenheft

Registrierung Ein anonymer Benutzer kann sich ein Benutzerkonto anlegen. Die Veri-
fikation eines Benutzers kann entweder durch E-Mailverifikation und/oder durch
die Bestätigung des Betreibers oder Trainers (einstellbar) erfolgen.

Auswertung Ein Administrator kann sich Statistiken ansehen, wie viel Geld pro Zeit-
raum, pro Kurs, pro Trainer, usw. eingenommen wurde.
Benutzerverwaltung Im System gibt es verschiedene Benutzerrollen: Betreiber (Ad-
ministrator), Trainer, registrierte Nutzer, anonyme Nutzer und Invited Guests.
Der Administrator kann alle Benutzer und die damit verbundenen Rollen ver-
walten: Anlegen neuer Benutzer, Bearbeiten/Löschen existierender Benutzer, Zu-
ordnen/Entziehen von Rollen. Beispielsweise werden Trainer durch einen Admi-
nistrator ernannt. Eine Funktion zum Suchen nach bestimmten Benutzern er-
leichtert einem Administrator die Verwaltung.
Anmeldung Ein Benutzer kann sich in ein Benutzerkonto einloggen und ist damit
angemeldet. Hierfür ist eine Authentifizierung notwendig.
Kontoverwaltung Ein angemeldeter Benutzer kann sein Benutzerkonto editieren. Es
soll möglich sein ein Portraitbild in seinem Profil zu speichern, das z.B. bei
Teilnahme an einer Kurseinheit neben dem Namen als Thumbnail erscheint. Der
aktuelle Kontostand muss einsehbar sein.

Bezahlung Für einen registrierten Benutzer wird in seinem Profil ein Guthabenkonto
geführt, von dem automatisch Bezahlungen für kostenpflichtige Kurseinheiten
abgebucht werden. Die Abbuchung erfolgt zum Zeitpunkt der Anmeldung zu
einer Kurseinheit. Bei der Abmeldung von einer Kurseinheit erfolgt eine Rück-
buchung auf das Guthabenkonto des Benutzers. Alternativ können Buchungen zu
einem späteren Zeitpunkt durch eine regelmäßig aktiv werdende Buchungsrouti-
ne durchgeführt werden. Dieses Konto kann online per Kreditkarte oder offline
per Überweisung oder Barzahlung an den Verein aufgeladen werden. Bei letzte-
ren beiden muss der Betrag von einem Administrator oder Trainer (optional) als
erhalten eingetragen/bestätigt werden, bevor er im Konto zur Verfügung steht.
Bei Kreditkartenzahlung steht der Betrag sofort zur Verwendung zur Verfügung,
da hierbei direkt und sofort bei Bezahlung mit der bereitgestellten Infosunbank
elektronisch über einen Web-Service abgerechnet wird. Wenn das auf dem Konto
zur Verfügung stehende Guthaben (bis zu einem vom Betreiber einzustellenden
Überziehungskredit) nicht ausreicht, kann man an Kurseinheiten nicht mehr teil-
nehmen.

Abmeldung Ein angemeldeter Benutzer kann sich abmelden.


Online-Hilfe und FAQ Der Benutzer muss zu jedem Zeitpunkt schnellen Zugriff auf
die für die aktuelle Seite relevante Online-Hilfe und die evtl. vorhandene FAQ
haben.

4
Kurseinheiten-Manager Lastenheft

5 Nicht-Funktionale Anforderungen
Folgend die Produktleistungen und Qualitätsanforderungen.

5.1 Usability
1. Einfache und intuitive Bedienbarkeit des Systems.

2. Die Benutzeroberfläche soll sich an allgemein geläufigen Bedienkonzepten und


den damit verbunden Funktionen orientieren; alle Tabellen sollen z.B. nach den
dargestellten Spalten sortierbar sein; Tabellen, die eine gewisse Größe überschrei-
ten, sollen, um kurze Seitenladezeiten zu ermöglichen, auf mehrere Seiten aufge-
teilt werden (Pagination).

3. Häufig wiederkehrende Aufgaben sind durch das System möglichst benutzer-


freundlich zu unterstützen; häufig genutzte Funktionen sind möglichst einfach
zugänglich zu machen.
4. Die Seiten der Applikation sind übersichtlich und einfach verständlich zu gestal-
ten.
5. Daten sollen nicht nur leicht auffindbar und gut lesbar sein, sondern auch leicht
einzugeben.
6. Bei Fehleingaben in ein HTML-Formular und der darauf folgenden Korrektur
sollen die zuvor eingetragenen Felder nicht erneut einzugeben sein, sondern schon
vorbesetzt sein. Außerdem sollte die Überprüfung der Eingaben nicht nach der
ersten fehlerhaften Eingabe abbrechen, sondern alle Eingaben überprüfen und
eine akkumulierte Fehlermeldung an den Benutzer zurückgeben.
7. Das System soll mit steigender Last skalieren.

5.2 Datensicherheit
1. Alle im System erfassten Daten sind persistent in einer Datenbank abzulegen; die
Konsistenz der Daten ist sicherzustellen (Mehrbenutzerbetrieb!). Speziell, wenn
Änderungen über mehrere Datenbanktabellen hinweg vorgenommen werden, sind
Transaktionen zu nutzen.

2. Für die persistente Speicherung der Daten soll eine Datenbank (PostgreSQL)
verwendet werden, die auf den Infosun-Rechnern zur Verfügung gestellt wird. Als
Referenzplattform für die Implementierung dienen die Rechner im CIP-Pool.
3. Beim Löschen von Daten sind die Abhängigkeiten zwischen Daten einzelner Ta-
bellen zu berücksichtigen; hat das Löschen eines Datensatzes das Löschen ande-
rer Datensätze zur Folge, muss der Benutzer vorher deutlich darauf hingewiesen
werden!

5
Kurseinheiten-Manager Lastenheft

5.3 Datenschutz
1. Es muss sichergestellt werden, dass durch das System zu keinem Zeitpunkt sen-
sible Daten für unberechtigte Dritte zugänglich sind.

2. Es sollen möglichst wenige technische Informationen über das System nach außen
gegeben werden.
3. Alle personenbezogenen Daten, wie z. B. Login-Daten, sind sensibel und dürfen
daher nur per SSL-Verbindung übertragen werden.

4. Passwörter dürfen nicht im Klartext gespeichert werden.


5. Die Nutzerdaten sind so zu speichern, dass kein unautorisierter Zugriff durch
Dritte oder durch andere Nutzer im System stattfinden kann.
6. Das System darf nur im Rahmen der oben genannten oder vorgesehenen Funk-
tionalitäten verändert werden.
7. Änderungen durch Manipulationen mit bekannten Angriffsmethoden wie SQL-
Injection oder Cross-Site-Scripting müssen ausgeschlossen werden. Es müssen
außerdem Maßnahmen ergriffen werden, um die Sitzungen der einzelnen Nutzer
zu schützen (Session-Hijacking).

5.4 Internationalisierbarkeit
1. Für die Texte auf der Website ist die Zeichenkodierung UTF-8 zu wählen.
2. Die Sprache des Systems kann Deutsch oder Englisch (bevorzugt) sein; eine mehr-
sprachige Implementierung ist optional.

5.5 Weiterentwickelbarkeit
Das zu erstellende System soll flexibel gegenüber zukünftigen Erweiterungen sein. Eine
einfache und kostengünstige Weiterentwickelbarkeit des Systems ist sicherzustellen.

5.6 Installation
Es soll eine komfortable Installation für Systembetreiber bereitgestellt werden. Die In-
stallation sollte einfach und schnell sein und automatisch das entsprechende Datenbank-
Setup vornehmen.

6 Ergänzungen
Die Benutzung des Systems sollte mit allen gängigen Web-Browsern möglich sein. Wir
raten allerdings davon ab, für jeden Browsertyp unterschiedlichen HTML-Code zu ge-
nerieren. Der HTML-Code soll logisches Markup darstellen und nicht dazu missbraucht

6
Kurseinheiten-Manager Lastenheft

werden, eine bestimmte graphische Darstellung zu erzwingen. Deswegen dürfen Fea-


tures wie Frames nicht und explizites Javascript nur nach Absprache eingesetzt werden.
Der HTML-Code muss HTML-konform sein und z. B. durch http://validator.w3.org/
validierbar sein. Die Verwendung von Cascading Stylesheets (CSS) wird dringend an-
geraten.
Die Sessionverwaltung darf die Verwendung von Cookies nicht erzwingen.
Das System muss ein Log über alle Fehler führen, um das Debugging und den Betrieb
der Anwendung zu vereinfachen. Achten Sie darauf, dass die Fehlerbeschreibungen
detailliert genug sind, um auf einen Fehler bzw. dessen Ursache schließen zu können.

7 Leistungsnachweis
Mit der funktionalen Umsetzung o.g. Musskriterien kann die Note 1,0 erreicht werden.
Wunschkriterien sind (wie der Name sagt) wünschenswert, aber deren Umsetzung nicht
zwingend notwendig für das Erreichen der vollen Punktzahl.

Das könnte Ihnen auch gefallen