diff --git a/docs/normfallstudie.org b/docs/normfallstudie.org index 5d92985..488a03c 100644 --- a/docs/normfallstudie.org +++ b/docs/normfallstudie.org @@ -11,3 +11,102 @@ #+startup: align #+bibliography: general/bibliography.bib :end: + +* 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. + +* Ziele + +Aus der Aufgabenstellung lassen sich folgende Ziele an die Systeme ableiten. + +- Die Datenbank wird in SQL Server umgesetzt. +- Als Programmiersprache wird C# mit .NET Framework eingesetzt. +- Hotels können ihre Zimmer inklusive Zusatzinformationen wie Ausstattung etc. + erfassen. +- Flüge werden in der Datenbank gespeichert. +- Die Kombiangebote werden auf der Plattform in der Datenbank gespeichert. +- Ein WinForm/WPF Client greift auf die Plattform zu und ruft die Kombiangebote + ab. +- Der Client kann Kombiangebote buchen. +- Der Client kann Kombiangebote für 10 Tage reservieren. +- Die Plattform bucht bezahlte Reservationen fix. +- Es müssen mehrere Fluggesellschaften angebunden werden. +- 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. +- Es dürfen nur freie Flüge in Kombiangeboten vorkommen. +- Start- und Zielort des Fluges im Kombiangebot müssen passend zum Hotelzimmer + sein. +- Die Daten des Fluges müssen korrekt sein. + +* Analyse + +Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet. + +** Verteilungsdiagramm + + +#+LATEX:\newpage +#+LATEX:\begin{landscape} +#+CAPTION: Verteilungsdiagramm +#+ATTR_LATEX: :height.9\textwidth +#+NAME: fig:verteilungsdiagramm +[[file:pictures/verteilungsdiagramm.pdf]] +#+LATEX:\end{landscape} +#+LATEX:\newpage + +** Relationales Modell + + +#+LATEX:\newpage +#+LATEX:\begin{landscape} +*Erster Entwurf* +#+CAPTION: Relationen Modell +#+ATTR_LATEX: :height.9\textwidth +#+NAME: fig:rm +[[file:pictures/rm.pdf]] +#+LATEX:\end{landscape} +#+LATEX:\newpage + +*Umsetzung des Entity Framework* + +* Zugewiesene Ziele + +Der Student hat die Ziele anschliessend wie folgt auf die jeweiligen System +verteilt. Gewisse Ziele könnten auch auf anderen Systemen realisiert. Die +aufgeführte Variante erschien dem Studenten jedoch am sinnvollsten. + +* Fazit + +Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt +bereitsstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu +passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden +müssen. + +Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden +erstellen. Der Student hat über 40 Stunden in das Projekt in Heimarbeit +investiert und kein brauchbares Ergebnis erziehlen können. + +Das .NET und Entity Framework bieten einige interessante Features. Allerdings +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. + +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 +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 +Möglichkeiten. diff --git a/docs/normfallstudie.tex b/docs/normfallstudie.tex new file mode 100644 index 0000000..cee23aa --- /dev/null +++ b/docs/normfallstudie.tex @@ -0,0 +1,112 @@ + +\section{Einführung} +\label{sec:org6d4f889} + +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. + +\section{Ziele} +\label{sec:orgdab10f5} + +Aus der Aufgabenstellung lassen sich folgende Ziele an die Systeme ableiten. + +\begin{itemize} +\item Die Datenbank wird in SQL Server umgesetzt. +\item Als Programmiersprache wird C\# mit .NET Framework eingesetzt. +\item Hotels können ihre Zimmer inklusive Zusatzinformationen wie Ausstattung etc. +erfassen. +\item Flüge werden in der Datenbank gespeichert. +\item Die Kombiangebote werden auf der Plattform in der Datenbank gespeichert. +\item Ein WinForm/WPF Client greift auf die Plattform zu und ruft die Kombiangebote +ab. +\item Der Client kann Kombiangebote buchen. +\item Der Client kann Kombiangebote für 10 Tage reservieren. +\item Die Plattform bucht bezahlte Reservationen fix. +\item Es müssen mehrere Fluggesellschaften angebunden werden. +\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 Es dürfen nur freie Flüge in Kombiangeboten vorkommen. +\item Start- und Zielort des Fluges im Kombiangebot müssen passend zum Hotelzimmer +sein. +\item Die Daten des Fluges müssen korrekt sein. +\end{itemize} + +\section{Analyse} +\label{sec:orgf4ce43a} + +Aufgrund der Ziele wurden anschliessend folgende Diagramme ausgearbeitet. + +\subsection{Verteilungsdiagramm} +\label{sec:org3b0693e} + + +\newpage +\begin{landscape} +\begin{figure}[htbp] +\centering +\includegraphics[width=.9\linewidth]{pictures/verteilungsdiagramm.pdf} +\caption{\label{fig:orgf1e8607} +Verteilungsdiagramm} +\end{figure} +\end{landscape} +\newpage + +\subsection{Relationales Modell} +\label{sec:org8ee6851} + + +\newpage +\begin{landscape} +\textbf{Erster Entwurf} +\begin{figure}[htbp] +\centering +\includegraphics[width=.9\linewidth]{pictures/rm.pdf} +\caption{\label{fig:org71fbc74} +Relationen Modell} +\end{figure} +\end{landscape} +\newpage + +\textbf{Umsetzung des Entity Framework} + +\section{Zugewiesene Ziele} +\label{sec:org3fd47d5} + +Der Student hat die Ziele anschliessend wie folgt auf die jeweiligen System +verteilt. Gewisse Ziele könnten auch auf anderen Systemen realisiert. Die +aufgeführte Variante erschien dem Studenten jedoch am sinnvollsten. + +\section{Fazit} +\label{sec:org6b3e5f1} + +Ein Booking System welches Kombiangebote wie in der Aufgabenstellung verlangt +bereitsstellt ist eine uglaublich komplexes System. Das Matching der Flüge zu +passenden Hotelzimmer hat enorm viele Variabeln welche berücksichtigt werden +müssen. + +Dadurch lässt sich das Projekt in keiner Weise innerhalb von ca. 20 Stunden +erstellen. Der Student hat über 40 Stunden in das Projekt in Heimarbeit +investiert und kein brauchbares Ergebnis erziehlen können. + +Das .NET und Entity Framework bieten einige interessante Features. Allerdings +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. + +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 +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 +Möglichkeiten. diff --git a/docs/pictures/rm.pdf b/docs/pictures/rm.pdf new file mode 100644 index 0000000..3feccc0 Binary files /dev/null and b/docs/pictures/rm.pdf differ diff --git a/docs/pictures/verteilungsdiagramm.pdf b/docs/pictures/verteilungsdiagramm.pdf new file mode 100644 index 0000000..3014119 Binary files /dev/null and b/docs/pictures/verteilungsdiagramm.pdf differ