07.03.2013 Aufrufe

Konzeption und Realisierung einer skalierbaren ...

Konzeption und Realisierung einer skalierbaren ...

Konzeption und Realisierung einer skalierbaren ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

FH-Düsseldorf - FB 3 Elektrotechnik - Informationstechnik<br />

<strong>Konzeption</strong> <strong>und</strong> <strong>Realisierung</strong> <strong>einer</strong> <strong>skalierbaren</strong>,<br />

datenbankgestützten Java EE Web-Applikation für freiwillige Feuerwehren<br />

vorgelegt von<br />

Lars Meisegeier<br />

16. Oktober 2006<br />

1. Prüfer: Prof. Dr. Wolfgang Lux, FH-Düsseldorf<br />

2. Prüfer: Dr. Tim Paehler, Cassini Consulting GmbH


Inhaltsverzeichnis<br />

1 EINLEITUNG..................................................................................................................... 1<br />

2 ANFORDERUNGSBESCHREIBUNG............................................................................... 2<br />

2.1 IST-Analyse............................................................................................................... 2<br />

2.1.1 Feuerwehr Leichlingen.......................................................................................2<br />

2.1.2 Mitgliederverwaltung.......................................................................................... 3<br />

2.1.3 Bestellprozess....................................................................................................3<br />

2.2 Software.....................................................................................................................4<br />

2.3 Projektteam................................................................................................................4<br />

2.4 Entwicklungsumgebung.............................................................................................4<br />

2.4.1 Integrated Development Environment (IDE)...................................................... 4<br />

2.4.2 Unified Modeling Language (UML).................................................................... 5<br />

2.4.3 Concurrent Versions System (CVS)...................................................................5<br />

2.5 Geschäftsprozess...................................................................................................... 5<br />

2.5.1 Bestellung.......................................................................................................... 6<br />

2.6 Vorstudie..................................................................................................................10<br />

2.6.1 Anwendung...................................................................................................... 10<br />

2.6.2 Benutzer...........................................................................................................11<br />

2.6.3 Funktionen....................................................................................................... 11<br />

2.6.3.1 Mitglieder.................................................................................................. 11<br />

2.6.3.2 Mitgliederverwaltung.................................................................................12<br />

2.6.3.3 Bestellung.................................................................................................13<br />

2.6.3.4 Bestellprozess.......................................................................................... 13<br />

2.6.4 Anforderungen................................................................................................. 15<br />

3 ANALYSE........................................................................................................................ 15<br />

3.1 Pflichtenheft............................................................................................................. 15<br />

3.1.1 Ziel................................................................................................................... 16<br />

3.1.2 Funktionen....................................................................................................... 16<br />

3.1.2.1 Mitgliederverwaltung.................................................................................16<br />

3.1.2.2 Materialverwaltung................................................................................... 20<br />

3.1.2.3 Bestellprozess.......................................................................................... 22<br />

3.1.3 Benutzeroberfläche.......................................................................................... 26<br />

4 ENTWURF.......................................................................................................................27<br />

4.1 Architektur................................................................................................................27<br />

4.2 Server...................................................................................................................... 27<br />

i


4.3 Persistenz................................................................................................................ 28<br />

4.4 Model-View-Controller (MVC)..................................................................................29<br />

4.5 Portable Document Format (PDF)........................................................................... 30<br />

4.6 E-Mail.......................................................................................................................31<br />

4.7 Logging.................................................................................................................... 31<br />

4.8 Übersicht..................................................................................................................32<br />

5 IMPLEMENTIERUNG..................................................................................................... 32<br />

5.1 Webprogrammierung............................................................................................... 32<br />

5.2 Hibernate <strong>und</strong> JavaServer Faces............................................................................ 33<br />

6 SCHLUSSBETRACHTUNG............................................................................................ 35<br />

7 QUELLEN........................................................................................................................36<br />

8 ANHANG......................................................................................................................... 38<br />

9 SELBSTSTÄNDIGKEISTERKLÄRUNG..........................................................................44<br />

ii


Lars Meisegeier FH-Düsseldorf<br />

1 EINLEITUNG<br />

Die vorliegende Bachelorarbeit wurde bei der Cassini Consulting GmbH angefertigt. Als<br />

Aufgabenstellung wurde die selbständige Entwicklung <strong>einer</strong> Software für die Freiwillige<br />

Feuerwehr Leichlingen definiert. Diese sollte so angelegt werden, dass sie auf die<br />

Anforderungen anderer freiwilliger Feuerwehren leicht angepasst werden kann. Die dafür<br />

notwendigen Techniken habe ich mir in meinem Praxisprojekt angeeignet. Dieses ging<br />

der Arbeit voraus <strong>und</strong> fand unter demselben Betreuer statt.<br />

Gegenstand dieser Arbeit ist die Beschreibung der einzelnen Phasen des Software-<br />

Entwicklungsprozesses, die für die Bearbeitung dieser Aufgabe durchlaufen wurden.<br />

In der ersten Phase, der Anforderungsbeschreibung, wird zunächst die Struktur der<br />

Freiwilligen Feuerwehr Leichlingen erläutert. Anschließend werden die zentralen<br />

Geschäftsprozesse beschrieben <strong>und</strong> die gewünschten Funktionen der späteren<br />

Anwendung in der Vorstudie kurz zusammengefasst.<br />

Auf der Anforderungsbeschreibung aufbauend werden in der zweiten Phase, der Analyse,<br />

die geforderten Funktionalitäten detailliert herausgearbeitet <strong>und</strong> im Pflichtenheft<br />

festgelegt. Die dadurch festgelegte Struktur wird gleichzeitig in ein Klassenmodell<br />

umgesetzt.<br />

In der dritten Phase, dem Entwurf, erfolgt ausgehend von den Anforderungen, die<br />

Auswahl <strong>einer</strong> geeigneten Architektur. Zudem werden die Technologien festgelegt, die für<br />

die Umsetzung des geforderten Funktionsumfangs eingesetzt werden sollen.<br />

Die vierte Phase, die Implementierung, beschreibt die Umsetzung der im Pflichtenheft<br />

festgelegten Funktionen mit den im Entwurf ausgewählten Techniken. Dabei beschränkt<br />

sich die Betrachtung auf die wesentlichen Strategien <strong>und</strong> Konzepte, die verwendet<br />

wurden.<br />

Weitere Phasen werden nicht beschrieben, da sich die Entwicklung erst in der Validierung<br />

befindet <strong>und</strong> diese noch nicht abgeschlossen ist.<br />

Diese Arbeit endet mit <strong>einer</strong> Schlussbetrachtung, die meine Erfahrungen während des<br />

Projekts zusammenfasst.<br />

1


Lars Meisegeier FH-Düsseldorf<br />

2 ANFORDERUNGSBESCHREIBUNG<br />

2.1 IST-Analyse<br />

Als Gr<strong>und</strong>lage für die Erstellung der IST-Analyse fand ein Interview mit einem<br />

sachk<strong>und</strong>igen Mitglied der Freiwilligen Feuerwehr Leichlingen statt. Die dabei<br />

gewonnenen Erkenntnisse werden nachfolgend erläutert.<br />

2.1.1 Feuerwehr Leichlingen<br />

Leichlingen ist eine Stadt mit ca. 30.000 Einwohnern, sie liegt zwischen Köln <strong>und</strong><br />

Leverkusen <strong>und</strong> besitzt keine eigene Berufsfeuerwehr. Die Aufgaben der Feuerwehr<br />

werden daher ausschließlich von den r<strong>und</strong> 120 Mitgliedern der Freiwilligen Feuerwehr<br />

übernommen.<br />

Abbildung 1: Struktur Freiwillige Feuerwehr Leichlingen<br />

Das Stadtgebiet Leichlingens ist von der Freiwilligen Feuerwehr in vier Bereiche eingeteilt<br />

worden. Für jeden dieser Bereiche ist ein separater Löschzug zuständig. Alle Löschzüge<br />

haben daher eigene Standorte, Fahrzeuge, Ausrüstung, Material <strong>und</strong> verwalten sich<br />

weitestgehend autonom.<br />

Wehrführer<br />

Leiter Ausstattung<br />

Kleiderkammer Sachausstattung Atemschutzwerkstatt<br />

Löschzug I Löschzug II Löschzug III Löschzug IV<br />

Zusätzlich besitzt die Feuerwehr drei zentrale, übergeordnete Einrichtungen, die für die<br />

Beschaffung, Reinigung, Reparatur <strong>und</strong> Wartung von Material zuständig sind. Diese<br />

Einrichtungen unterscheiden sich abhängig vom Material in:<br />

2


Lars Meisegeier FH-Düsseldorf<br />

● Kleiderkammer<br />

● Sachausstattung<br />

● Atemschutzwerkstatt 1<br />

All diese Einrichtungen haben einen gemeinsamen Vorgesetzten, der für die gesamte<br />

Ausstattung zuständig ist: den Leiter Ausstattung.<br />

Die höchste Instanz, die allen anderen übergeordnet <strong>und</strong> für sämtliche Belange der<br />

Feuerwehr verantwortlich ist, ist der Wehrführer.<br />

2.1.2 Mitgliederverwaltung<br />

Gegenwärtig erfolgt die Mitgliederverwaltung, also das Erfassen von personenbezogenen<br />

Daten, mit Hilfe von Excel-Tabellen. Diese Tabellen werden, bedingt durch die dezentrale<br />

Struktur der Feuerwehr, von jedem Löschzug eigenständig erfasst <strong>und</strong> müssen manuell<br />

zu <strong>einer</strong> Gesamttabelle zusammengefügt werden. Erschwerend kommt dabei hinzu, dass<br />

keine standardisierte, einheitliche Tabellenvorlage existiert. Daher variiert der Umfang <strong>und</strong><br />

die Art der erfassten Daten sehr stark. Die Sicherstellung der Konsistenz der Daten ist<br />

somit sehr aufwendig <strong>und</strong> arbeitsintensiv.<br />

2.1.3 Bestellprozess<br />

Bestellungen von Material stellen einen der wichtigsten Geschäftsprozesse dar. Der<br />

