finallize the documentation
This commit is contained in:
parent
5729b5d17a
commit
52bc754983
|
@ -14,12 +14,14 @@
|
|||
|
||||
* Einführung
|
||||
|
||||
Aufgabe war es ein System aufzubauen welches Hotelbetreibern erlaubt ihre
|
||||
freien Zimmer auf einem zentralen System zu melden. Das System sollte dann bei
|
||||
angeschlossenen Fluggesellschaften über einen WCF Service nach passenden Flügen
|
||||
suchen und diese Verbindung dann als ein Kombiangebot in der Datenbank
|
||||
speichern. Diese Kombiangebot sollte dann von einem Kunden mithilfe einer
|
||||
WinForm/WPF Applikation gebucht werden können.
|
||||
Aufgabe war es ein System aufzubauen, welches Hotelbetreibern und
|
||||
Fluggesellschaften auf einfach Weise Last Minute Angebote zu erstellen und auf
|
||||
den Markt zu bringen.
|
||||
|
||||
Das System sollte dann bei angeschlossenen Fluggesellschaften über einen WCF
|
||||
Service nach passenden Flügen suchen und diese Verbindung dann als ein
|
||||
Kombiangebot in der Datenbank speichern. Diese Kombiangebot sollte dann von
|
||||
einem Kunden mithilfe einer WinForm/WPF Applikation gebucht werden können.
|
||||
|
||||
* Ziele
|
||||
|
||||
|
@ -52,13 +54,13 @@ Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet.
|
|||
** Verteilungsdiagramm
|
||||
|
||||
Das Verteilungsdiagramm, Abbildung:([[fig:verteilungsdiagramm]]), wurde im
|
||||
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten wenn die
|
||||
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten, wenn die
|
||||
Plattform als ASP.NET Applikation erstellt wird und somit auf dem IIS Web
|
||||
Server läuft. Da die Plattform das zentrale System ist, ist es für die
|
||||
Normfallstudie auch sinnvoll wenn der Datenbank Server auf dem gleichen System
|
||||
Normfallstudie auch sinnvoll, wenn der Datenbank Server auf dem gleichen System
|
||||
läuft wie die Plattform. In einer realen Umgebung müsste hier allenfalls eine
|
||||
separater Server aufgesetzt werden. Der Airline Service und der WPF Client
|
||||
wurden entsprechend der Vorgagben als externe Applikationen geplant.
|
||||
wurden entsprechend der Vorgaben als externe Applikationen geplant.
|
||||
|
||||
#+LATEX:\newpage
|
||||
#+LATEX:\begin{landscape}
|
||||
|
@ -71,11 +73,13 @@ wurden entsprechend der Vorgagben als externe Applikationen geplant.
|
|||
|
||||
** Relationales Modell
|
||||
|
||||
In der Abbildung:([[fig:rm]]) ist das relationale Modell zu sehen welches durch
|
||||
den Studenten vorgängig zur Umsetzung erstellt wurde. In der
|
||||
Abbildung:([[fig:rmentity]]) ist die das relationale Modell zu sehen welches dann
|
||||
durch das Entity Framework effektiv in der Datenbank erstellt wurde.
|
||||
|
||||
Das relationale Modell, Abbildung:([[fig:rm]]), wurde durch den Studenten vor gängig
|
||||
zur Umsetzung erstellt. In der Abbildung:([[fig:rmentity]]) ist die das relationale
|
||||
Modell zu sehen welches, dann durch das Entity Framework effektiv in der
|
||||
Datenbank erstellt wurde. Wie man sieht, sind sich die beiden Diagramme sehr
|
||||
ähnlich. Entity Framework erstellt beim Code First Ansatz die Datenbank
|
||||
ziemlich genau so, wie man sie auch von Hand erstellen würde. Zumindest im Bezug
|
||||
auf die Tabellen.
|
||||
|
||||
#+LATEX:\newpage
|
||||
#+LATEX:\begin{landscape}
|
||||
|
@ -101,14 +105,14 @@ Applikationen zugewiesen. Dies sollte dazu dienen die Zuständigkeiten zu regeln
|
|||
|
||||
** Airline Service
|
||||
|
||||
Da die Airlnes alle Flugdaten zur Verfügung haben erschien es sinnvoll das
|
||||
diese einen Service bereitstellen welcher die Parameter Anzahl Passiegere,
|
||||
Da die Airlines alle Flugdaten zur Verfügung haben erschien es sinnvoll das
|
||||
diese einen Service bereitstellen, welcher die Parameter Anzahl Passagiere,
|
||||
Start- und Enddatum sowie die Destination aufnimmt. Der Service sollte dann im
|
||||
Hintergrund automatisch die bereits besetzten Flüge und Flüge welche nicht auf
|
||||
die restlichen Paramter passen ausfiltern und nur passende Flüge ausgeben.
|
||||
Hintergrund automatisch die bereits besetzten Flüge und Flüge, welche nicht auf
|
||||
die restlichen Parameter passen ausfiltern und nur passende Flüge ausgeben.
|
||||
|
||||
Desweiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
|
||||
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signature
|
||||
Des Weiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
|
||||
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signatur
|
||||
des Airline Services. Respektive des Interfaces davon.
|
||||
|
||||
#+BEGIN_EXPORT latex
|
||||
|
@ -126,7 +130,7 @@ Flight BookFlight(Flight flight, int numberOfSeats);
|
|||
Flight CancelFlight(Flight flight, int numberOfSeats);
|
||||
\end{sexylisting}
|
||||
#+END_EXPORT
|
||||
|
||||
#+latex: \newpage
|
||||
Somit wurden dem Airline Service folgende Ziele zugewiesen:
|
||||
- Es dürfen nur freie Flüge in Kombiangeboten vorkommen.
|
||||
- Start- und Zielort des Fluges im Kombiangebot müssen passend zum Hotelzimmer
|
||||
|
@ -136,17 +140,17 @@ Somit wurden dem Airline Service folgende Ziele zugewiesen:
|
|||
** Plattform
|
||||
|
||||
Die Plattform stellt den Grossteil der Logik und Funktionen bereit. Sie sollte
|
||||
einerseits ein Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
|
||||
einerseits eine Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
|
||||
Hotels erfassen könne sowie das Matching zwischen Hotelzimmer und Flügen
|
||||
erledigen.
|
||||
|
||||
Zusätzlich sollte sie die erstellten Komiangebote and den WPF Client
|
||||
weiterleiten können. Auch das entgegennehmen der Bestellungen sowie
|
||||
Zusätzlich sollte sie die erstellten Kombiangebote und den WPF Client
|
||||
weiterleiten können. Auch das Entgegennehmen der Bestellungen sowie
|
||||
Reservationen des WPF Clients entgegennehmen und an den Airline Service
|
||||
weiterleiten. Auch die Überprüfung der Reservationszeit sowie die entsprechende
|
||||
Reakation war für die Plattform geplant.
|
||||
Reaktion war für die Plattform geplant.
|
||||
|
||||
Zu guter letzt sollten dann die reservertierten respektive gebuchten Flüge an
|
||||
Zu guter Letzt sollten dann die reservierten respektive gebuchten Flüge an
|
||||
die passende Airline zur Buchung weitergeleitet werden. Im Falle einer
|
||||
Stornierung des Angebots müsste dann natürlich auch noch der Flug storniert
|
||||
werden.
|
||||
|
@ -173,7 +177,7 @@ sehen.
|
|||
|
||||
#+BEGIN_EXPORT latex
|
||||
\label{plattform}
|
||||
\begin{sexylisting}{Plattfrom Service}
|
||||
\begin{sexylisting}{Plattform Service}
|
||||
[OperationContract]
|
||||
List<SpecialOffer> GetSpecialOffers();
|
||||
[OperationContract]
|
||||
|
@ -191,31 +195,31 @@ List<City> GetCities();
|
|||
\end{sexylisting}
|
||||
#+END_EXPORT
|
||||
|
||||
** TODO WPF Client
|
||||
** WPF Client
|
||||
|
||||
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen
|
||||
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen,
|
||||
welches einem User erlaubt hätte nach Städten und Daten zu filtern und ihm dann
|
||||
die entsprechenden Kombiangebote angezeigt hätte. Das gewünschte Angebot hätte
|
||||
er dann über den WCF Service auf der Plattform reservieren oder direkt buchen
|
||||
können. Zwei frühe Screenshots des Clients sind in der Abbildung:([[wpf1]]) und
|
||||
Abbildung:([[wpf2]]) zu sehen.
|
||||
können. Die folgenden zwei Screenshots, Abbildung:([[fig:wpf1]]) und ([[fig:wpf2]]),
|
||||
zeigen einen frühen Stand des Clients.
|
||||
|
||||
#+CAPTION: früher Screenshot des WPF Clients
|
||||
#+CAPTION: Screenshot des Client Hauptfensters
|
||||
#+ATTR_LATEX: :width .8\textwidth
|
||||
#+NAME: wpf1
|
||||
#+NAME: fig:wpf1
|
||||
[[file:pictures/wpf1.png]]
|
||||
|
||||
#+CAPTION: früher Screenshot des WPF Clients
|
||||
#+ATTR_LATEX: :width .8\textwidth
|
||||
#+NAME: wpf2
|
||||
#+CAPTION: Screenshot der Kundendateneingabeform
|
||||
#+ATTR_LATEX: :width 6cm
|
||||
#+NAME: fig:wpf2
|
||||
[[file:pictures/wpf2.png]]
|
||||
|
||||
* Offene Punkte
|
||||
|
||||
Aufgrund enormen Zeitmangels war es leider nicht möglich das Projekt zu
|
||||
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben werden
|
||||
welche Punkte in welchem Teil des Projektes noch offen sind und nicht
|
||||
fertigstellt oder überhaupt angegangen werden konnten.
|
||||
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben
|
||||
werden, welche Punkte in welchem Teil des Projektes noch offen sind, nicht
|
||||
fertigstellt sind oder überhaupt angegangen werden konnten.
|
||||
|
||||
** Airline Service
|
||||
|
||||
|
@ -225,8 +229,8 @@ zumindest die erwarteten Daten zurück geliefert.
|
|||
|
||||
** Plattform
|
||||
|
||||
Aufgrund eines Bugs welcher auch mit Hilfe des Dozenten nicht behoben werden
|
||||
konnte ist es zur Zeit nicht möglich die Plattform überhaupt zu starten. Das
|
||||
Aufgrund eines Bugs, welcher auch mit Hilfe des Dozenten nicht behoben werden
|
||||
konnte, ist es zurzeit nicht möglich die Plattform überhaupt zu starten. Das
|
||||
Provisionieren der Datenbank schlägt mit dem folgenden Fehler fehl.
|
||||
|
||||
#+CAPTION: Plattform Error
|
||||
|
@ -237,53 +241,79 @@ Airline.ExtensionData in Set Airlines. An Entity with Key (PK) will
|
|||
not round-trip when: Entity is type [Plattform.DB.Airline]
|
||||
#+END_EXAMPLE
|
||||
|
||||
Die Zimmererfassung für die Hotels konnte zuvor jedoch soweit fertigstellt
|
||||
werden. Noch offen sind zur Zeit:
|
||||
Für die Abgabe wurde ein früherer Stand des Codes ausgecheckt, welcher jedoch
|
||||
insgesamt auch nicht so performt wie er sollte. Der Airline Service und die
|
||||
Plattform lassen sich jedoch starten.
|
||||
|
||||
Die Zimmererfassung, Abbildung:([[fig:room]]), für die Hotels konnte zuvor
|
||||
jedoch soweit fertigstellt werden. Der Hotelbetreiber kann den Raumtypen und
|
||||
das Hotel auswählen, sowie die Daten angeben von wann bis wann der Raum frei
|
||||
ist. Sollte der Raumtyp nicht existieren kann er in einer separaten Form,
|
||||
Abbildung:([[fig:roomtype]]), erfasst werden. Gleiches gilt auch für das Hotel,
|
||||
Abbildung:([[fig:hotel]]).
|
||||
|
||||
#+CAPTION: Screenshot der Raumeingabeform
|
||||
#+ATTR_LATEX: :width 5cm
|
||||
#+NAME: fig:room
|
||||
[[file:pictures/selection.png]]
|
||||
|
||||
#+CAPTION: Screenshot der Raumtyp Erstellungsform
|
||||
#+ATTR_LATEX: :width 5cm
|
||||
#+NAME: fig:roomtype
|
||||
[[file:pictures/roomtype.png]]
|
||||
|
||||
#+CAPTION: Screenshot der Hotel Erstellungsform
|
||||
#+ATTR_LATEX: :width 5cm
|
||||
#+NAME: fig:hotel
|
||||
[[file:pictures/hotel.png]]
|
||||
|
||||
|
||||
Bei der Plattform noch offene Punkte sind:
|
||||
- Der Plattform Service ist mangels eines passenden Clients komplett
|
||||
ungetestet. Somit ist unklar ob die Buchung oder Reservationen der
|
||||
ungetestet. Somit ist unklar, ob die Buchung oder Reservationen der
|
||||
Kombiangebote funktionieren.
|
||||
- Flüge werden in der Datenbank gespeichert.
|
||||
- Flüge und ihre Randdaten werden in der Datenbank gespeichert.
|
||||
- Kombiangebote werden in der Datenbank gespeichert.
|
||||
- Zu buchende Flüge werden an die Fluggesellschaften gemeldet.
|
||||
- Zu buchende/stornierende Flüge werden an die Fluggesellschaften gemeldet.
|
||||
- Der Service wird innerhalb von 2s aufgebaut, läuft mindestens 30 Tage durch,
|
||||
bietet eine Verfügbarkeit von 0.995 und ist innerhalb von 0.5s ansprechbar.
|
||||
- Bezahlte Reservationen werden fix gebucht.
|
||||
|
||||
** WPF Client
|
||||
|
||||
Vom WPF Client exisistiert zur Zeit nur das Grundgerüst. Da die Plattform nicht
|
||||
funktionsfähig war hat der Student am WPF Client gearbeitet soweit es möglich
|
||||
Vom WPF Client existiert zurzeit nur das Grundgerüst. Da die Plattform nicht
|
||||
funktionsfähig war, hat der Student am WPF Client gearbeitet soweit es möglich
|
||||
war. Allerdings war dies ohne den WCF Service der Plattform nur sehr beschränkt
|
||||
möglich. Viel mehr als die graphische Oberfläche existiert zur Zeit nicht.
|
||||
möglich. Viel mehr als die grafische Oberfläche existiert zurzeit nicht.
|
||||
|
||||
* Fazit
|
||||
|
||||
Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt
|
||||
bereitstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu
|
||||
passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden
|
||||
müssen.
|
||||
bereitstellt ist eine unglaublich komplexes System. Das Matching der Flüge zu
|
||||
passenden Hotelzimmer hat enorm viele Variablen welche berücksichtigt werden
|
||||
müssen. Auch das Zusammenspiel des Clients zur Plattform bietet durchaus einige
|
||||
Knackpunkte.
|
||||
|
||||
Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden
|
||||
erstellen. Der Student hat weit über 40 Stunden in das Projekt in Heimarbeit
|
||||
investiert und kein brauchbares Ergebnis erziehlen können. Für den Studenten
|
||||
ist dies eine enorm unbefriedigende Situation.
|
||||
erstellen. Der Student hat bereits weit über 40 Stunden in das Projekt in
|
||||
Heimarbeit investiert und kein brauchbares Ergebnis erzielen können. Für den
|
||||
Studenten ist dies eine enorm unbefriedigende Situation.
|
||||
|
||||
Das .NET und Entity Framework bieten einige interessante Features. Allerdings
|
||||
wirkt der Code-First Ansatz von Entity Framework so als ob die ganzen
|
||||
wirkt der Code-First Ansatz von Entity Framework so, als ob die ganzen
|
||||
Überprüfungen in der Applikation gemacht werden sollten anstatt in der
|
||||
Datenbank. Allenfalls ist das noch eine Altlast von früher allerdings gibt es
|
||||
heutzutage Frameworks die dies wesentlich eleganter lösen. Der Student findet
|
||||
dass, das Framework die Datenbank so sauber wie möglich erstellen sollte und es
|
||||
dem Entwickler möglichst einfach machen sollte erweiterte Features der
|
||||
Datenbank zu nutzen.
|
||||
Datenbank. Allenfalls ist das noch eine Altlast von früher. Heutzutage gibt es
|
||||
Frameworks die dies wesentlich eleganter lösen. Der Student findet dass, das
|
||||
Framework die Datenbank so sauber wie möglich erstellen sollte und es dem
|
||||
Entwickler möglichst einfach machen sollte erweiterte Features der Datenbank zu
|
||||
nutzen.
|
||||
|
||||
Auch empfindet der Student C# eher als ungeeignet um innerhalb von so kurzer
|
||||
Zeit ein Projekt zu realiseren. Die Sprache fühlt sich dafür einfach zu sperrig
|
||||
und die zusätzliche Komplexität durch Visual Studio ist leider nicht immer nur
|
||||
Zeit ein Projekt zu realisieren Die Sprache fühlt sich dafür einfach zu sperrig
|
||||
an. Die zusätzliche Komplexität durch Visual Studio ist leider nicht immer nur
|
||||
eine Hilfe.
|
||||
|
||||
WCF Services sind in der Grundidee eine sehr interessante Technologie und der
|
||||
Stundet wird WCF Services oder ähnliche Technologien in der Zukunft sicher
|
||||
inbetracht ziehen. Insbesondere das Teilen der Klassen bietet interessante
|
||||
Student wird WCF Services oder ähnliche Technologien in der Zukunft sicher
|
||||
in Betracht ziehen. Insbesondere das Teilen der Klassen bietet interessante
|
||||
Möglichkeiten.
|
||||
|
|
|
@ -1,16 +1,18 @@
|
|||
|
||||
\section{Einführung}
|
||||
\label{sec:org8fb0510}
|
||||
\label{sec:orgdb3f13c}
|
||||
|
||||
Aufgabe war es ein System aufzubauen welches Hotelbetreibern erlaubt ihre
|
||||
freien Zimmer auf einem zentralen System zu melden. Das System sollte dann bei
|
||||
angeschlossenen Fluggesellschaften über einen WCF Service nach passenden Flügen
|
||||
suchen und diese Verbindung dann als ein Kombiangebot in der Datenbank
|
||||
speichern. Diese Kombiangebot sollte dann von einem Kunden mithilfe einer
|
||||
WinForm/WPF Applikation gebucht werden können.
|
||||
Aufgabe war es ein System aufzubauen, welches Hotelbetreibern und
|
||||
Fluggesellschaften auf einfach Weise Last Minute Angebote zu erstellen und auf
|
||||
den Markt zu bringen.
|
||||
|
||||
Das System sollte dann bei angeschlossenen Fluggesellschaften über einen WCF
|
||||
Service nach passenden Flügen suchen und diese Verbindung dann als ein
|
||||
Kombiangebot in der Datenbank speichern. Diese Kombiangebot sollte dann von
|
||||
einem Kunden mithilfe einer WinForm/WPF Applikation gebucht werden können.
|
||||
|
||||
\section{Ziele}
|
||||
\label{sec:orgd74726f}
|
||||
\label{sec:orgf2b95aa}
|
||||
|
||||
Aus der Aufgabenstellung lassen sich folgende Ziele an die Systeme ableiten.
|
||||
|
||||
|
@ -37,48 +39,50 @@ sein.
|
|||
\end{itemize}
|
||||
|
||||
\section{Analyse}
|
||||
\label{sec:orgcdbca69}
|
||||
\label{sec:orge638b06}
|
||||
|
||||
Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet.
|
||||
|
||||
\subsection{Verteilungsdiagramm}
|
||||
\label{sec:org4e02ec7}
|
||||
\label{sec:org4a69d10}
|
||||
|
||||
Das Verteilungsdiagramm, Abbildung:(\ref{fig:org740a4dc}), wurde im
|
||||
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten wenn die
|
||||
Das Verteilungsdiagramm, Abbildung:(\ref{fig:org9b29fa0}), wurde im
|
||||
Unterricht ausgearbeitet. Der Klasse erschien es am sinnvollsten, wenn die
|
||||
Plattform als ASP.NET Applikation erstellt wird und somit auf dem IIS Web
|
||||
Server läuft. Da die Plattform das zentrale System ist, ist es für die
|
||||
Normfallstudie auch sinnvoll wenn der Datenbank Server auf dem gleichen System
|
||||
Normfallstudie auch sinnvoll, wenn der Datenbank Server auf dem gleichen System
|
||||
läuft wie die Plattform. In einer realen Umgebung müsste hier allenfalls eine
|
||||
separater Server aufgesetzt werden. Der Airline Service und der WPF Client
|
||||
wurden entsprechend der Vorgagben als externe Applikationen geplant.
|
||||
wurden entsprechend der Vorgaben als externe Applikationen geplant.
|
||||
|
||||
\newpage
|
||||
\begin{landscape}
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.9\linewidth]{pictures/verteilungsdiagramm.pdf}
|
||||
\caption{\label{fig:org740a4dc}
|
||||
\caption{\label{fig:org9b29fa0}
|
||||
Verteilungsdiagramm}
|
||||
\end{figure}
|
||||
\end{landscape}
|
||||
\newpage
|
||||
|
||||
\subsection{Relationales Modell}
|
||||
\label{sec:orgfba2251}
|
||||
|
||||
In der Abbildung:(\ref{fig:orgb94eae4}) ist das relationale Modell zu sehen welches durch
|
||||
den Studenten vorgängig zur Umsetzung erstellt wurde. In der
|
||||
Abbildung:(\ref{fig:orga89e980}) ist die das relationale Modell zu sehen welches dann
|
||||
durch das Entity Framework effektiv in der Datenbank erstellt wurde.
|
||||
\label{sec:org14bf1bc}
|
||||
|
||||
Das relationale Modell, Abbildung:(\ref{fig:org54ab668}), wurde durch den Studenten vor gängig
|
||||
zur Umsetzung erstellt. In der Abbildung:(\ref{fig:org8d1bc2d}) ist die das relationale
|
||||
Modell zu sehen welches, dann durch das Entity Framework effektiv in der
|
||||
Datenbank erstellt wurde. Wie man sieht, sind sich die beiden Diagramme sehr
|
||||
ähnlich. Entity Framework erstellt beim Code First Ansatz die Datenbank
|
||||
ziemlich genau so, wie man sie auch von Hand erstellen würde. Zumindest im Bezug
|
||||
auf die Tabellen.
|
||||
|
||||
\newpage
|
||||
\begin{landscape}
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.9\linewidth]{pictures/rm.pdf}
|
||||
\caption{\label{fig:orgb94eae4}
|
||||
\caption{\label{fig:org54ab668}
|
||||
Relationen Modell}
|
||||
\end{figure}
|
||||
\end{landscape}
|
||||
|
@ -89,29 +93,29 @@ Relationen Modell}
|
|||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.9\linewidth]{pictures/rmentity.png}
|
||||
\caption{\label{fig:orga89e980}
|
||||
\caption{\label{fig:org8d1bc2d}
|
||||
Relationen Modell}
|
||||
\end{figure}
|
||||
\end{landscape}
|
||||
\newpage
|
||||
|
||||
\section{Zugewiesene Ziele}
|
||||
\label{sec:org9c0eaf8}
|
||||
\label{sec:org36a3104}
|
||||
|
||||
Im Anschluss zu der Analyse hat der Student die Ziele den einzelnen
|
||||
Applikationen zugewiesen. Dies sollte dazu dienen die Zuständigkeiten zu regeln.
|
||||
|
||||
\subsection{Airline Service}
|
||||
\label{sec:orgf9c1eec}
|
||||
\label{sec:org967e670}
|
||||
|
||||
Da die Airlnes alle Flugdaten zur Verfügung haben erschien es sinnvoll das
|
||||
diese einen Service bereitstellen welcher die Parameter Anzahl Passiegere,
|
||||
Da die Airlines alle Flugdaten zur Verfügung haben erschien es sinnvoll das
|
||||
diese einen Service bereitstellen, welcher die Parameter Anzahl Passagiere,
|
||||
Start- und Enddatum sowie die Destination aufnimmt. Der Service sollte dann im
|
||||
Hintergrund automatisch die bereits besetzten Flüge und Flüge welche nicht auf
|
||||
die restlichen Paramter passen ausfiltern und nur passende Flüge ausgeben.
|
||||
Hintergrund automatisch die bereits besetzten Flüge und Flüge, welche nicht auf
|
||||
die restlichen Parameter passen ausfiltern und nur passende Flüge ausgeben.
|
||||
|
||||
Desweiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
|
||||
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signature
|
||||
Des Weiteren sollte der Airline Service eine Möglichkeit bieten Flüge zu buchen
|
||||
sowie zu stornieren. Im Code Ausschnitt:(\ref{airline}) sieht man die Signatur
|
||||
des Airline Services. Respektive des Interfaces davon.
|
||||
|
||||
\label{airline}
|
||||
|
@ -127,7 +131,7 @@ Flight BookFlight(Flight flight, int numberOfSeats);
|
|||
[OperationContract]
|
||||
Flight CancelFlight(Flight flight, int numberOfSeats);
|
||||
\end{sexylisting}
|
||||
|
||||
\newpage
|
||||
Somit wurden dem Airline Service folgende Ziele zugewiesen:
|
||||
\begin{itemize}
|
||||
\item Es dürfen nur freie Flüge in Kombiangeboten vorkommen.
|
||||
|
@ -137,20 +141,20 @@ sein.
|
|||
\end{itemize}
|
||||
|
||||
\subsection{Plattform}
|
||||
\label{sec:org97f30f6}
|
||||
\label{sec:orgbf967a7}
|
||||
|
||||
Die Plattform stellt den Grossteil der Logik und Funktionen bereit. Sie sollte
|
||||
einerseits ein Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
|
||||
einerseits eine Möglichkeit bieten damit die Hotelbetreiber Zimmer und ihre
|
||||
Hotels erfassen könne sowie das Matching zwischen Hotelzimmer und Flügen
|
||||
erledigen.
|
||||
|
||||
Zusätzlich sollte sie die erstellten Komiangebote and den WPF Client
|
||||
weiterleiten können. Auch das entgegennehmen der Bestellungen sowie
|
||||
Zusätzlich sollte sie die erstellten Kombiangebote und den WPF Client
|
||||
weiterleiten können. Auch das Entgegennehmen der Bestellungen sowie
|
||||
Reservationen des WPF Clients entgegennehmen und an den Airline Service
|
||||
weiterleiten. Auch die Überprüfung der Reservationszeit sowie die entsprechende
|
||||
Reakation war für die Plattform geplant.
|
||||
Reaktion war für die Plattform geplant.
|
||||
|
||||
Zu guter letzt sollten dann die reservertierten respektive gebuchten Flüge an
|
||||
Zu guter Letzt sollten dann die reservierten respektive gebuchten Flüge an
|
||||
die passende Airline zur Buchung weitergeleitet werden. Im Falle einer
|
||||
Stornierung des Angebots müsste dann natürlich auch noch der Flug storniert
|
||||
werden.
|
||||
|
@ -178,7 +182,7 @@ Die Signatur des Plattform Services ist im Codebeispiel:(\ref{plattform}) zu
|
|||
sehen.
|
||||
|
||||
\label{plattform}
|
||||
\begin{sexylisting}{Plattfrom Service}
|
||||
\begin{sexylisting}{Plattform Service}
|
||||
[OperationContract]
|
||||
List<SpecialOffer> GetSpecialOffers();
|
||||
[OperationContract]
|
||||
|
@ -196,49 +200,49 @@ List<City> GetCities();
|
|||
\end{sexylisting}
|
||||
|
||||
\subsection{WPF Client}
|
||||
\label{sec:org51a2b6d}
|
||||
\label{sec:orgd974396}
|
||||
|
||||
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen
|
||||
Der WPF Client sollte nur aus einem simplen graphischen Interface bestehen,
|
||||
welches einem User erlaubt hätte nach Städten und Daten zu filtern und ihm dann
|
||||
die entsprechenden Kombiangebote angezeigt hätte. Das gewünschte Angebot hätte
|
||||
er dann über den WCF Service auf der Plattform reservieren oder direkt buchen
|
||||
können. Zwei frühe Screenshots des Clients sind in der Abbildung:(\ref{fig:orga2f98a0}) und
|
||||
Abbildung:(\ref{fig:org230721d}) zu sehen.
|
||||
können. Die folgenden zwei Screenshots, Abbildung:(\ref{fig:org91c1dd3}) und (\ref{fig:orgc096aff}),
|
||||
zeigen einen frühen Stand des Clients.
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.8\textwidth]{pictures/wpf1.png}
|
||||
\caption{\label{fig:orga2f98a0}
|
||||
früher Screenshot des WPF Clients}
|
||||
\caption{\label{fig:org91c1dd3}
|
||||
Screenshot des Client Hauptfensters}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=.8\textwidth]{pictures/wpf2.png}
|
||||
\caption{\label{fig:org230721d}
|
||||
früher Screenshot des WPF Clients}
|
||||
\includegraphics[width=6cm]{pictures/wpf2.png}
|
||||
\caption{\label{fig:orgc096aff}
|
||||
Screenshot der Kundendateneingabeform}
|
||||
\end{figure}
|
||||
|
||||
\section{Offene Punkte}
|
||||
\label{sec:org514fb95}
|
||||
\label{sec:org49618f0}
|
||||
|
||||
Aufgrund enormen Zeitmangels war es leider nicht möglich das Projekt zu
|
||||
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben werden
|
||||
welche Punkte in welchem Teil des Projektes noch offen sind und nicht
|
||||
fertigstellt oder überhaupt angegangen werden konnten.
|
||||
realisieren. In dieser Sektion soll ein kurzer Überblick darüber gegeben
|
||||
werden, welche Punkte in welchem Teil des Projektes noch offen sind, nicht
|
||||
fertigstellt sind oder überhaupt angegangen werden konnten.
|
||||
|
||||
\subsection{Airline Service}
|
||||
\label{sec:orgeb5d070}
|
||||
\label{sec:org928bde7}
|
||||
|
||||
Soweit der Student dies zum jetzigen Zeitpunkt beurteilen kann ist der Airline
|
||||
Service soweit abgeschlossen. In ersten nicht dokumentierter Tests wurden
|
||||
zumindest die erwarteten Daten zurück geliefert.
|
||||
|
||||
\subsection{Plattform}
|
||||
\label{sec:orgfe10e28}
|
||||
\label{sec:orgbd6a22f}
|
||||
|
||||
Aufgrund eines Bugs welcher auch mit Hilfe des Dozenten nicht behoben werden
|
||||
konnte ist es zur Zeit nicht möglich die Plattform überhaupt zu starten. Das
|
||||
Aufgrund eines Bugs, welcher auch mit Hilfe des Dozenten nicht behoben werden
|
||||
konnte, ist es zurzeit nicht möglich die Plattform überhaupt zu starten. Das
|
||||
Provisionieren der Datenbank schlägt mit dem folgenden Fehler fehl.
|
||||
|
||||
\begin{verbatim}
|
||||
|
@ -248,57 +252,89 @@ Airline.ExtensionData in Set Airlines. An Entity with Key (PK) will
|
|||
not round-trip when: Entity is type [Plattform.DB.Airline]
|
||||
\end{verbatim}
|
||||
|
||||
Die Zimmererfassung für die Hotels konnte zuvor jedoch soweit fertigstellt
|
||||
werden. Noch offen sind zur Zeit:
|
||||
Für die Abgabe wurde ein früherer Stand des Codes ausgecheckt, welcher jedoch
|
||||
insgesamt auch nicht so performt wie er sollte. Der Airline Service und die
|
||||
Plattform lassen sich jedoch starten.
|
||||
|
||||
Die Zimmererfassung, Abbildung:(\ref{fig:orga9e5c58}), für die Hotels konnte zuvor
|
||||
jedoch soweit fertigstellt werden. Der Hotelbetreiber kann den Raumtypen und
|
||||
das Hotel auswählen, sowie die Daten angeben von wann bis wann der Raum frei
|
||||
ist. Sollte der Raumtyp nicht existieren kann er in einer separaten Form,
|
||||
Abbildung:(\ref{fig:orga543285}), erfasst werden. Gleiches gilt auch für das Hotel,
|
||||
Abbildung:(\ref{fig:org3a14ab5}).
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=5cm]{pictures/selection.png}
|
||||
\caption{\label{fig:orga9e5c58}
|
||||
Screenshot der Raumeingabeform}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=5cm]{pictures/roomtype.png}
|
||||
\caption{\label{fig:orga543285}
|
||||
Screenshot der Raumtyp Erstellungsform}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}[htbp]
|
||||
\centering
|
||||
\includegraphics[width=5cm]{pictures/hotel.png}
|
||||
\caption{\label{fig:org3a14ab5}
|
||||
Screenshot der Hotel Erstellungsform}
|
||||
\end{figure}
|
||||
|
||||
|
||||
Bei der Plattform noch offene Punkte sind:
|
||||
\begin{itemize}
|
||||
\item Der Plattform Service ist mangels eines passenden Clients komplett
|
||||
ungetestet. Somit ist unklar ob die Buchung oder Reservationen der
|
||||
ungetestet. Somit ist unklar, ob die Buchung oder Reservationen der
|
||||
Kombiangebote funktionieren.
|
||||
\item Flüge werden in der Datenbank gespeichert.
|
||||
\item Flüge und ihre Randdaten werden in der Datenbank gespeichert.
|
||||
\item Kombiangebote werden in der Datenbank gespeichert.
|
||||
\item Zu buchende Flüge werden an die Fluggesellschaften gemeldet.
|
||||
\item Zu buchende/stornierende Flüge werden an die Fluggesellschaften gemeldet.
|
||||
\item Der Service wird innerhalb von 2s aufgebaut, läuft mindestens 30 Tage durch,
|
||||
bietet eine Verfügbarkeit von 0.995 und ist innerhalb von 0.5s ansprechbar.
|
||||
\item Bezahlte Reservationen werden fix gebucht.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{WPF Client}
|
||||
\label{sec:orgc557364}
|
||||
\label{sec:orga9fb630}
|
||||
|
||||
Vom WPF Client exisistiert zur Zeit nur das Grundgerüst. Da die Plattform nicht
|
||||
funktionsfähig war hat der Student am WPF Client gearbeitet soweit es möglich
|
||||
Vom WPF Client existiert zurzeit nur das Grundgerüst. Da die Plattform nicht
|
||||
funktionsfähig war, hat der Student am WPF Client gearbeitet soweit es möglich
|
||||
war. Allerdings war dies ohne den WCF Service der Plattform nur sehr beschränkt
|
||||
möglich. Viel mehr als die graphische Oberfläche existiert zur Zeit nicht.
|
||||
möglich. Viel mehr als die grafische Oberfläche existiert zurzeit nicht.
|
||||
|
||||
\section{Fazit}
|
||||
\label{sec:orgbf428dc}
|
||||
\label{sec:org9560ca2}
|
||||
|
||||
Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt
|
||||
bereitstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu
|
||||
passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden
|
||||
müssen.
|
||||
bereitstellt ist eine unglaublich komplexes System. Das Matching der Flüge zu
|
||||
passenden Hotelzimmer hat enorm viele Variablen welche berücksichtigt werden
|
||||
müssen. Auch das Zusammenspiel des Clients zur Plattform bietet durchaus einige
|
||||
Knackpunkte.
|
||||
|
||||
Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden
|
||||
erstellen. Der Student hat weit über 40 Stunden in das Projekt in Heimarbeit
|
||||
investiert und kein brauchbares Ergebnis erziehlen können. Für den Studenten
|
||||
ist dies eine enorm unbefriedigende Situation.
|
||||
erstellen. Der Student hat bereits weit über 40 Stunden in das Projekt in
|
||||
Heimarbeit investiert und kein brauchbares Ergebnis erzielen können. Für den
|
||||
Studenten ist dies eine enorm unbefriedigende Situation.
|
||||
|
||||
Das .NET und Entity Framework bieten einige interessante Features. Allerdings
|
||||
wirkt der Code-First Ansatz von Entity Framework so als ob die ganzen
|
||||
wirkt der Code-First Ansatz von Entity Framework so, als ob die ganzen
|
||||
Überprüfungen in der Applikation gemacht werden sollten anstatt in der
|
||||
Datenbank. Allenfalls ist das noch eine Altlast von früher allerdings gibt es
|
||||
heutzutage Frameworks die dies wesentlich eleganter lösen. Der Student findet
|
||||
dass, das Framework die Datenbank so sauber wie möglich erstellen sollte und es
|
||||
dem Entwickler möglichst einfach machen sollte erweiterte Features der
|
||||
Datenbank zu nutzen.
|
||||
Datenbank. Allenfalls ist das noch eine Altlast von früher. Heutzutage gibt es
|
||||
Frameworks die dies wesentlich eleganter lösen. Der Student findet dass, das
|
||||
Framework die Datenbank so sauber wie möglich erstellen sollte und es dem
|
||||
Entwickler möglichst einfach machen sollte erweiterte Features der Datenbank zu
|
||||
nutzen.
|
||||
|
||||
Auch empfindet der Student C\# eher als ungeeignet um innerhalb von so kurzer
|
||||
Zeit ein Projekt zu realiseren. Die Sprache fühlt sich dafür einfach zu sperrig
|
||||
und die zusätzliche Komplexität durch Visual Studio ist leider nicht immer nur
|
||||
Zeit ein Projekt zu realisieren Die Sprache fühlt sich dafür einfach zu sperrig
|
||||
an. Die zusätzliche Komplexität durch Visual Studio ist leider nicht immer nur
|
||||
eine Hilfe.
|
||||
|
||||
WCF Services sind in der Grundidee eine sehr interessante Technologie und der
|
||||
Stundet wird WCF Services oder ähnliche Technologien in der Zukunft sicher
|
||||
inbetracht ziehen. Insbesondere das Teilen der Klassen bietet interessante
|
||||
Student wird WCF Services oder ähnliche Technologien in der Zukunft sicher
|
||||
in Betracht ziehen. Insbesondere das Teilen der Klassen bietet interessante
|
||||
Möglichkeiten.
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
Binary file not shown.
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 34 KiB |
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
Loading…
Reference in New Issue