1.2-project-parkinggarage's People
1.2-project-parkinggarage's Issues
Documentatie: Rapport Hoofdstuk 4: Eerste Uitbreiding
Maak twee UML klasse diagrammen, de eerste geeft de klassen weer voor de aanpassing naar het MVC patroon en de tweede die de situatie na de aanpassingen weer geeft.
Maak ook een sequentie diagram waarin één stap van de simulatie wordt beschreven.
Voeg deze diagrammen toe aan je rapport in hoofdstuk 4 “Eerste uitbreidingen”. Beschrijf hierin ook de overige aanpassingen die je deze week gedaan hebt.
3.3 Requirements: Voeg een financieel systeem toe.
De garage maakt bij het in en uitrijden van de garage gebruik van nummerbord herkenning.
Abonnementhouders hebben dus geen kaartje nodig en kunnen zonder langs de betaalautomaat
te gaan uit de garage rijden. Betaling van de reserveringen gebeurt wel bij de betaalautomaten. Dit
gebeurt op basis van het nummerbord. De klant voert de gegevens van zijn nummerbord in,
betaalt voor de periode die hij in de garage heeft gestaan en kan vervolgens uitrijden.
2. Bonus: Richting ingang aanpassen
Verander de richting van één van de ingangen om er voor te zorgen dat er minder rijen zijn.
5. Requirements: Abonnement plekken
In de simulator wordt nog geen rekening gehouden met het feit dat een deel van de plekken specifiek gereserveerd is voor de abonnementhouders. Zorg er voor dat dit wel gebeurt.
Verder is de instroom van abonnement houders niet afhankelijk van het aantal abonnementen dat is uitgegeven. Zorg ervoor dat dit ook in de simulator verwerkt wordt.
3.6 Requirements: Adviespaneel voor de simulatie
Probeer door middel van de van de informatie die je uit de simulator kunt halen een advies te formuleren voor de organisatie. Probeer bijvoorbeeld te controleren of het geplande reserveringsproces, waarbij vanaf een kwartier voor aanvang een plek gereserveerd
wordt altijd voldoende gereserveerde plaatsen oplevert.
Hierbij is het dus van belang dat de bezetting van de parkeergarage in de simulator een realistisch beeld geeft van de werkelijkheid.
Extra: Change paymentCarQueue_entireTick into one with paymentCarQueue
Momenteel lijken deze twee queues te veel op elkaar.
1.1 Requirements: Logische lay-out van elementen
Denk aan het groeperen door middel van panelen.
3. Requirements: Verbeteren van de simulatie
Als je een view hebt gemaakt die de lengte van de rijen weergeeft zal je waarschijnlijk hebben
gezien dat er geen rijen ontstaan. Dit is niet zoals het in werkelijkheid is.
Pas het simulatie proces aan zodat het aantal auto’s dat arriveert per minuut meer lijkt op de werkelijkheid. Houd hierbij rekening met de gegevens die in de casus omschrijving genoemd worden.
Pas tevens de simulatie zodanig aan dat er rekening wordt gehouden met het feit dat potentiele klanten mogelijk doorrijden als de rij te lang is. Dit gegeven moet ook in de statistieken worden opgenomen.
Maak ook een view waarop de instellingen van de simulator kunnen worden beheerd.
1.2 Requirements: Meer besturingselementen
Alle variabelen die de simulatie beïnvloeden moeten gewijzigd kunnen worden. Denk aan drukte of huidige dag.
Bug: Aantal ReservationCars moet tijdens het concert hoger zijn dan het aantal AdHoc
2.3. Gereserveerde auto's moeten niet op komen kunnen dagen
2.1 Requirements: add class for reservations
Voeg een klasse toe voor klanten die hebben gereserveerd. De implementatie van de betaal methode zal verschillend zijn voor de verschillende klanten. Klanten die gereserveerd hebben betalen een extra bedrag voor de reservering.
3.1 Requirements: Voeg realistische drukke tijden toe
Pas het simulatie proces aan zodat het aantal auto’s dat arriveert per minuut meer lijkt op de werkelijkheid. Houd hierbij rekening met de gegevens die in de casus omschrijving genoemd worden.
2.2 Requirements: locatie reservatie voor mensen die hebben gereserveerd
Verder moet de simulatie aangepast worden zodat er plaatsen in de garage gereserveerd worden voor de reserveringen. Bedenkt hoe dit het beste gerealiseerd kan worden. Dus op welk moment moet je plekken gaan reserveren om te garanderen dat de klanten met reserveringen een plek kunnen vinden. Houdt hierbij rekening met het feit dat niet alle reserveringen komen opdagen en mensen met een reservering te vroeg of te laat kunnen komen.
De garage heeft een modern systeem waarbij de klanten naar hun plek gestuurd kunnen worden en plekken gereserveerd kunnen worden. Reserveringen kunnen dus overal door de garage geplaatst worden, behalve in het deel dat voor de abonnementhouders gereserveerd is.
Bedenk hoe je in de view kunt aangeven of een plek gereserveerd is, een lege plek voor een abonnementhouder of een bezette plek is, en implementeer dit.
Om de simulator een goed beeld van de werkelijkheid te laten geven is het van belang om goed na te denken over het gedrag van de klanten. Dus wanneer komen de verschillende groepen klanten, reserveringen zullen bijvoorbeeld vaak samengaan met een bezoek aan het theater. Wanneer maken de abonnementhouders gebruik van de garage, en wanneer komen de meeste gewone klanten. Maak als het nodig is een aanpassing aan de instroom van klanten in de simulator.
1. Bonus: Pas de simulator aan zodat de inrichting van de parkeergarage veranderd kan worden.
De simulator kan alleen voor de huidige parkeergarage gebruikt worden, pas de simulator aan zodat de inrichting van de parkeergarage veranderd kan worden.
1.3 Requirements: Scaling van de parking garage view
De parking garage scaled op dit moment niet goed. Zorg er voor dat deze mee scaled met de window.
4. Bonus: Event-Driven Simulatie
In tegenstelling tot de vossen en konijnen simulatie die in het BlueJ boek beschreven wordt is deze simulatie zeer geschikt voor event-driven simulatie. Je kunt proberen om dit in de
simulator te implementeren of beschrijven welke aanpassingen in de simulator uitgevoerd moeten worden om deze event-driven te maken. Gebruik hiervoor eventueel pseudocode, UML klasse diagrammen en sequentie diagrammen.
Documentatie: Het annoteren en genereren van JavaDoc
Is de Javadoc op de juiste plaats toegevoegd. (Genereer de HTML bladzijdes die de Javadoc weergeven)
1.4 Requirements: Parking garage flippen
Flip de garage verticaal voor latere GUI verbeteringen
Bug: Meerdere keren op Start drukken geeft een NullPointerException
1.5 Requirements: Layout van besturingselementen verbeteren
1. Requirements: Een simpele GUI maken.
Ontwikkel een simpele GUI met knoppen die het mogelijk maken om het programma 1 of 100 stappen te laten uitvoeren.
Hiermee kun je de applicatie testen. Besteed hier nog niet te veel tijd aan. De komende weken zal je de GUI nog verder moeten uitbreiden en aanpassen.
Om een idee te krijgen van hoe je een GUI aan je applicatie kunt toevoegen kun je de vijf Eclipse projecten die in de mvcextended.zip file bekijken. Deze is te vinden op BlackBoard. In deze projecten kun je zien hoe de logica en de GUI van elkaar gescheiden worden in de applicatie.
In de tweede week van het project gaan we nader kijken naar de MVC structuur die gebruikt wordt in deze projecten.
2.4. Gereserveerde auto's mogen pas bij een kwartier van te voren een plek reserveren.
Bug: Layout of the garage shouldn't be changed when the garage is not closed
Don't allow the change of dimensions of the garage when the garage is not empty and closed
4.1 Requirements: Grafiek voor drukte niveaus
Voeg een grafiek in een view toe voor het bekijken van drukte niveaus
1. Requirements: Verbetering van de GUI
Probeer op een bruikbare manier plaatjes en geluiden toe te voegen, je kunt bijvoorbeeld waarschuwingsberichten toevoegen als de rijen te lang zijn of als de bezettingsgraad een bepaald niveau bereikt.
3. Bonus: Foutparkeerders
Auto’s kunnen slecht geparkeerd worden, en twee plaatsen in beslag nemen. Implementeer een klasse van foutparkeerders. Wat kun je hieraan doen? Extra laten betalen?
Extra: De grafieken moeten er anders uit zien en tijd gebruiken
Documentatie: Presentatie maken
De presentaties zijn gepland in week 9 van het blok.
De presentaties moeten ongeveer 30 minuten duren, inclusief 10 minuten voor vragen/discussie.
De presentatie en het rapport worden door het hele team gemaakt, maar elk teamlid moet bekend zijn met de inhoud van het project.
Documentatie: Rapport Hoofdstuk 3: Refractor MVC Gebruiken
Bestudeer de structuur van de volgende drie Eclipse projecten die in mvcextended.zip staan.
Alle drie de projecten maken gebruik van Threading om er voor te zorgen dat het programma blijft reageren zelfs als de simulatie draait.
Threading zal uitgebreid behandeld worden in het tweede jaar, het is dus niet noodzakelijk dat je op dit moment compleet begrijpt hoe het programma werkt. Probeer Theading echter wel toe te passen in je eigen simulator.
Beschrijf je bevindingen in het rapport in “Hoofdstuk 3 – MVC gebruiken”.
Extra: Tijd moet zijn eigen object zijn en niet alleen een model.
De waardes van de tijd moeten worden bewaard in een object.
Bug: Closing the garage will fill it with reservations
3.4 Requirements: Mensen die te lang in de rij staan vertrekken
Pas tevens de simulatie
zodanig aan dat er rekening wordt gehouden met het feit dat potentiele klanten mogelijk doorrijden
als de rij te lang is. Dit gegeven moet ook in de statistieken worden opgenomen.
4. Requirements: Extra Views toevoegen
Maak een extra view voor de applicatie, hierin moet informatie in tekstvorm worden gepresenteerd. In deze view moet belangrijke management informatie worden weergegeven.
Je moet in deze view de opbrengst van de dag weergeven en de verwachtte opbrengst van de klanten die nog in de garage aanwezig zijn maar nog niet hebben betaald. Maak gebruik van de AbstractView structuur die je in het Life project dat in de MVC projecten zit kunt vinden.
Implementeer nog drie andere views, je kunt bijvoorbeeld de manier waarop de huidige informatie wordt weergegeven veranderen (i.e. histogrammen of lijn grafieken). Ook moet je de informatie over de queues weergeven.
Zorg er voor dat je in alle views duidelijk kunt zien welk soort auto’s weerggeven worden.
4.1 Dag Opbrengst
Je moet in deze view de opbrengst van de dag weergeven en de verwachtte opbrengst van de klanten die nog in de garage aanwezig zijn maar nog niet hebben betaald.
3.2 Requirements: Evenementen zoals markten en concerten.
Naast de parkeergarage staat het beroemde theater “het concertgebouw”. Dit theater biedt plaats
aan 1000 bezoekers en elk weekend zijn er voorstellingen op vrijdag en zaterdagavond en
zondagmiddag die altijd uitverkocht zijn. Dit zorgt voor extra drukte in de parkeergarage. Verder
zijn er op donderdagavond koopavonden die ook voor extra klanten zorgen.
3.3.1 Requirements: Genereer elke maand een rapport van het financieel overzicht.
Voeg een nieuw JPanel toe waarbij elke maand de afschriften en kosten van deze maand staan.
Bug: Placing 3 Entrances next to each other with an exit on the otherside of the garage causes weird PassHolder placement
Bug: Witte vierkanten verdwijnen niet als de garage wordt geopend.
3.5 Requirements: Voeg realistische staan tijden toe
2. Requirements: Een klasse voor klanten met reserveringen toevoegen
Voeg een klasse toe voor klanten die hebben gereserveerd. De implementatie van de betaal methode zal verschillend zijn voor de verschillende klanten. Klanten die gereserveerd hebben betalen een extra bedrag voor de reservering.
Verder moet de simulatie aangepast worden zodat er plaatsen in de garage gereserveerd worden voor de reserveringen. Bedenkt hoe dit het beste gerealiseerd kan worden. Dus op welk moment moet je plekken gaan reserveren om te garanderen dat de klanten met reserveringen een plek kunnen vinden. Houdt hierbij rekening met het feit dat niet alle reserveringen komen opdagen en mensen met een reservering te vroeg of te laat kunnen komen.
Probeer door middel van de van de informatie die je uit de simulator kunt halen een advies te formuleren voor de organisatie. Probeer bijvoorbeeld te controleren of het geplande reserveringsproces, waarbij vanaf een kwartier voor aanvang een plek gereserveerd
wordt altijd voldoende gereserveerde plaatsen oplevert.
Hierbij is het dus van belang dat de bezetting van de parkeergarage in de simulator een realistisch beeld geeft van de werkelijkheid.
De garage heeft een modern systeem waarbij de klanten naar hun plek gestuurd kunnen worden en plekken gereserveerd kunnen worden. Reserveringen kunnen dus overal door de garage geplaatst worden, behalve in het deel dat voor de abonnementhouders gereserveerd is.
Bedenk hoe je in de view kunt aangeven of een plek gereserveerd is, een lege plek voor een abonnementhouder of een bezette plek is, en implementeer dit.
Om de simulator een goed beeld van de werkelijkheid te laten geven is het van belang om goed na te denken over het gedrag van de klanten. Dus wanneer komen de verschillende groepen klanten, reserveringen zullen bijvoorbeeld vaak samengaan met een bezoek aan het theater. Wanneer maken de abonnementhouders gebruik van de garage, en wanneer komen de meeste gewone klanten. Maak als het nodig is een aanpassing aan de instroom van klanten in de simulator.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.