Ablauf dieses Prozesses beinhaltet eine Vielzahl von Genehmigungsvorgängen, an dem<br />

Mitglieder aus allen Bereichen der Feuerwehr beteiligt sind.<br />

Die Bestellungen werden individuell in einem Textverarbeitungsprogramm erstellt.<br />

Anschließend erfolgt die Weiterleitung an ein anderes Mitglied zur Genehmigung; dies<br />

geschieht in der Regel per E-Mail. Alle Vorgänge, d.h. erfassen, genehmigen, weiterleiten<br />

müssen dabei von jedem Mitglied manuell durchgeführt werden. Darüber hinaus wird der<br />

Ablauf des Gesamtprozesses (z.B. hat diese Bestellung wann genehmigt?) nicht separat<br />

erfasst.<br />

1 Aus Gründen der Komplexität des Themas wird die Atemschutzwerkstatt in der weiteren<br />

Betrachtung nicht weiter berücksichtigt.<br />

3


Lars Meisegeier FH-Düsseldorf<br />

2.2 Software<br />

Zur Entscheidung über das weitere Vorgehen wurden Softwarelösungen, die eigens für<br />

dieses Aufgabengebiet konzipiert sind, untersucht.<br />

Ein kommerzielles Softwareprodukt, das speziell für den Einsatz bei Feuerwehren<br />

entwickelt <strong>und</strong> dessen Anschaffung bei der Freiwilligen Feuerwehr Leichlingen zuletzt<br />

diskutiert wurde, ist AMEfire (vgl. www.amefire.de).<br />

AMEfires Funktionalität beschränkt sich im Wesentlichen auf reine Verwaltungsaufgaben,<br />

die bei <strong>einer</strong> Feuerwehr anfallen. Es ist als Einzelplatz-Anwendung konzipiert <strong>und</strong> eignet<br />

sich daher sehr schlecht für die dezentrale Struktur der Freiwilligen Feuerwehr<br />

Leichlingen. Zudem sieht es keine Möglichkeit vor, neue, individuelle Geschäftsprozesse<br />

in die Anwendung zu integrieren. Daher wurde die Entwicklung <strong>einer</strong> neuen, auf die<br />

Anforderungen der Freiwilligen Feuerwehr Leichlingen optimierte Anwendung<br />

beschlossen.<br />

2.3 Projektteam<br />

Projektleiter <strong>und</strong> zugleich Betreuer dieser Arbeit war Herr Dr. Paehler von dem IT-<br />

Beratungsunternehmen Cassini Consulting GmbH. Er besitzt langjährige Erfahrung in der<br />

<strong>Realisierung</strong> von IT-Projekten <strong>und</strong> brachte diese vor allem in der K<strong>und</strong>enkommunikation<br />

<strong>und</strong> Projektplanung mit ein. Ferner überwachte er den Projektfortschritt <strong>und</strong> übernahm<br />

während der Implementierungsphase den Software-Test.<br />

Analyse, Entwurf, Implementierung <strong>und</strong> alle weiteren Aufgaben wurden von mir<br />

übernommen. Zur Unterstützung wurden dabei jederzeit Anregungen, Beratung <strong>und</strong><br />

Hilfestellung vom Betreuer angeboten.<br />

2.4 Entwicklungsumgebung<br />

Die Entwicklungsumgebung umfasst die Programme, die für die Modellierung <strong>und</strong> spätere<br />

Implementierung eingesetzt wurden.<br />

2.4.1 Integrated Development Environment (IDE)<br />

Zentrale IDE für die Modellierung <strong>und</strong> Implementierung ist die Eclipse Web Tools Platform<br />

(WTP). Die WTP ist eine bewährte <strong>und</strong> verbreitet eingesetzte Umgebung, die u.a. eine<br />

Vielzahl von speziellen Editoren für alle Dateien, die man bei der Entwicklung von<br />

modernen Web-Applikationen benötigt (HTML, CSS, JavaSript, JSP, JSF, SQL, XML,<br />

4


Lars Meisegeier FH-Düsseldorf<br />

DTD, XSD, WSDL etc.), anbietet. Darüber hinaus ermöglicht sie es, alle gängigen<br />

Webserver (Tomcat, JOnAS, JBoss, J2EE SDK, IBM WebSphere etc.) mit in die<br />

Entwicklungsumgebung zu integrieren. Für den Fall <strong>einer</strong> späteren, Fehlersuche stehen<br />

außerdem nützliche Tools wie Debugger <strong>und</strong> TCP/IP Monitor bereit (vgl.<br />

www.eclipse.org/webtools).<br />

2.4.2 Unified Modeling Language (UML)<br />

Unverzichtbar bei der zeitgemäßen Modellierung von Software ist der Einsatz von UML.<br />

Setzt man UML ein, so ist eine starke Interaktion zwischen UML-Modellierungstool <strong>und</strong><br />

Entwicklungsumgebung gewünscht; um z.B. aus einem UML-Klassendiagramm ein<br />

Codegerüst zu generieren <strong>und</strong> umgekehrt aus einem Codegerüst ein entsprechendes<br />

Diagramm. Das Diagramm sollte immer dem aktuellen Code in der<br />

Entwicklungsumgebung entsprechen.<br />

Genau diese Funktionalität lässt sich durch das Omondo EclipseUML Plugin in die WTP<br />

integrieren. Nach Installation des Plugins ist man in der Lage, jede Art von UML-<br />

Diagramm innerhalb der Entwicklungsumgebung zu erstellen. Dabei werden, sofern<br />

möglich, automatisch entsprechende Codegerüste generiert. Erfolgen Änderungen am<br />

Code, so werden die zugehörigen Diagramme ebenfalls automatisch aktualisiert (vgl.<br />

www.omondo.com).<br />

2.4.3 Concurrent Versions System (CVS)<br />

Zur Vereinfachung der Versionsverwaltung <strong>und</strong> Weitergabe des Quellcodes wird ein<br />

zentraler CVS-Server genutzt. Dieser ist in ein Backup-Konzept integriert, so dass keine<br />

speziellen Sicherungskopien erstellt werden müssen.<br />

2.5 Geschäftsprozess<br />

Aufgr<strong>und</strong> des engen zeitlichen Rahmens beschränkt sich dieses Projekt in erster Linie auf<br />

den Hauptgeschäftsprozess Bestellung. Dabei wird jedoch die spätere Erweiterung um<br />

neue Geschäftsprozesse stets berücksichtigt.<br />

5


Lars Meisegeier FH-Düsseldorf<br />

2.5.1 Bestellung<br />

Innerhalb der Feuerwehr übernehmen Mitglieder unterschiedliche Rollen. Rollen<br />

entsprechen dabei der Berechtigung, Aufgaben in einem eingeschränkten Tätigkeitsfeld<br />

durchführen zu können. Jedes Mitglied kann mehrere dieser Rollen übernehmen.<br />

Im Folgendem wird der Ablauf des Bestellprozesses mit dem an ihm beteiligten Rollen<br />

detailliert erläutert.<br />

Löschzug Bestellung erstellen<br />

erstellen<br />

Abbildung 2: Aktivitätsdiagramm 'Löschzug Bestellung erstellen', 'Löschzug Bestellung<br />

genehmigen'<br />

Bestellungen dürfen innerhalb eines Löschzuges nur von Mitgliedern mit der Rolle<br />

'Löschzug Bestellung erstellen' verfasst werden.<br />

Zur Verhinderung von Missbrauch werden alle Bestellungen anschließend einem Mitglied,<br />

das die Rolle 'Löschzug Bestellung genehmigen' übernimmt, vorgelegt. Dieses muss<br />

selbst Mitglied des gleichen Löschzuges sein <strong>und</strong> besitzt für den Fall, dass die Bestellung<br />

ungerechtfertigt ist, die Möglichkeit, sie abzulehnen. Ist sie begründet, erteilt er eine<br />

Genehmigung.<br />

Löschzug Bestellung genehmigen<br />

genehmigen<br />

ablehnen<br />

Abhängig vom bestelltem Artikel erfolgt nun die Weiterleitung der Bestellung an ein<br />

Mitglied mit der Rolle 'Kleiderkammer Bestellung genehmigen' (KK), 'Sachausstattung<br />

Bestellung genehmigen' (SA) oder 'Leiter Ausstattung' (LA).<br />

KK SA LA<br />

6


Lars Meisegeier FH-Düsseldorf<br />

KK<br />

Abbildung 3: Aktivitätsdiagramm 'Kleiderkammer Bestellung genehmigen'<br />

Geht eine Bestellung für die Rolle 'Kleiderkammer Bestellung genehmigen' ein <strong>und</strong> der<br />

angeforderte Artikel ist vorrätig, so wird dieser ausgeliefert <strong>und</strong> die Bestellung ist<br />

erfolgreich abgearbeitet. Ist der Artikel nicht vorhanden, so kann die Beschaffung durch<br />

Genehmigung der Bestellung veranlasst werden. Die Bestellung wird in diesem Fall dem<br />

'Leiter Ausstattung' übergeben.<br />

Sind Änderungen an der Bestellung notwendig, so können diese durch Editieren<br />

vorgenommen werden. Die ursprüngliche Bestellung bleibt dabei zum Zweck der späteren<br />

Nachvollziehbarkeit unverändert erhalten.<br />

Erscheint eine Bestellung jedoch unbegründet, wird sie abgelehnt.<br />

Zusätzlich besteht die Möglichkeit, mehrere Bestellungen zu <strong>einer</strong> Sammelbestellung<br />

zusammenzufassen. Diese Sammelbestellung stellt eine neue, eigenständige Bestellung<br />

dar, die im Weiteren gesondert betrachtet wird.<br />

Nach dem Erstellen <strong>einer</strong> Sammelbestellung ist es möglich, weitere Bestellungen<br />

hinzuzufügen, vorhandene zu entfernen <strong>und</strong> einzelne Bestellungen zu editieren. Erfolgt<br />

die Genehmigung der Sammelbestellung, wird diese ebenfalls an den 'Leiter Ausstattung'<br />

weitergeleitet.<br />

editieren<br />

