oop_NFS_Andreas/docs/normfallstudie.org

4.2 KiB

Normfallstudie

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:≠wpage #+LATEX:\begin{landscape}

/ibz/oop_NFS_Andreas/src/commit/7e6943867cccdc833d756760d38c79f3e2d5fc80/docs/pictures/verteilungsdiagramm.pdf #+LATEX:\end{landscape} #+LATEX:≠wpage

Relationales Modell

#+LATEX:≠wpage #+LATEX:\begin{landscape} Erster Entwurf

/ibz/oop_NFS_Andreas/src/commit/7e6943867cccdc833d756760d38c79f3e2d5fc80/docs/pictures/rm.pdf #+LATEX:\end{landscape} #+LATEX:≠wpage

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.