2. Introductie
Deze Wachtlijst applicatie is een vereenvoudigde versie van
een bestaande applicatie. Het programma opent of sluit de
wachtlijst voor een vlucht. Dit gebeurt op basis van een
plafond (ingesteld door analisten) en het actuele aantal
wachtlijst boekingen op de vlucht.
Plafond voor de lengte
van de wachtlijst
Lange wachtlijst betekent
meer kosten en kleinere
kans op confirmatie
3. Overzicht
De Wachtlijst applicatie is verbonden met een UserInterface en het
InventorySysteem
Actuele gegevens inlezen (lengte van de wachtlijst en ceilings)
De WL applicatie bekijkt de vluchten en zet de closure updates klaar
De closure updates worden aan het InventorySysteem doorgegeven
(UserInterface en InventorySysteem zijn geen onderdeel van dit project)
4. Class diagram
De applicatie is opgebouwd uit deze klassen:
– VluchtenProvider levert een lijst met Vluchten
– ClosureCheck bekijkt elke Vlucht en bepaalt of de closure
moet worden geupdate
– VluchtUpdate zet de closure updates klaar.
Alle invoer en uitvoer zijn flatfile Bestanden (grijze kader).
6. Data interfaces
De invoer en uitvoer zijn allemaal flatfiles.
Flatfiles staan in 1 folder (bestandenMap) voor overzicht en
gemak tijdens testen.
Invoer
Schema.txt
Inventory.txt
Beschrijving
Flatfile met alle vluchten
Inventory gegevens van elke vlucht, zoals de ceiling
Uitvoer
Update.txt
Uitzondering.txt
Log.txt
Beschrijving
Flatfile met closure updates
Vluchten of invoer gegevens die niet kunnen worden verwerkt
Logbestand van de applicatie
7. Actuele gegevens
In Schema.txt staan alle vluchten met id, vluchtnummer,
vertrekdatum, route:
id,ceiling,reservering,closure
1,20,3,0
2,20,21,0
3,20,1,0
57,20,0,1
58,20,0,1
59,20,37,0
id,label,route
1,ML11/15apr12,AMS-MIL
2,ML11/16apr12,AMS-MIL
3,ML11/17apr12,AMS-MIL
57,ML12/15apr12,MIL-AMS
58,ML12/16apr12,MIL-AMS
59,ML12/17apr12,MIL-AMS
In Inventory.txt staat van elke vlucht (id) de ceiling,
actuele wachtlijst lengte en huidige closure:
9. Applicatie output
Inventory : Geen gegevens gevonden Vlucht : 263 ML591/10oct12 AMS-JNB CT: 0 0 null
Inventory : Geen gegevens gevonden Vlucht : 264 ML592/10oct12 JNB-AMS CT: 0 0 null
ML12/16apr12 MIL-AMS false
ML12/17apr12 MIL-AMS true
ML61/21jan12 AMS-BRU true
ML537/7jun12 AMS-JNB false
In Update.txt staat de vlucht en nieuwe waarde voor closure,
dit bestand kan door het InventorySysteem worden ingelezen:
In Uitzondering.txt de exceptions die de applicatie (zelf) opgooit,
de beheerder kan dit bestand raadplegen:
10. Java klassen
Korte beschrijving van de belangrijkste klassen
model
Vlucht
Schema
Closure
beschrijving
Unieke vlucht (met id, wachtlijst lengte, ceiling)
Schema gegevens
Closure gegevens (huidig, benodigd, nieuw, update)
control
VluchtenProvider
VluchtenProviderFlatfile
ClosureCheck
VluchtUpdate
Control
beschrijving
Java interface die een lijst met Vluchten levert
Een implementatie van VluchtenProvider interface
Klasse die een Vlucht bekijkt
Klasse die de update van een Vlucht aanmaakt
Algemene klasse die de programma flow coördineert
boundary
Bestand
InvoerBestand
UitvoerBestand
beschrijving
Parent klasse voor een flatfile
Klasse voor het lezen van een flatfile
Klasse voor het schrijven naar een flatfile
11. Techniek
De applicatie is gebouwd met:
Java, NetBeans, eenvoudige Maven structuur
Flatfile invoer en uitvoer
Exceptions voor invoer uitzonderingen en ‘vreemde’
waarden
Testcases met JUnit (voor klassen van model, control,
UitvoerBestand en Exceptions)
Design goals tijdens bouw:
flexibel voor invoer en uitvoer
eenvoudig
uitbreidbaar (web interface voor ceilings, extra logica voor closures)
minder prio voor data dimensies (cabines, multileg)
12. Samenvatting
De Wachtlijst applicatie is gebaseerd op een
bestaande applicatie.
Bekijkt de vluchten en vergelijkt de ceilings met
het aantal wachtlijst boekingen
Bepaalt welke vluchten een closure update
moeten krijgen
Invoer en uitvoer in flatfile formaat
Flexibel en uitbreidbaar
Maarten Zuur
www.linkedin.com/in/maartenzuur