Kleiderkammer Bestellung genehmigen<br />

gruppieren<br />

genehmigen ablehnen auslief ern<br />

entf ernen<br />

hinzuf ügen<br />

Sammelbestellung<br />

editieren<br />

genehmigen<br />

LA LAs<br />

7


Lars Meisegeier FH-Düsseldorf<br />

Abbildung 4: Aktivitätsdiagramm 'Kleiderkammer Bestellung erstellen'<br />

Mitglieder, die die Rolle 'Kleiderkammer Bestellung erstellen' haben, können z.B. zum<br />

Erhalt der Lagerbestände eigene Bestellungen für die Kleiderkammer verfassen.<br />

Bearbeitet werden diese Bestellungen analog zu den Bestellungen eines Löschzuges.<br />

Zum Schutz vor Missbrauch ist jedoch wieder darauf zu achten, dass der Verfasser <strong>einer</strong><br />

Bestellung nicht auch Genehmiger sein darf.<br />

SA<br />

Abbildung 5: Aktivitätsdiagramm 'Sachausstattung Bestellung genehmigen'<br />

Funktionell besitzt die Sachausstattung mit den Rollen 'Sachausstattung Bestellung<br />

genehmigen' <strong>und</strong> 'Sachausstattung Bestellung erstellen' exakt die gleichen Möglichkeiten,<br />

eine Bestellung zu bearbeiten wie die Kleiderkammer. Nach Genehmigung <strong>einer</strong><br />

Bestellung bzw. <strong>einer</strong> Sammelbestellung erfolgt auch hier die Weiterleitung an 'Leiter<br />

Ausstattung'.<br />

editieren<br />

Kleiderkammer Bestellung erstellen<br />

erstellen KK<br />

Sachausstattung Bestellung genehmigen<br />

gruppieren<br />

genehmigen ablehnen auslief ern<br />

entf ernen<br />

hinzuf ügen<br />

Sammelbestellung<br />

editieren<br />

genehmigen<br />

LA LAs<br />

8


Lars Meisegeier FH-Düsseldorf<br />

LA<br />

Abbildung 6: Aktivitätsdiagramm 'Sachausstattung Bestellung erstellen'<br />

Abbildung 7: Aktivitätsdiagramm 'Leiter Ausstattung'<br />

Der 'Leiter Ausstattung' erhält Bestellungen <strong>und</strong> Sammelbestellungen. Für beide hat er<br />

die Möglichkeit, sie zu genehmigen oder abzulehnen. Genehmigt er sie, werden sie an die<br />

Rolle 'Wehrführer' weitergeleitet.<br />

WF<br />

genehmigen<br />

WF<br />

genehmigen<br />

ÜS<br />

Abbildung 8: Aktivitätsdiagramm 'Wehrführer'<br />

Sachausstattung Bestellung erstellen<br />

erstellen SA<br />

Leiter Ausstattung<br />

Wehrführer<br />

Sammelbestellung<br />

ablehnen ablehnen<br />

genehmigen<br />

WFs<br />

Sammelbestellung<br />

ablehnen ablehnen<br />

genehmigen<br />

ÜSs<br />

LAs<br />

WFs<br />

9


Lars Meisegeier FH-Düsseldorf<br />

Die Rolle 'Wehrführer' besitzt ebenfalls die Möglichkeit, Bestellungen <strong>und</strong><br />

Sammelbestellungen abzulehnen oder zu genehmigen. Findet eine Genehmigung statt,<br />

erfolgt eine Weiterleitung an die Rolle 'Übermittler an Stadt'.<br />

Abbildung 9: Aktivitätsdiagramm 'Übermittler an Stadt'<br />

Zur Fertigstellung <strong>einer</strong> Bestellung ist es erforderlich, dass diese in Schriftform persönlich<br />

oder über den Postweg bei der Stadt eingereicht wird. Hierfür besitzt die Rolle 'Übermittler<br />

an Stadt' die Möglichkeit, Bestellungen wie auch Sammelbestellungen auszudrucken.<br />

Um den Ablauf des Bestellprozesses zu beschleunigen, erfolgt nach jedem<br />

Genehmigungsvorgang der Versand <strong>einer</strong> E-Mail Benachrichtigung an alle Mitglieder, die<br />

aufgr<strong>und</strong> ihrer Rolle in der Lage sind, die Bestellung weiter zu bearbeiten. Zusätzlich<br />

bekommt der Ansprechpartner der Bestellung eine E-Mail, die ihn über den<br />

Prozessfortschritt informiert.<br />

Im Falle der Ablehnung <strong>einer</strong> Bestellung wird der Ansprechpartner per E-Mail über den<br />

Gr<strong>und</strong> benachrichtigt.<br />

2.6 Vorstudie<br />

Die Vorstudie fasst alle erhaltenen Informationen stichpunktartig zusammen <strong>und</strong> wurde<br />

den Entscheidungsträgern der Freiwilligen Feuerwehr Leichlingen vorgelegt. Sie bildet<br />

daher die Gr<strong>und</strong>lage für die nachfolgende Analyse.<br />

2.6.1 Anwendung<br />

Ziel der Anwendung ist es, den Ablauf des Bestellprozesses der Freiwilligen Feuerwehr<br />

Leichlingen zu vereinfachen <strong>und</strong> eine spätere Nachvollziehbarkeit zu ermöglichen.<br />

2.6.2 Benutzer<br />

Übermittler an Stadt<br />

Sammelbestellung<br />

ÜS drucken drucken<br />

ÜSs<br />

Konzipiert ist die Anwendung für Mitglieder der Freiwilligen Feuerwehr Leichlingen. Die<br />

10


Lars Meisegeier FH-Düsseldorf<br />

Mitglieder unterscheiden sich dabei in den Rollen, die sie einnehmen. Rollen entsprechen<br />

der Berechtigung, Tätigkeiten innerhalb eines klar eingegrenzten Aufgabengebiets<br />

durchzuführen. Jedes Mitglied kann mehrere Rollen übernehmen. 2<br />

2.6.3 Funktionen<br />

2.6.3.1 Mitglieder<br />

Zu den personenbezogenen Daten, die von einem Mitglied erfasst werden, gehören:<br />

[V1] 3 Vorname [V2] Name<br />

[V3] Geschlecht [V4] Geburtsdatum<br />

[V5] Adresse [V6] Telefonnummern<br />

[V7] E-Mail Adressen [V8] Arbeitgeber<br />

[V9] Fahrerlaubnis [V10] Personalnummer der Feuerwehr<br />

[V11] Zugehöriger Löschzug [V12] Dienstgrad<br />

[V13] Dienstfunktion [V14] Absolvierte Ausbildungen<br />

[V15] Rollen<br />

2 Im Folgendem entspricht jeder Akteur in einem Anwendungsfalldiagramm <strong>einer</strong> einzelnen Rolle.<br />

3 Anforderungen der Vorstudie werden zur Vereinfachung der Kommunikation im Folgendem mit<br />

[V+Zahl] gekennzeichnet.<br />

11


Lars Meisegeier FH-Düsseldorf<br />

Ein Klassenmodell, das diese Beziehungen abbildet, ist folgendes:<br />

Abbildung 10: Klassendiagramm Mitglied<br />

2.6.3.2 Mitgliederverwaltung<br />

Mitglieder können von einem Administrator angelegt [V16], editiert [V17] <strong>und</strong> angezeigt<br />

[V18] werden.<br />

Administrator<br />

Mitglied anzeigen<br />

Mitglied anlegen<br />

Mitglied editieren<br />

Abbildung 11: Anwendungsfalldiagramm 'Administrator'<br />

12


Lars Meisegeier FH-Düsseldorf<br />

2.6.3.3 Bestellung<br />

Die Daten <strong>einer</strong> Bestellung umfassen folgende Angaben:<br />

[V19] Bestellte Artikel [V20] Anzahl des Artikels<br />

[V21] Typ der Bestellung [V22] Bestellnummer<br />

[V23] Datum der Bedarfsmeldung [V24] Erstellungsdatum<br />

[V25] Geschätzter Kostenrahmen [V26] Drei mögliche Lieferanten<br />

[V27] Verfasser [V28] Ansprechpartner<br />

[V29] Empfänger<br />

Daraus ergibt sich das folgende Klassenmodell:<br />

Abbildung 12: Klassendiagramm Bestellung<br />

2.6.3.4 Bestellprozess<br />

Bestellungen können von Mitgliedern mit den Rollen 'Löschzug Bestellung erstellen' [V30],<br />

'Kleiderkammer Bestellung erstellen' [V31] oder 'Sachausstattung Bestellung erstellen'<br />

[V32] verfasst werden.<br />

Löschzug<br />

Bestellung erstellen<br />

Bestellung erstellen<br />

Kleiderkammer<br />

Bestellung erstellen<br />

Abbildung 13: Anwendungsfalldiagramm 'Bestellung erstellen'<br />

Sachausstattung<br />

Bestellung erstellen<br />

13


Lars Meisegeier FH-Düsseldorf<br />

Für die weitere Abwicklung des Bestellprozesses (siehe Kapitel 2.5.1 Seite 6) werden die<br />

beteiligten Rollen mit ihren zugehörigen Möglichkeiten nachfolgend aufgelistet.<br />

Rolle<br />

Bestellung<br />

genehmigen<br />

Bestellung<br />

ablehnen<br />

Löschzug Bestellung genehmigen [V33] [V34]<br />

Bestellung<br />

gruppieren<br />

Kleiderkammer Bestellung genehmigen [V35] [V36] [V37]<br />

Sachausstattung Bestellung genehmigen [V38] [V39] [V40]<br />

Leiter Ausstattung [V41] [V42]<br />

Wehrführer [V43] [V44]<br />

Tabelle 1: Rollen Bestellprozess<br />

Löschzug<br />

Bestellung<br />

genehmigen<br />

Kleiderkammer<br />

Bestellung<br />

genehmigen<br />

Abbildung 14: Anwendungsfalldiagramm Bestellprozess<br />

Am Ende des Bestellprozesses besitzt die Rolle 'Übermittler an die Stadt' zudem die<br />

