Projectdocument Airport Suite. The Wright Company: Zehna van den Berg Steven Both Reinier Maas Adolfo Ochagavía Bas Ouwerkerk Thijs van der Zaan
|
|
- Sterre Geerts
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Projectdocument Airport Suite The Wright Company: Zehna van den Berg Steven Both Reinier Maas Adolfo Ochagavía Bas Ouwerkerk Thijs van der Zaan December 2013
2 Contents 1. Overzicht Planning Doel Deadlines Onderdelen Taakverdeling Analyse Gebruikers en Usecases Reiziger Airline User Airline Admin Airport User Airport Admin Airport Super Admin Functionaliteiten MoSCoW Must have Should have Could have Won t have Systeemontwerp Functionele eisen Technisch ontwerp Server Gebruikersrechten PHP API WinForms controls Algemene klassen... 11
3 Klassen voor communicatie en server Projectwebsite... 11
4 1. Overzicht We gaan en verzameling applicaties ontwikkelen die het mogelijk maken om een vliegveld te beheren. Het gaat om een centrale server waar de informatie wordt opgeslagen, een programma (Terminal) om data in te voeren, te bewerken en te bekijken, een web API om realtime informatie beschikbaar te maken voor websites, en een informatiescherm die de vertrekkende en aankomende vliegtuigen laat zien. Behalve de applicaties zelf gaan we ook een project-website maken, een flyer ontwerpen, presentaties geven en andere documenten inleveren. De applicaties zullen in C# geprogrammeerd worden behalve de web API, waarbij PHP zal worden gebruikt, en een mogelijke Android app, die in Java zou moeten worden geprogrammeerd.
5 2. Planning 2.1. Doel Het doel van dit programma is om een platform aan te bieden aan vliegvelden die het beheer van de vluchten op een efficiënte en gebruikersvriendelijke manier willen doen. Een van de kernaspecten is de samenwerking tussen vliegveld en vliegmaatschappijen. Door gebruik te maken van een centrale database, is het mogelijk voor vliegmaatschappijen om vluchten toe te voegen, terwijl het vliegveld die informatie kan gebruiken om de gates zo goed mogelijk toe te wijzen. Tegelijkertijd kan diezelfde data op de informatieschermen weergegeven worden. Op deze manier levert The Wright Company een volledige Airport Suite Deadlines Naam Projectdocument Website (voorlopige versie) Tussenproduct Tussenpresentatie Flyer Eindverslag + gebruikershandleiding Eindproduct Eindwebsite Eindpresentatie + demonstratie voor jury Demonstratie op symposium CD/DVD-Box Deadline December, 4 December, 11 December, 11 December, 18 Januari, 24 Januari, 24 Januari, 24 Januari, 24 Januari, 29 Januari, 31 Januari, Onderdelen
6 2.4. Taakverdeling Om beter te kunnen samenwerken hebben we besloten dat iedereen verantwoordelijk is voor een deel van het project. Dit betekent echter niet dat elk deel door één persoon geprogrammeerd wordt, want de onderdelen moeten bij elkaar passen en sommige klassen worden op meerdere plekken gebruikt. Het verantwoordelijk zijn voor een deel van het project betekent dus dat de betreffende persoon ervoor moet zorgen dat zijn deel tot een goed einde komt, in samenwerking met de anderen. De taak- of onderdeelverdeling is: Steven: Algoritme voor de verdeling van vluchten over de beschikbare gates en een deel van de controls (UI) voor de verwerking van vluchten Bas: Projectwebsite en het efficiënter maken van het verdelingsalgoritme Reinier: Controls (UI) voor het beheren van de server en de users Thijs: Controls (UI) voor het weergave van de vluchten in de Terminal Zehna: De web-api en de informatieschermen voor in de vertrekhal van een vliegveld Adolfo: De opbouw en functies van de server en de verbinding met terminal en informatiescherm
7 3. Analyse 3.1. Gebruikers en Usecases Er zijn zes verschillende type gebruikers: Reiziger Airline User Airline Admin Airport User Airport Admin Airport Super Admin Reiziger De reiziger moet op tijd bij de juiste gate aanwezig zijn om in het vliegtuig te stappen. Dit proces wordt vereenvoudigd door de informatieschermen in de vertrekhallen, die de nodige informatie over vluchten en gates weergeven Airline User De airline user gebruikt de terminal in een kantoor waar de vluchten worden ingepland. Hij moet vluchten kunnen toevoegen, aanpassen en verwijderen. Ook moet hij een overzicht hebben van de ingeplande vluchten van zijn airline Airline Admin De airline admin behoort tot een bepaalde airline. Voor die airline kan hij users toevoegen, aanpassen en verwijderen. Ook heeft de airline admin het recht om airports toe te voegen, aan te passen en te verwijderen. De airline admin heeft alle rechten van de airline user Airport User De airport user gebruikt de terminal in de control tower en leest hier uit welke vluchten naar welke gates gestuurd moeten worden. Als een vlucht vertraging heeft dan wordt dat hier ingevuld. Hier kunnen ook handmatig wijzigingen aan de indeling van de gates gemaakt worden Airport Admin De airport admin gebruikt de terminal om airport users toe te voegen, aan te passen en te verwijderen. De control tower admin heeft alle rechten van de control tower user.
8 Airport Super Admin De super admin kan alle type users toevoegen, aanpassen en verwijderen. Ook heeft hij het recht om airlines en gates toe te voegen, aan te passen en te verwijderen. Bovendien kan hij commands op de server uitvoeren. De super admin heeft alle rechten van de airport admin en de airline admin Functionaliteiten We hebben een aantal functionaliteiten nodig die betrekking hebben op het beheer van de vluchten: vluchten en gates toevoegen, aanpassen en verwijderen. Dit vereist onder andere een gebruikersvriendelijke user interface. De gebruikers in de control tower moeten op ingeplande vluchten het algoritme toe kunnen passen zodat de vluchten op zo n manier aan de gates worden toegewezen dat er geen dubbelboekingen zijn. Het algoritme is zo geschreven dat voor elke vlucht de meest geschikte gate wordt gezocht. Daarnaast wordt vertraging vermeden op de efficiëntste manier, zodat het zo weinig mogelijk voorkomt als gevolg van de gateverdeling. Voor verdere uitwerking van het algoritme, zie: Bron 1. Ook willen we dat de informatie over de vluchten gedeeld kan worden tussen meerdere Terminals die tegelijk werken, met websites en de informatieschermen. Het moet dus mogelijk zijn om data op te vragen van- en op te sturen naar de server. Daarnaast moeten we ook administrator- en gebruikersfunctionaliteiten hebben: aanmaken, aanpassen en verwijderen van gebruikers MoSCoW Must have Terminal: programma om de data over de vluchten te bewerken Controls voor de weergave van de vluchten Controls voor de Airline Controls voor Airport Database Algoritme voor de toewijzing van gates Should have Verschillende typen gebruikers voor de terminal, met eigen gebruikersrechten
9 Administrators om gebruikers te beheren Server tussen de database en de clients Web API Informatiescherm Log met de acties die de gebruikers hebben uitgevoerd Vluchten filteren voor het vinden van specifieke vluchten in de vluchtlijst Could have Android app Website (informatiescherm met extra functies) Won t have Grafische simulatie van het vliegveld Grafische weergave van het vliegveld 4. Systeemontwerp 4.1. Functionele eisen De terminal, het informatiescherm en de server worden in C# geschreven, want dat is de taal die we het beste kennen. Java zou ook een goede taal voor dit project zijn, maar omdat het ambitieniveau van het project al hoog is, kunnen we ons niet veroorloven een nieuwe taal te leren. De web API wordt in PHP geschreven, omdat deze programmeertaal heel breed gebruikt wordt bij het ontwikkelen van websites en door bijna alle hostings ondersteund wordt. Het is ook een object georiënteerde taal en sommigen hebben er voorkennis van. Het is mogelijk dat we en app voor Android schrijven omdat meerderheid van de smartphones op Android draait. Deze app zou in Java worden geschreven, want dat is de taal van het Android Platform. We hoeven alleen een website in te bedden om deze app te laten werken, dus het is niet nodig om een diepe kennis over Java te hebben Technisch ontwerp Server We hebben een database nodig om de data op te slaan. Het zou ook nuttig zijn om een server te hebben om de volgende redenen:
10 Gebruikers rechten te kunnen geven Een log bij te houden met de foutmeldingen en de acties die de gebruikers uitvoeren Vermijden dat er een directe verbinding gemaakt kan worden met de database Veranderingen in het algoritme alleen in de server te hoeven toe te passen Makkelijker veranderingen in het database- structuur en systeem te kunnen maken Gebruikersrechten Gebaseerd op 3.1 (Analyse over gebruikers) hebben we de volgende gebruikersrechten nodig: Super Admin: alle rechten van onderstaande gebruikers plus de rechten om de gates, airlines, admins en server te beheren Airport Admin: alle rechten van airport user plus de rechten om dat soort gebruikers te beheren Airline Admin: alle rechten van airline user plus de rechten om gebruikers voor een vliegmaatschappij te beheren. Ook mag de airline admin airports beheren (die als oorsprong en bestemming van vluchten worden gebruikt) Airport User: mag status en vertraging van vluchten aanpassen. Mag het algoritme toepassen Airline User: mag vluchten van een vliegmaatschappij beheren (aanmaken, wijzigen en verwijderen) PHP API De PHP API moet het volgende kunnen: En verbinding met de server maken door middel van TCP sockets De lijst vluchten opvragen De lijst vluchten filteren en sorteren WinForms controls We hebben WinForms controls nodig om de informatie te laten zien in de Terminal. Die zijn de volgende: Login Panel: Deze control wordt gebruikt om in te loggen. Zo weet het programma wat voor rechten de gebruiker heeft en op die manier worden alleen sommige controls getoond. Users Panel: Middels de User Panel kunnen de gebruikers worden aangemaakt, aangepast en verwijderd. Er wordt een lijst weergegeven van alle gebruikers. Door het klikken op een gebruiker is het mogelijk om zijn te zien, zoals zijn privileges. Ook wordt er een log weergegeven met alles wat de betreffende gebruiker ooit heeft gedaan met de datum en de tijd dat hij het heeft gedaan.
11 Airlines Panel, Gates Panel, Airports Panel: Deze controls worden gebruikt om airlines, gates en airports aan te maken, aan te passen en te verwijderen. CommandPrompt: Deze control is een directe interface met de server. Hierbij kunt de SuperAdmin toplevel opdrachten uitvoeren op de server. De interface lijkt op een command prompt van windows. FlightList: Deze control is gebaseerd op de ListView en lijkt op een Excel Spreadsheet, waarin alle geplande vluchten binnen een bepaalde tijdstip worden weergegeven met alle bijbehorende gegevens. Het is ook mogelijk om deze gegevens aan te passen. Daarnaast is er een zoekfunctie aanwezig, waarmee de vluchten worden gefilterd op verschillende criteria. BoxView: Hier worden de vluchten weergegeven als blokken, ingedeeld in een schema waarin de gates verticaal worden uitgezet tegenover de tijd, die horizontaal wordt opgesteld. De breedte van de blokken hangt af van de tijd dat de vlucht aan de grond staat, en de locatie hang af van de geschatte aankomsttijd. De tijden, vluchtnaam, bestemming en eventuele vertraging worden ook in de blokken weergegeven. De kleur van de blokken representeren het soort: Internationaal, EuropeanUnion e.d. Ook in deze control moeten de vluchten kunnen worden aangepast. De vertraging en de gate worden aangepast door het slepen. Ook kan de breedte van een blok aangepast worden, zodat de tijd die een vlucht aan de grond staat verandert Algemene klassen Gate Flight User Airport Database (om informatie op te vragen en op te slaan) Client (met methoden die door de terminal gebruikt worden) Klassen voor communicatie en server Voor de server hebben we de volgende klassen nodig: Server (de server zelf) Message (voor het uitwisseling van informatie) Hash (voor de veiligheid van de wachtwoorden) Request (voor het afhandelen van aanvragen) Command (voor de commands die de super admin kan uitvoeren) Projectwebsite De project website bevat de volgende pagina s: Home: korte informatie over Airport Suite voorzien van enkele screenshots
12 Nieuws: een kort beschrijving van de voltooide onderdelen van het project Team: ieder teamlid verteld in een paar zinnen waar hij tijdens het project aan werkt/gewerkt heeft Product: een uitgebreide beschrijving van het eindproduct, met behulp van screenshots Downloads: alle documenten die te downloaden zijn (projectdocument, flyer en handleiding)
13 Bron 1 (basisversie van het algoritme)