Möglichkeit, Bestellungen auszudrucken.<br />

Übermittler an Stadt<br />

Bestellung genehmigen<br />

Bestellung<br />

gruppieren<br />

Sachausstattung<br />

Bestellung<br />

genehmigen<br />

Bestellung ablehnen<br />

Bestellung<br />

ausdrucken<br />

Leiter<br />

Ausstattung<br />

Abbildung 15: Anwendungsfalldiagramm 'Übermittler an Stadt'<br />

Wehrführer<br />

14


Lars Meisegeier FH-Düsseldorf<br />

2.6.4 Anforderungen<br />

Oberstes Ziel, neben der Funktionsfähigkeit, ist die Benutzerfre<strong>und</strong>lichkeit. Um eine<br />

übersichtliche, intuitiv leicht zu bedienende, grafische Benutzeroberfläche [V45] zu<br />

erhalten, wird eine umfangreiche Menüstruktur angestrebt.<br />

Freiwillige Feuerwehr Leichlingen<br />

Anlegen Anzeigen Editeren<br />

Person<br />

Arbeitgeber<br />

Feuerw ehr<br />

Abbildung 16: Entwurf <strong>einer</strong> möglichen Menüstruktur<br />

3 ANALYSE<br />

In der Analyse wurden die Informationen aus der Anforderungsbeschreibung gegliedert<br />

<strong>und</strong> in eine logische bzw. funktionale Struktur gebracht. Anschließend wurden alle Details<br />

dieser Struktur ausgearbeitet <strong>und</strong> im Pflichtenheft festgeschrieben.<br />

3.1 Pflichtenheft<br />

Das Pflichtenheft umfasst die detaillierte Beschreibung aller geforderten Funktionen. Es<br />

bildet die Basis für die spätere Abnahme <strong>und</strong> ist daher für K<strong>und</strong>en <strong>und</strong> Entwickler<br />

verbindlich.<br />

3.1.1 Ziel<br />

Ziel ist es, eine Anwendung zu entwickeln, die in der Lage ist, die Abwicklung des<br />

Hauptgeschäftsprozess Bestellung effektiv zu unterstützen. Dabei soll der Ablauf für die<br />

spätere Nachvollziehbarkeit lückenlos dokumentiert werden. Zudem sollen die<br />

Anknüpfungspunkte zwischen dem Bestellprozess <strong>und</strong> <strong>einer</strong> später zu implementierenden<br />

Materialverwaltung geschaffen werden. Für die Erfassung personenbezogener Daten ist<br />

desweiteren eine Mitgliederverwaltung zu erstellen.<br />

Mitglieder Bestellungen<br />

15


Lars Meisegeier FH-Düsseldorf<br />

3.1.2 Funktionen<br />

3.1.2.1 Mitgliederverwaltung<br />

Daten der Mitglieder werden für den Ablauf des Bestellprozesses <strong>und</strong> die Umsetzung des<br />

Rollenkonzepts benötigt. Zu den personenbezogenen Daten gehören neben Vornamen<br />

[P1] 4 , Namen [P2], Geburtsdatum [P3] <strong>und</strong> Geschlecht [P4] sowie der aktuelle Wohnort<br />

[P5] mit Straße [P6] <strong>und</strong> Postleitzahl [P7]. Desweiteren können mehrere Telefonnummer<br />

[P8] <strong>und</strong> E-Mail Adressen [P9] angegeben werden.<br />

Telefonnummern besitzen dabei neben Vorwahl [P10] <strong>und</strong> Durchwahl [P11], eine<br />

optionale Beschreibung [P12] entsprechend nachfolgender Tabelle.<br />

Allgemein<br />

Mobil<br />

Privat<br />

Arbeitgeber<br />

Fax<br />

Tabelle 2: Telefonnummern Beschreibungen<br />

Ebenso wird erfasst, welche Fahrerlaubnis [P13] ein Mitglied besitzt. Die<br />

Führerscheinklassen können dabei entsprechend den alten oder neuen Klassen [P14]<br />

angegeben werden. Mögliche Werte sind:<br />

alt 1 1a 1b 2 3 4 5 6<br />

neu A1 A B C1 C D1 D BE C1E CE D1E DE M L T<br />

Tabelle 3: Führerscheinklassen<br />

Neben den persönlichen Angaben können auch die Daten des Arbeitgebers [P15]<br />

hinterlegt werden. Sie bestehen aus Namen [P16], Anschrift [P17] <strong>und</strong> <strong>einer</strong> oder<br />

mehreren Telefonnummern [P18].<br />

Jedes Mitglied gehört einem Löschzug an [P19] <strong>und</strong> erhält eine eindeutige, vierstellige<br />

Personalnummer [P20], die wie folgt aufgebaut ist.<br />

4 Anforderungen der Vorstudie werden zur Vereinfachung der Kommunikation im Folgendem mit<br />

[P+Zahl] gekennzeichnet.<br />

16


Lars Meisegeier FH-Düsseldorf<br />

Ziffer 1 Ziffer 2 Ziffer 3 Ziffer 4<br />

Feuerwehr<br />

Leichlingen (4)<br />

Tabelle 4: Aufbau Personalnummer<br />

Löschzugnummer Laufende Nummer<br />

innerhalb des Löschzuges<br />

Zu den Daten des Löschzuges zählen neben Namen [P21], Nummer [P22] <strong>und</strong> Kürzel<br />

[P23] auch die zu ihm gehörigen Gebäude [P24] <strong>und</strong> Fahrzeuge [P25]. Gebäude werden<br />

dabei mit Namen [P26] <strong>und</strong> Anschrift [P27], Fahrzeuge mit Funkrufname [P28] <strong>und</strong><br />

Kennzeichen [P29] erfasst.<br />

Die Angaben zu einem Mitglied umfassen desweiteren den Dienstgrad [P30] <strong>und</strong> die<br />

Dienstfunktion [P31]. Dienstgrade unterscheiden sich, abhängig vom Geschlecht [P32], in<br />

ihrer Bezeichnung [P33] <strong>und</strong> im Kürzel [P34]. Mögliche Dienstgrade werden in der<br />

folgenden Tabelle aufgelistet.<br />

Männlich Weiblich<br />

Bezeichnung Kürzel Bezeichnung Kürzel<br />

Feuerwehrmann-Anwärter FMA Feuerwehrfrau-Anwärterin FFA<br />

Feuerwehrmann FM Feuerwehrfrau FF<br />

Oberfeuerwehrmann OFM Oberfeuerwehrfrau OFF<br />

Hauptfeuerwehrmann HFM Hauptfeuerwehrfrau HFF<br />

Unterbrandmeister UBM Unterbrandmeisterin UBM<br />

Brandmeister BM Brandmeisterin BM<br />

Oberbrandmeister OBM Oberbrandmeisterin OBM<br />

Hauptbrandmeister HBM Hauptbrandmeisterin HBM<br />

Brandinspektor BI Brandinspektorin BI<br />

Brandoberinspektor BOI Brandoberinspektorin BOI<br />

Stadtbrandinspektor StBI Stadtbrandinspektorin StBI<br />

Tabelle 5: Dienstgrade<br />

Dienstfunktionen unterscheiden sich ebenfalls, abhängig vom Geschlecht [P35], in ihrer<br />

Bezeichnung [P36]. Erlaubte Dienstfunktionen sind:<br />

17


Lars Meisegeier FH-Düsseldorf<br />

Bezeichnung männlich Bezeichnung weiblich<br />

Jugendfeuerwehrwart Jugendfeuerwehrwart<br />

Kreisjugendfeuerwehrwart Kreisjugendfeuerwehrwart<br />

stellvertretender Gruppenführer stellvertretende Gruppenführerin<br />

Gruppenführer Gruppenführerin<br />

stellvertretender Zugführer stellvertretende Zugführerin<br />

Zugführer Zugführerin<br />

stellvertretender Leiter der Feuerwehr stellvertretende Leiterin der Feuerwehr<br />

Leiter der Feuerwehr Leiterin der Feuerwehr<br />

stellvertretender Kreisbrandmeister stellvertretende Kreisbrandmeisterin<br />

Kreisbrandmeister Kreisbrandmeisterin<br />

stellvertretender Bezirksbrandmeister stellvertretende Bezirksbrandmeisterin<br />

Bezirksbrandmeister Bezirksbrandmeisterin<br />

Tabelle 6: Dienstfunktionen<br />

Ferner ist es möglich, Ausbildungen [P37], die im Rahmen der Feuerwehr absolviert<br />

wurden, zu vermerken. Ausbildungen sind:<br />

F2 B2 MOD 1 TM 1 ABC 1<br />

F3 B3 MOD 2 TM 2 Kettensäge<br />

F4 B4 MOD 3 Maschinist<br />

F5 B5 MOD 4<br />

F6 B6<br />

Tabelle 7: Ausbildungen<br />

18


Lars Meisegeier FH-Düsseldorf<br />

Mitglieder können zudem mehrere, unterschiedliche Rollen innerhalb der Feuerwehr<br />

übernehmen. Definierte Rollen sind:<br />

Löschzug Mitglieder anzeigen<br />

Löschzug Mitglieder verwalten<br />

Löschzug Bestellung erstellen<br />

Löschzug Bestellung genehmigen<br />

Kleiderkammer Bestellung erstellen<br />

Kleiderkammer Bestellung genehmigen<br />

Sachausstattung Bestellung erstellen<br />

Sachausstattung Bestellung genehmigen<br />

Leiter Ausstattung<br />

Wehrführer<br />

Übermittler an Stadt<br />

Administration<br />

Tabelle 8: Rollen<br />

Daraus ergibt sich das folgende Klassendiagramm:<br />

Abbildung 17: Klassendiagramm Mitglied<br />

19


Lars Meisegeier FH-Düsseldorf<br />

Mitglieder können von einem Administrator angelegt [P38], editiert [P39] <strong>und</strong> angezeigt<br />

[P40] werden. Innerhalb eines Löschzuges können Mitglieder die Möglichkeit besitzen,<br />

Mitglieder des eigenen Löschzuges anzuzeigen [P41] oder zu verwalten. Das Verwalten<br />

beinhaltet neben dem Anzeigen das Anlegen [P42] <strong>und</strong> Editieren [P43] von Mitgliedern<br />

des eigenen Löschzuges.<br />

Abbildung 18: Anwendungsfalldiagramm Mitgliederverwaltung<br />

3.1.2.2 Materialverwaltung<br />

Die Abhängigkeit des Bestellprozess vom bestellten Artikel wird durch die<br />

Implementierung <strong>einer</strong> rudimentären Materialverwaltung abgebildet. Dabei werden<br />

ausschließlich die Funktionalitäten umgesetzt, die für den Bestellprozess erforderlich sind.<br />

Artikel<br />

Administrator<br />

Mitglied anzeigen<br />

Mitglied anlegen<br />

Mitglied editieren<br />

Artikel repräsentieren einen konkreten <strong>und</strong> eindeutigen Gegenstand (Entität), der<br />

entweder über den Bestellprozess beschafft wird oder bereits vorhanden ist. Jeder Artikel<br />

besitzt einen Artikelstandort [P44], an dem er sich befindet bzw. für den er vorgesehen ist.<br />

Als Standorte kommen Mitglieder [P45], Fahrzeuge [P46] oder Gebäude [P47] in Frage.<br />

Ein Artikel besitzt zudem eine Vielzahl von Eigenschaften mit bestimmten Werten. Anzahl<br />

<strong>und</strong> Art der möglichen Eigenschaften werden zentral in einem abstrakten Prototyp des<br />

Artikels, den Artikelstamm [P48], festgelegt. Neben einem Namen [P49] <strong>und</strong> beliebig<br />

vielen Eigenschaften [P50], verfügt der Artikelstamm über einen Verweis, zu welcher<br />

Artikelgruppe [P51] er gehört. Die Artikelgruppe dient dabei lediglich zur logischen<br />

Zusammenfassung der Artikelstämme in die Gruppen:<br />

Persönliche Schutzausrüstung<br />

Fahrzeugbeladung<br />

Bescheinigung<br />

Tabelle 9: Artikelgruppen<br />

Löschzug<br />

Mitglied verw alten<br />

Löschzug<br />

Mitglied anzeigen<br />

20


Lars Meisegeier FH-Düsseldorf<br />

Ferner ist dem Artikelstamm zugeordnet, welche Einrichtung der Feuerwehr, im Falle<br />

<strong>einer</strong> Bestellung, für die Abwicklung zuständig ist [P52]. Mögliche Abwicklungsstellen<br />

sind:<br />

Kleiderkammer<br />

Sachausstattung<br />

Leiter Ausstattung<br />

Tabelle 10: Abwicklungsstellen<br />

Artikel HAIX-Feuerwehr-Schuhe classic<br />

Artikelstamm Schuhe<br />

Artikelgruppe Persönliche Schutzausrüstung<br />

Artikelstandort Markus Mustermann<br />

Artikeleigenschaften Eigenschaft Wert<br />

Größe 45<br />

Stahlsohle Nein<br />

Stahlkappe Ja<br />

Tabelle 11: Beispiel eines Artikels innerhalb der Materialverwaltung<br />

Abbildung 19: Klassendiagramm Artikel<br />

21


Lars Meisegeier FH-Düsseldorf<br />

Artikelstämme können vom Administrator angezeigt, editiert <strong>und</strong> neu angelegt werden:<br />

3.1.2.3 Bestellprozess<br />

Abbildung 20: Anwendungsfalldiagramm Artikelstämme<br />

Bestellungen <strong>und</strong> ihre Abläufe stellen einen Hauptgeschäftprozess der Freiwilligen<br />

Feuerwehr Leichlingen dar. Die Angaben <strong>einer</strong> Bestellung umfassen daher, neben den<br />

reinen Bestelldaten, Informationen zum Bestellungsablauf.<br />

Zu den Daten <strong>einer</strong> Bestellung gehören neben Erstellungsdatum [P53] <strong>und</strong> Verfasser<br />

[P54] auch die Angabe, um welchen Bestellungstyp [P55] es sich handelt.<br />

Bestellungstypen sind:<br />

Ersatzbeschaffung<br />

Neubeschaffung<br />

Inspektion/TÜV/TÜD<br />

Reparatur<br />

Tabelle 12: Bestellungstypen<br />

Weiterer Bestandteil ist der zu bestellende Artikel [P56]. Er wird mit den gewünschten<br />

Werten [P57] entsprechend seinen zugehörigen Artikelstamm-Eigenschaften erfasst.<br />

Zusätzlich zum Erstellungsdatum wird auch das Datum, an dem der Bedarf nach diesem<br />

Artikel [P58] gemeldet wurde, angegeben. Auch der spätere Artikelstandort [P59] wird<br />

hinterlegt.<br />

Beim Bestellprozess regelt ein Kostenstellensystem [P60] die Zuständigkeit zwischen<br />

Ersteller <strong>einer</strong> Bestellung bzw. Gruppierer <strong>einer</strong> Sammelbestellung <strong>und</strong> den möglichen<br />

Artikelstandorten Mitglieder [P61], Fahrzeuge [P62] oder Gebäude [P63]. Neben <strong>einer</strong><br />

eindeutigen Nummer [P64] haben Kostenstellen einen Namen P[65]. Die der Freiwilligen<br />

Feuerwehr Leichlingen lauten:<br />

Administrator<br />

Artikelstamm<br />

anlegen<br />

Artikelstamm<br />

anzeigen<br />

Artikelstamm<br />

editieren<br />

22


Lars Meisegeier FH-Düsseldorf<br />

Name Nummer<br />

Löschzug 1 11<br />

Löschzug 2 12<br />

Löschzug 3 13<br />

Löschzug 4 14<br />

Kleiderkammer 20<br />

Kleiderkammer Sammelbestellung 21<br />

Sachausstattung 30<br />

Sachausstattung Sammelbestellung 31<br />

Tabelle 13: Kostenstellen der Freiwilligen Feuerwehr Leichlingen<br />

Kostenstellen werden zudem für die Verwaltung <strong>und</strong> Generierung eindeutiger<br />

Bestellnummern genutzt. Eine Bestellnummer ist achtstellig <strong>und</strong> setzt sich aus der<br />

Kostenstellennummer [P66], dem aktuellen Jahrzehnt <strong>und</strong> <strong>einer</strong> laufenden Nummer [P67]<br />

zusammen.<br />

Ziffer 1 Ziffer 2 Ziffer 3 Ziffer 4 Ziffer 5 Ziffer 6 Ziffer 7 Ziffer 8<br />

Kostenstelle Jahrzehnt Laufende Nummer der Kostenstelle<br />

Tabelle 14: Aufbau <strong>einer</strong> Bestellnummer<br />

Mit dem Anlegen erhält jede Bestellung eine Bestellnummer, entsprechend der<br />

Kostenstelle zugewiesen.<br />

Eine Bestellung beinhaltet zudem drei mögliche Lieferanten [P68] für den gewünschten<br />

Artikel. Die Angaben eines Lieferanten umfassen Namen [P69], Anschrift [P70] <strong>und</strong>,<br />

sofern vorhanden, mehrere Telefonnummern [P71].<br />

Ferner wird der zu erwartende Kostenrahmen [P72] <strong>und</strong> die gewünschte Stückzahl [P73]<br />

mit aufgenommen. Weitere Informationen für die spätere Abwicklung sind ein Empfänger<br />

[P74], der den Artikel bei Lieferung erhalten soll, <strong>und</strong> ein Ansprechpartner [P75] für den<br />

Fall von Rückfragen.<br />

23


Lars Meisegeier FH-Düsseldorf<br />

Daraus ergibt sich folgendes Klassendiagramm:<br />

Abbildung 21: Klassendiagramm Bestellung<br />

Bestellungen können von Mitgliedern mit den Rollen 'Löschzug Bestellung erstellen' [P76],<br />

'Kleiderkammer Bestellung erstellen' [P77] oder 'Sachausstattung Bestellung erstellen'<br />

[P78] verfasst werden.<br />

Löschzug<br />

Bestellung erstellen<br />

Bestellung erstellen<br />

Kleiderkammer<br />

Bestellung erstellen<br />

Abbildung 22: Anwendungsfalldiagramm 'Bestellung erstellen'<br />

Sachausstattung<br />

Bestellung erstellen<br />

Abhängig vom Ersteller durchläuft sie anschließend den Bestellprozess (siehe Kapitel<br />

2.5.1 Seite 6). Die daran beteiligten Rollen besitzen eine Reihe von Möglichkeiten, eine<br />

Bestellung zu bearbeiten; diese werden nachfolgend tabellarisch aufgeführt.<br />

24


Lars Meisegeier FH-Düsseldorf<br />

Anwendungsfall<br />

Löschzug<br />

Bestellung<br />

genehmigen<br />

Kleiderkammer<br />

Bestellung<br />

genehmigen<br />

Sachausstattung<br />

Bestellung<br />

genehmigen<br />

Leiter der<br />

Ausstattung<br />

Bestellung genehmigen [P79] [P80] [P81] [P82] [P83]<br />

Bestellung ablehnen [P84] [P85] [P86] [P87] [P88]<br />

Bestellung editieren [P89] [P90]<br />

Bestellung zu Sammelbestellung gruppieren [P91] [P92]<br />

Bestellung aus Sammelbestellung entfernen [P93] [P94]<br />

Bestellung zu Sammelbestellung hinzufügen [P95] [P96]<br />

Sammelbestellung genehmigen [P97] [P98] [P99] [P100]<br />

Sammelbestellung ablehnen [P101] [P102]<br />

Tabelle 15: Anwendungsfälle - Rollen Bestellprozess<br />

Sachausstattung<br />

Bestellung genehmigen<br />

Bestellung<br />

editieren<br />

Bestellung zu<br />

Sammelbestellung<br />

hinzufügen<br />

Löschzug<br />

Bestellung genehmigen<br />

Bestellung aus<br />

Sammelbestellung<br />

entfernen<br />

Bestellung ablehnen<br />

Kleiderkammer<br />

Bestellung genehmigen<br />

Bestellung zu<br />

Sammelbestellung<br />

gruppieren<br />

Abbildung 23: Anwendungsfalldiagramm Bestellprozess<br />

Bestellung genehmigen<br />

Sammelbestellung<br />

genehmigen<br />

Wehrführer<br />

Wehrführer<br />

Sammelbestellung<br />

ablehnen<br />

Leiter der Ausstattung<br />

25


Lars Meisegeier FH-Düsseldorf<br />

Erfolgt eine Genehmigung, so wird diese Freigabe mit Datum [P103] <strong>und</strong> Verweis auf das<br />

entsprechende Mitglied [P104] erfasst. Zudem werden alle Mitglieder, die die Bestellung<br />

aufgr<strong>und</strong> ihrer Rolle weiter bearbeiten können, per E-Mail benachrichtigt [P105]. Der<br />

Ansprechpartner der Bestellung wird ebenfalls via E-Mail über den Fortschritt informiert<br />

[P106].<br />

Im Falle <strong>einer</strong> Ablehnung wird dies mit Begründung [P107], Datum [P108] <strong>und</strong><br />

ausführendem Mitglied [P109] hinterlegt. Desweiteren erhält der Ansprechpartner der<br />

Bestellung eine E-Mail mit Begründung der Ablehnung [P110].<br />

Am Ende des Bestellprozesses besitzt die Rolle 'Übermittler an Stadt' die Möglichkeit,<br />

Bestellungen [P111] sowie Sammelbestellungen [P112] in Papierform zu bringen.<br />

Bestellung<br />

ausdrucken<br />

Abbildung 24: Anwendungsfalldiagramm 'Übermittler an Stadt'<br />

3.1.3 Benutzeroberfläche<br />

Um die Übersichtlichkeit <strong>und</strong> somit den Bedienungskomfort zu erhöhen, werden für die<br />

späteren Nutzergruppen separate Benutzeroberflächen [P113] erstellt. Oberflächen <strong>und</strong><br />

Rollen, für die sie bestimmt sind, werden nachfolgend aufgeführt.<br />

Benutzeroberfläche Rollen<br />

Löschzug<br />

Kleiderkammer<br />

Sachausstattung<br />

Löschzug Mitglieder anzeigen<br />

Löschzug Mitglieder verwalten<br />

Löschzug Bestellung erstellen<br />

Löschzug Bestellung genehmigen<br />

Kleiderkammer Bestellung erstellen<br />

Leiter Ausstattung Leiter Ausstattung<br />

Wehrführer Wehrführer<br />

Administration Administration<br />

Tabelle 16: Benutzeroberflächen<br />

Übermittler an Stadt<br />

Sammelbestellung<br />

ausdrucken<br />

Kleiderkammer Bestellung genehmigen<br />

Sachausstattung Bestellung erstellen<br />

Sachausstattung Bestellung genehmigen<br />

26


Lars Meisegeier FH-Düsseldorf<br />

Bei den Benutzeroberflächen, die für mehrere Rollen bestimmt sind, werden jeweils nur<br />

die Bedienelemente angezeigt, die entsprechend der jeweiligen Rolle genutzt werden<br />

können [P114].<br />

4 ENTWURF<br />

In der Entwurfsphase erfolgt die Entscheidung, welche Architektur <strong>und</strong> Technologien für<br />

die anschließende Implementierung verwendet werden sollen.<br />

4.1 Architektur<br />

Die Freiwillige Feuerwehr Leichlingen besitzt mit ihren vier Löschzügen eine geografisch<br />

dezentrale Struktur. Um dieser Struktur auch in der Abwicklung von Geschäftsprozessen<br />

gerecht zu werden, bietet sich die Client-/Serverarchitektur an. Sie ermöglicht es,<br />

Anwendung <strong>und</strong> Daten an einem zentralen Ort, dem Server, zu konzentrieren was die<br />

Konsistenz der Daten gewährleistet. Gleichzeitig kann die Anwendung von mehreren<br />

Clients aus unabhängig vom räumlichen Standort genutzt werden.<br />

4.2 Server<br />

Wichtige Kriterien für einen stabilen <strong>und</strong> sicheren Betrieb der späteren Anwendung ist die<br />

Auswahl <strong>einer</strong> zuverlässigen Servertechnologie. Sie bildet zugleich die Basis für die<br />

spätere Entwicklung <strong>und</strong> muss daher auch unter Berücksichtigung dieses Aspekts<br />

sorgsam ausgewählt werden.<br />

Java bietet auf diesem Gebiet mit s<strong>einer</strong> Spezifikation der Enterprise Edition (EE) ein<br />

umfangreiches Framework für dieses Aufgabengebiet. Es bietet Unterstützung für nahezu<br />

alle Technologien, die bei der Entwicklung von modernen, unternehmensweiten<br />

Anwendungen gebraucht werden. Dazu gehören neben einem Webserver mit<br />

entsprechenden Frontend Techniken, Persistenz-, Transaktions- <strong>und</strong><br />

Authentifizierungsmechanismen. Zudem werden zahlreiche weitere Dienste wie z.B. Web<br />

Services, Mail <strong>und</strong> Namensdienste angeboten. Die Java EE ist leicht erweiterbar <strong>und</strong> hat<br />

sich in der Praxis bewährt, weshalb sie verbreitet eingesetzt wird (vgl.<br />

jcp.org/en/jsr/detail?id=244).<br />

Java als zugr<strong>und</strong>e liegende Programmiersprache gewährleistet darüber hinaus durch sein<br />

Konzept der virtuellen Maschine eine hohe Sicherheit <strong>und</strong> Stabilität beim späteren<br />

Betrieb. Prozesse <strong>und</strong> Objekte der realen Welt lassen sich Dank der gleichzeitigen<br />

27


Lars Meisegeier FH-Düsseldorf<br />

Objektorientiertheit leicht im Programmcode nachbilden.<br />

Ausgehend von der Analyse hat sich ergeben, dass nur einige Teilfunktionen <strong>einer</strong> Java<br />

EE benötigt werden. Daher wird statt <strong>einer</strong> vollständigen Java EE ein e, modulares<br />

System verwendet deren Kern der Webserver bildet. Alle Funktionen, die zusätzlich<br />

benötigt werden, können dabei leicht hinzugefügt werden.<br />

Für dieses Vorgehen wurde der Java EE konforme Webserver Tomcat ausgewählt. Er ist<br />

ein vielfach eingesetzter Server <strong>und</strong> wird daher von vielen Projekten <strong>und</strong><br />

Entwicklungstools unterstützt. Seine Konformität garantiert zudem, das entwickelte<br />

Anwendungen auf allen Java EE konformen Servern betrieben werden können (vgl.<br />

tomcat.apache.org).<br />

4.3 Persistenz<br />

Ein Vielzahl von Daten, die beim Betrieb der Anwendung entstehen, müssen persistent<br />

abgespeichert werden. Für diese Aufgabe wird eine Datenbank eingesetzt.<br />

Datenbanken stellen die Integrität der erfassten Daten sicher <strong>und</strong> bieten die Möglichkeit<br />

<strong>einer</strong> gezielten Suche. Zudem sind sie in der Lage, eine Vielzahl gleichzeitiger Zugriffe zu<br />

gestatten <strong>und</strong> garantieren mit ihren Mechanismen, wie Transaktionen <strong>und</strong> Sperren, die<br />

Konsistenz der Daten.<br />

Als Datenbank wurde die Oracle 10g Express ausgewählt. Sie ist eine kostenfreie,<br />

relationale Datenbank von einem der führenden Hersteller <strong>und</strong> besitzt einen erweiterten<br />

Funktionsumfang zu dem u.a. ein eigenes Web-Interface gehört. Für die Entwicklung<br />

stehen darüber hinaus viele weitere Datenbanktools bereit (vgl.<br />

www.oracle.com/technology/products/database/xe/).<br />

Daten werden in der Programmiersprache Java durch Objekte repräsentiert. Um sie in<br />

<strong>einer</strong> relationalen Datenbank ablegen zu können, müssen sie daher konvertiert werden.<br />

Diese Aufgabe können objektrelationale Mapper (OR-Mapper) übernehmen.<br />

OR-Mapper erlauben es durch Konfiguration festzulegen, wie Objekte in <strong>einer</strong> Datenbank<br />

abgelegt werden. Dazu wird definiert, in welcher Tabelle Objekte <strong>einer</strong> Klasse abgelegt<br />

werden bzw. in welche Spalten die entsprechenden Objekt-Attribute. Sollen Objekte in der<br />

Datenbank gespeichert werden, übergibt man sie dem Mapper. Dieser sorgt eigenständig<br />

für die richtige Umsetzung entsprechend der Konfiguration. Umgekehrt wandelt der<br />

Mapper beim Lesen aus der Datenbank die Daten wieder zurück in ein Objekt.<br />

Für das OR-Mapping wird das Framework Hibernate eingesetzt. Es ist ein verbreitet<br />

28


Lars Meisegeier FH-Düsseldorf<br />

eingesetztes Framework, das kontinuierlich weiterentwickelt wird (vgl. hibernate.org).<br />

Hibernate lässt sich durch entsprechende Konfiguration mit allen gängigen Datenbank<br />

nutzen. Die Datenbankanbindung (Connection) verwaltet Hibernate dabei für die gesamte<br />

Anwendung eigenständig. Soll ein Datenbankzugriff erfolgen, so wird dafür das Hibernate<br />

Session-Konzept genutzt. Sessions können an beliebiger Stelle gestartet werden <strong>und</strong><br />

ermöglichen das Ablegen <strong>und</strong> Auslesen von Objekten in der Datenbank (siehe oben).<br />

Diese Zugriffe können desweiteren mittels Transaktionen isoliert <strong>und</strong> atomar erfolgen.<br />

4.4 Model-View-Controller (MVC)<br />

Ziel bei der <strong>Realisierung</strong> moderner, grafischer Anwendung ist die Umsetzung des Model-<br />

View-Controller Paradigmas. Unter dem Modell versteht man dabei die Daten, die z.B.<br />

persistent abgelegt werden. View repräsentiert die grafische Benutzerschnittstelle <strong>und</strong> der<br />

Controller ist für die Verknüpfung von beiden zuständig. Dies klare Trennung erlaubt es,<br />

Änderungen an <strong>einer</strong> der drei Ebenen vorzunehmen, ohne die anderen modifizieren zu<br />

müssen. Wird z.B. die View verändert, hat dies keine Auswirkungen auf das Modell oder<br />

den Controller. Für die Umsetzung von MVC wird JavaServer Faces verwendet (vgl.<br />

www.jcp.org/en/jsr/detail?id=127).<br />

JavaServer Faces sind Teil der Java EE Spezifikation <strong>und</strong> speziell für die <strong>Realisierung</strong><br />

von MVC bei Web-Applikationen konzipiert. Sie ermöglichen es, die View, d.h.<br />

Internetseiten, zu erstellen, ohne HTML zu benutzen. Dies wird durch Einführen <strong>einer</strong><br />

Abstraktionsebene erreicht, in der statt HTML- 'JavaServer Faces'-Komponenten<br />

verwendet werden. Erst zur Laufzeit werden diese Komponenten von einem Renderer in<br />

HTML umgewandelt. Somit ist es möglich, das Aussehen von Seiten dynamisch<br />

anzupassen. Erfolgt der Aufruf <strong>einer</strong> Internetseite, z.B. über ein Smartphone, erscheint sie<br />

anders als bei einem PC (Haiges/May 2004, java.sun.com/javaee/).<br />

Innerhalb dieser Abstraktionsebene ist es möglich, auf spezielle Java-Objekte, die<br />

ManagedBeans, zuzugreifen. ManagedBeans entsprechen dem Controller <strong>und</strong> sind<br />

gewöhnliche JavaBeans, die durch Eintrag in <strong>einer</strong> Konfigurationsdatei von JavaServer<br />

Faces instanziiert werden können. Somit ist es letztlich möglich, diesen Mechanismus für<br />

den Zugriff auf beliebige Objekte zu nutzen. Aus diesem Gr<strong>und</strong> werden einfache Java-<br />

Objekte für das Modell verwendet.<br />

JavaServer Faces bieten zudem viele weitere Funktionen, wie z.B. die Seitennavigation in<br />

<strong>einer</strong> Konfigurationsdatei zu bündeln, statt fest in jeder Seite zu hinterlegen. Auch die<br />

Validierung von Eingaben <strong>und</strong> das Generieren von Fehlermeldungen werden unterstützt.<br />

29


Lars Meisegeier FH-Düsseldorf<br />

Um diese Technologie nutzen zu können, wird MyFaces, das eine Implementierung der<br />

JavaServer Faces Spezifikation darstellt, verwendet (vgl. myfaces.apache.org).<br />

Die Komponenten der JavaServer Faces entsprechen den von HTML (Tabellen, Buttons,<br />

etc.). Trinidad (vorher Oracle ADF Faces) erweitert diesen Komponentenumfang um über<br />

h<strong>und</strong>ert weitere, z.B. für Farb- <strong>und</strong> Datumsauswahl. Daher wird auch Trinidad mit<br />

eingeb<strong>und</strong>en<br />

(vgl. www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf).<br />

4.5 Portable Document Format (PDF)<br />

Um Daten der Anwendung, wie z.B. Bestellungen, in eine druckbare Form zu bekommen,<br />

werden aus ihnen PDF-Dokumente erstellt.<br />

PDF-Dokumente eignen sich hierfür besonders gut, da sie ein einheitliches Aussehen,<br />

unabhängig vom verwendeten Betrachtungsprogramm, garantieren. Dank der weiten<br />

Verbreitung des PDF-Formats ist somit auch das Ausdrucken unter verschiedenen<br />

Betriebssystemen problemlos möglich.<br />

Für die Umwandlung von Java-Objekten in PDF-Dokumente wird der Formatting Objects<br />

Processor (FOP) verwendet. FOP ermöglicht es, 'Extensible Stylesheet Language –<br />

Formatting Objects' (XSL-FO) in verschiedene, unabhängige Ausgabeformate zu<br />

konvertieren u.a. PDF, PS, SVG, <strong>und</strong> TXT (vgl. xmlgraphics.apache.org/fop).<br />

XSL-FO-Objekte werden dabei mit Hilfe der 'XML Stylesheet Language for<br />

Transformations' (XSLT) aus 'Extensible Markup Language' (XML) Dokumenten generiert.<br />

Diese Aufgabe übernimmt die 'Java API for XML Processing' (JAXP).<br />

Die notwendige Konvertierung von Java-Objekten in XML-Dokumente wird wiederum über<br />

die 'Simple API for XML' (SAX) erreicht.<br />

SAX XSLT<br />

FOP<br />

Java XML XSL-FO PDF<br />

JAXP<br />

Abbildung 25: Generierung eines PDF-Dokuments<br />

30


Lars Meisegeier FH-Düsseldorf<br />

4.6 E-Mail<br />

Java stellt für den Versand von E-Mails die JavaMail API bereit. Ihre direkte Nutzung ist<br />

jedoch nicht sehr komfortabel. Daher wird für den Zugriff auf die JavaMail API Commons-<br />

Email verwendet.<br />

Commons-Email stellt eine komfortablere Schnittstelle bereit <strong>und</strong> hilft so den<br />

Programmcode zu reduzieren. Dies verringert die Entwicklungszeit <strong>und</strong> erhöht die<br />

Lesbarkeit des Codes.<br />

(vgl. java.sun.com/products/javamail, jakarta.apache.org/commons/email)<br />

4.7 Logging<br />

Das Protokollieren von Log-Meldungen ist eine wichtige Voraussetzung um Fehler, die im<br />

späteren Betrieb auftreten können, nachzuvollziehen. Zur <strong>Realisierung</strong> des Loggings gibt<br />

es für Java viele Bibliotheken, wobei alle einen vergleichbaren Funktionsumfang anbieten.<br />

Um sich nicht fest an eine Bibliothek zu binden, wird daher Commons-Logging verwendet<br />

(vgl. jakarta.apache.org/commons/logging).<br />

Commons-Logging erlaubt es, durch Änderung der Konfiguration, die verwendete Logging<br />

Bibliothek auszutauschen, ohne den Programmcode modifizieren zu müssen. Dies wird<br />

dadurch erreicht, dass Commons-Logging dem Nutzer eine feste Schnittstelle anbietet<br />

<strong>und</strong> selbst nur für die Umsetzung dieser auf die Logging Bibliothek entsprechend der<br />

Konfiguration sorgt.<br />

31


Lars Meisegeier FH-Düsseldorf<br />

4.8 Übersicht<br />

Die nachfolgende Grafik illustriert die ausgewählten Technologien in Bezug auf ihre<br />

Einordnung in die Architektur.<br />

5 IMPLEMENTIERUNG<br />

In der Implementierungsphase werden die in der Analyse festgelegten Funktionen mit<br />

denen im Entwurf ausgewählten Techniken umgesetzt. Nachfolgend werden einige<br />

Strategien <strong>und</strong> spezielle Techniken erläutert, die dabei verwendet wurden.<br />

5.1 Webprogrammierung<br />

Client/Server Web-Anwendungen unterscheiden sich in der Programmierung gr<strong>und</strong>legend<br />

von herkömmlichen Anwendungen. Web-Anwendungen werden für die Verarbeitung von<br />

vielen, gleichzeitigen Anfragen ausgelegt. Dabei erfolgt die gesamte Verarbeitung,<br />

inklusive der Generierung der grafischen Benutzerschnittstelle für den Client, auf dem<br />

Server.<br />

Client<br />

Server<br />

Datenbank<br />

Browser<br />

Tomcat<br />

Oracle 10g<br />

Express<br />

JavaServer Faces<br />

Hibernate<br />

Clients nutzen zumeist einen Web-Browser um Requests (Anfragen) an den Server zu<br />

senden bzw. die entsprechende Response (Antworte) darzustellen. Die Kommunikation<br />

zwischen Client <strong>und</strong> Server erfolgt dabei in der Regel über das HTTP-Protokoll.<br />

32


Lars Meisegeier FH-Düsseldorf<br />

HTTP ist ein statusloses Protokoll, d.h. jeder Request wird separat behandelt. Es gibt<br />

keine Informationen über vorherige oder nachfolgende. Somit ist es dem Server nicht<br />

möglich, Anfragen zuzuordnen, weshalb alle gleich behandelt werden. Heute übliche<br />

Funktionen, wie z.B. ein virtueller Warenkorb, lassen sich so nicht realisieren.<br />

Aus diesem Gr<strong>und</strong> wurde das Konzept der Session 5 entworfen. Sendet ein Benutzer<br />

einen ersten Request an den Server, so startet dieser eine Session für ihn. Diese Session<br />

bleibt über die Request-Verarbeitung hinaus auf dem Server bestehen. Erst durch<br />

explizites Beenden durch den Benutzer oder Ablauf eines Timeouts wird die Session vom<br />

Server verworfen.<br />

Um dem Benutzer bei weiteren Requests seine Session zuordnen zu können, sendet der<br />

Server ein Cookie an den Client Browser. Dieses kann er bei nachfolgenden Requests<br />

wieder auslesen. Sollte der Browser keine Cookies akzeptieren, kann als Alternative URL-<br />

Rewriting betrieben werden (Hall/Brown 2004).<br />

Daten können somit individuell für jeden Benutzer über mehrere Requests an eine<br />

Session auf dem Server geb<strong>und</strong>en werden. Abhängig von den Nutzerzahlen <strong>und</strong><br />

Datenmengen <strong>einer</strong> Session stellt dies jedoch eine große Belastung für den Server dar.<br />

Richtlinie für die Implementierung ist daher, die Verarbeitung wenn möglich innerhalb<br />

eines Request vorzunehmen. Daten werden nur an die Session geb<strong>und</strong>en, wenn<br />

unbedingt erforderlich.<br />

Die Bearbeitung innerhalb eines Request führt u.a. zu vermehrten Datenbankzugriffen.<br />

Eine Performance-Verbesserung kann an dieser Stelle durch den Einsatz des Hibernate<br />

Level Zwei Caches erreicht werden.<br />

5.2 Hibernate <strong>und</strong> JavaServer Faces<br />

Um Objekte mittels Hibernate aus <strong>einer</strong> Datenbank zu lesen, werden entsprechende<br />

Anfragen innerhalb <strong>einer</strong> Hibernate Session durchgeführt. Sessions werden entsprechend<br />

der Vorgabe, alle Anfragen innerhalb eines Request zu bearbeiten, für jede Anfrage neu<br />

erzeugt (session-per-request) (Bauer/King 2005).<br />

Die angeforderten Objekte werden anschließend mit ihren zugehörigen Attributen zurück-<br />

gegeben. Besitzen die angeforderten Objekte Collections oder Verweise auf andere<br />

Objekte in der Datenbank, so werden diese jedoch noch nicht mitgeladen. Erst bei einem<br />

Zugriff auf sie erkennt Hibernate ihr Fehlen <strong>und</strong> lädt sie eigenständig nach. Dieses<br />

5 Der hier verwendete Begriffe der Session hat keinen Bezug zu den Hibernate Session Konzept<br />

aus Kapitel 4.3 Seite 28.<br />

33


Lars Meisegeier FH-Düsseldorf<br />

Verhalten wird als Lazy Load bezeichnet <strong>und</strong> ist nur möglich, solange die ursprüngliche<br />

Session noch geöffnet ist (Beeger/Haase,/Roock/Sanitz 2006).<br />

Erfolgt ein Request auf eine JavaServer Faces Seite, so werden die entsprechenden<br />

ManagedBeans instanziiert <strong>und</strong> die gewünschten Attribute für die spätere HTML<br />

-Generierung ausgelesen.<br />

Möchte man über JavaFaces direkt auf Objekte zugreifen, die von Hibernate geladen<br />

werden, ergibt sich ein Problem. Wird die entsprechende Hibernate Session zu früh<br />

geschlossen, funktioniert der Lazy Load Mechanismus nicht mehr.<br />

Um dies zu verhindern wird der Web-Server so konfiguriert, dass er nach Abarbeitung<br />

jedes Requests automatisch die entsprechenden Hibernate Sessions schließt. Dies<br />

erlaubt es, Sessions an beliebiger Stelle zu öffnen <strong>und</strong> das Schließen dem Server zu<br />

überlassen. Somit ist die Kombination aus Hibernate <strong>und</strong> JavaServer Faces problemlos<br />

möglich (Müller 2006).<br />

34


Lars Meisegeier FH-Düsseldorf<br />

6 SCHLUSSBETRACHTUNG<br />

Diese Arbeite ermöglichte es mir, die aus dem Studium bekannten Phasen des<br />

Softwareentwicklungsprozesses unter sehr realistischen Bedingungen eigenständig zu<br />

durchlaufen. Dank weitgehender Freiheiten <strong>und</strong> Eigenverantwortlichkeit für die gesamte<br />

Arbeit konnte ich dabei sehr viel wertvolle Praxiserfahrung sammeln. Die Betreuung durch<br />

ein IT-Consulting Unternehmen garantierte dabei das professionelle Vorgehen <strong>und</strong> die<br />

Verwendung moderner Technologien.<br />

Ich hatte die Möglichkeit, die Problemstellung selbstständig in Gesprächen mit dem<br />

K<strong>und</strong>en zu erfassen <strong>und</strong> darauf aufbauend, eigenständig die Analyse durchzuführen.<br />

Die Analyse erforderte eine Vielzahl von weitreichenden Überlegungen, um die spätere<br />

Skalierbarkeit zu gewährleisten. Gleichzeitig wurde dabei die technische Realisierbarkeit<br />

nicht außer acht gelassen.<br />

Aufgr<strong>und</strong> der guten, im Studium erworbenen Gr<strong>und</strong>kenntnisse über Betriebssysteme,<br />

verteilte Systeme, Netzwerke, Protokolle, Objektorientierung <strong>und</strong> Java war ich in der<br />

Lage, mich schnell in neue Technologien einzuarbeiten <strong>und</strong> deren Nutzen zu erkennen.<br />

Die verwendeten Technologien ermöglichten es mir daher, eine moderne, skalierbare <strong>und</strong><br />

durchgehend objektorientierte Softwarearchitektur zu entwerfen. Der gesamte<br />

Entwicklungsprozess konnte Dank des in die Entwicklungsumgebung integriertem UML-<br />

Plugin durchgehend mit UML Unterstützung erfolgen.<br />

Bedingt durch den zeitlich eng begrenzten Rahmen schließt diese Arbeit mit der<br />

Implementierung ab. Der Entwicklungsprozess, der sich gerade in der Validerung befindet<br />

wird jedoch weitergeführt, so dass nach erfolgreicher Validerungs- <strong>und</strong> Test-Phase die<br />

Anwendung in Betrieb genommen werden kann. Auch für später mögliche Erweiterungen<br />

ist die Anwendung durch ihren <strong>skalierbaren</strong> Entwurf <strong>und</strong> die verwendeten Techniken gut<br />

gerüstet.<br />

35


Lars Meisegeier FH-Düsseldorf<br />

7 QUELLEN<br />

Beeger, Robert F. / Haase, Arno / Roock, Stefan / Sanitz, Sebastian (2006): Hibernate –<br />

Persistenz in Java-Systemen mit Hilbernte 3, dpunkt.verlag GmbH, Heidelberg.<br />

Bauer, Christian / King, Gavin (2005): Hibernate in Action, Manning Publications Co.,<br />

Greenwich.<br />

Haiges, Sven / May, Marcel (2004): JavaServer Faces – Web Development mit dem<br />

Standard-Framework, Software & Support Verlag GmbH, Frankfurt.<br />

Hall, Marty / Brown, Larry (2004): core Servlets <strong>und</strong> JavaServer Pages, Markt + Technik<br />

Verlag, München.<br />

Müller, Bernd (2006) Kombination von JSF <strong>und</strong> Hibernate mit dem „Open Session in<br />

View“ Pattern. In: Javamagazin 7/06, Seite 70-72.<br />

INTERNET-QUELLEN<br />

ADF Faces / Trinidad<br />

http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/doc/i<br />

ndex.html#Documentation (10.10.2006)<br />

AMEfire<br />

http://www.amefire.de (10.10.2006)<br />

Commons-Email<br />

http://jakarta.apache.org/commons/email/ (10.10.2006)<br />

Commons-Logging<br />

http://jakarta.apache.org/commons/logging/ (10.10.2006)<br />

Eclipse Web Tools Platform<br />

http://www.eclipse.org/webtools/ (10.10.2006)<br />

Formatting Objects Processor<br />

http://xmlgraphics.apache.org/fop/ (10.10.2006)<br />

http://xmlgraphics.apache.org/fop/0.92/embedding.html (10.10.2006)<br />

36


Lars Meisegeier FH-Düsseldorf<br />

Hibernate<br />

http://www.hibernate.org/ (10.10.2006)<br />

Java EE 5 Tutorial<br />

http://java.sun.com/javaee/reference/tutorials/index.jsp (10.10.2006)<br />

JavaMail API<br />

http://java.sun.com/products/javamail/ (10.10.2006)<br />

JavaServer Faces Specification<br />

http://www.jcp.org/en/jsr/detail?id=127 (10.10.2006)<br />

JavaTM Platform, Enterprise Edition 5 (Java EE 5) Specification<br />

http://jcp.org/en/jsr/detail?id=244 (10.10.2006)<br />

MyFaces<br />

http://myfaces.apache.org (10.10.2006)<br />

Omondo EclipseUML Plugin<br />

www.omondo.com (10.10.2006)<br />

Oracle Database 10g Express Edition<br />

http://www.oracle.com/technology/products/database/xe/index.html (10.10.2006)<br />

Tomcat<br />

http://tomcat.apache.org (10.10.2006)<br />

37


Lars Meisegeier FH-Düsseldorf<br />

8 ANHANG<br />

Im Anhang wird der Quelltext der Anwendung nicht aufgeführt, da er r<strong>und</strong> 24.600 Zeilen<br />

umfasst (Java: 11.562, XML: 5.726, JSP: 7.335). Stattdessen wird im Folgendem der<br />

Aufbau anhand von Klassendiagramme dargestellt. Die gesamte Anwendung inklusive<br />

Quelltext ist auf <strong>einer</strong> CD-ROM beigelegt.<br />

38


Lars Meisegeier FH-Düsseldorf<br />

Abbildung 26: Klassendiagramm Mitglied<br />

39


Lars Meisegeier FH-Düsseldorf<br />

Abbildung 27: Klassendiagramm Löschzug<br />

Abbildung 28: Klassendiagramm Bestellung<br />

40


Lars Meisegeier FH-Düsseldorf<br />

Abbildung 29: Klassendiagramm Artikel<br />

Abbildung 30: Klassendiagramm ManagedBeans Mitglied<br />

41


Lars Meisegeier FH-Düsseldorf<br />

Abbildung 31: Klassendiagramm ManagedBeans Bestellung<br />

Abbildung 32: Klassendiagramm ManagedBeans Lieferant<br />

42


Lars Meisegeier FH-Düsseldorf<br />

Abbildung 33: Klassendiagramm ManagedBeans Artikel<br />

Abbildung 34: Klassendiagramm PDF Bestellung<br />

43


Lars Meisegeier FH-Düsseldorf<br />

9 SELBSTSTÄNDIGKEISTERKLÄRUNG<br />

Hiermit versichere ich, dass ich diese Arbeit selbstständig angefertigt habe <strong>und</strong> außer den<br />

im Quellen- <strong>und</strong> Literaturverzeichnis, sowie in den Anmerkungen genannten Hilfsmitteln<br />

keine weiteren benutzt habe. Alle Stellen der Arbeit, die anderen Werken dem Wortlaut<br />

oder dem Sinn nach entnommen sind, habe ich unter Angabe der Quellen als Entlehnung<br />

kenntlich gemacht.<br />

________________________<br />

Unterschirft<br />

44

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!