Klant toevoegen back

advertisement
Samenvatting van ons gesprek met de opdrachtgever
-Klanten:
Voor de klanten is het nodig hun gegevens te kunnen bewaren, deze te kunnen
bewerken en eventueel te verwijderen. Naast de persoonlijke persoonsgegevens is het
ook nodig om de gegevens van het haar van de klanten bij te houden .
-Werknemers:
Voor de werknemers is het nodig hun persoonlijke gegevens te kunnen bewaren en upto-date te houden. Ook het verlof van de werknemers moet bijgehouden worden en dit
onder de vorm van persoonlijke verlofdagen.
Deze verlofdagen moeten wel met enkele zaken rekening kunnen houden. Wanneer
een werknemer een verlofdag wil opnemen, moeten eventueel reeds geboekte
afspraken voor die werknemer op die bepaalde dag kunnen verplaatst worden naar
ofwel een andere werknemer of naar een ander tijdstip(met bevestiging van klant
natuurlijk).
Naast de verlofdagen wordt er voor de werknemers nog een uurrooster bijgehouden
dat per dag de werkuren van de werknemer bijhoudt. Dit is nodig omdat de zaak
meestal langer dan 8 uur open is op een dag.
Bij eventuele onvoorziene omstandigheden zoals ziekte van een werknemer moet het
ook mogelijk zijn een afspraak te wijzigen.
-Agenda
De agenda moet bestaan uit een dagoverzicht met daarop per werknemer zijn of haar
werktijden. Indien een medewerker op die dag een dagje verlof staan heeft moet dit
ook aangeduid staan. Voor de rest wordt het model opgevuld met de reeds gemaakte
afspraken van de dag, eventuele feestdagen en algemene sluitingsdagen van de zaak.
De agenda moet een hoge gebruiksvriendelijkheid hebben om het afhandelen van een
afspraak zo snel mogelijk tot een goed einde te kunnen brengen.
-Kassa:
De kassa bevat het afhandelen van een bezoek. Dit bezoek bestaan uit de datum van de
afspraak, de werknemer die de afspraak had, de klant die ze onderging en de
mogelijkheid om producten en behandelingen toe te voegen aan het bezoek.
Uit al deze gegevens wordt dan het totaalbedrag van het bezoek berekend.
De applicatie mag eventueel ook het terug te geven bedrag bereken bij afrekening, dan
mag die vervelende rekenmachine weg.
-zoeken:
Het zoeken moet de applicatie de mogelijkheid bieden om voor de verschillende
gegevens die opgeslagen worden verscheidene zoekfilters te implementeren.
Ook omdat de applicatie vaak gegevens moet bewerken die gekoppeld zijn aan- of
afhankelijk zijn van een ander item.
-Afspraken:
Wanneer een afspraak gemaakt word zal dit zo efficiënt mogelijk moeten gebeuren.
Een datum in deze of een volgende maand moet kunnen gekozen worden waarna een
soort van dagoverzicht verschijnt met de werkuren van het personeel, door de klant te
identificeren kan deze aan een werknemer gekoppeld worden op een bepaald tijdstip.
Een afspraak hoeft niet uit een opeenvolging van tijdstippen te bestaan(*).
-bezoeken:
Wanneer de kassa een afspraak afhandelt kunnen we in feite spreken over een bezoek.
Zo’n bezoek bevat de datum van de afspraak, de medewerker die de behandeling
(hopelijk) tot een goed einde heeft gebracht en de klant die ze onderging. De
producten en behandelingen die gebruikt of gekocht werden.
Het totaalbedrag van deze zaken wordt uiteindelijk ook aan een bezoek gekoppeld.
-producten:
Voor de producten is het nodig ze te kunnen identificeren, de prijs van een product te
kunnen bepalen, en om stockage redenen het aantal producten in stock en het
minimum aantal stuks nodig in stock te weten en up-to-date te houden.
-Feestdagen:
Voor de feestdagen is het enkel belangrijk om de dag waarop de feestdag slaat te
weten, voor het gemak wordt ook de naam van de feestdag bewaard.
-Openingsuren:
Aangezien de zaak geen 24 op 24 open is, is het nodig de openingsuren bij te houden
met de eventuele verlofdagen en sluitingsdagen van de zaak.
-Werktijden:
De zaak is langer dan 8 uur open op een dag. Voor de werknemers moet er dus een
overzicht van de aanwezige uren bestaan. Hiervoor worden de werktijden van de
werknemers opgeslagen. Een pauze van de werknemer zal vb terug te vinden zijn in
het overzicht van de werknemer zijn of haar werktijd(*).
(*) er wordt eigenlijk een lijst met tijden bijgehouden omdat een afspraak met een
tussenpauze moet geboekt kunnen worden, zo zal bijvoorbeeld voor een permanent in totaal
drie kwartier werk gerekend worden. Maar dan wel van 8.00 tot 8.15 en van 9.00 tot 9.30.
Starten met bedrijfprocessen.
Inleiding
“First survey the plot, then draw the model” (W. Shakespeare), met deze wijze
woorden in het achterhoofd wordt voor het onderzoeken van het plot een eenvoudig
diagram gebruikt, het procesdiagram. Het is een hiërarchische modelleertechniek die
makkelijk op te stellen is en opgemaakt is vanuit het gezichtspunt van de
opdrachtgever en de gebruikers van het project.
Als het plot is onderzocht, kan het model getekend worden. Aan de hand van de
processen die uit het procesdiagram stromen wordt een use case diagram opgesteld.
Overzicht van de bedrijfsprocessen
Het hairsoft project omvat drie grote delen:
1. Een administratie gedeelte: hier worden zaken zoals het opslaan van klanten,
werknemers, producten, behandelingen, verlofdagen, openingsuren, enz
geregeld.
2. Een agenda gedeelte: alles i.v.m. afspraken en het maken van de agenda.
3. Een kassa gedeelte: alles i.v.m. de bezoeken.
hairsoft
administratie
agenda
kassa
Administratie
admin
klanten
werknemers
behandeling
product
vakantie
openinguren
toevoegen
toevoegen
toevoegen
toevoegen
toevoegen
verwijderen
verwijderen
verwijderen
verwijderen
verwijderen
bewerken
bewerken
bewerken
bewerken
zoeken
vakantie
werktijden
bewerken
Agenda
agenda
Tonen
bewerken
Toevoegen afspraak
Verwijderen afspraak
OPM: Wanneer we een afspraak willen bewerken komen zowel verwijderen als toevoegen afspraak
aan bod omdat we er voor gekozen hebben als er bv. een afspraak moet verlegd worden we de originele
afspraak verwijderen en een nieuwe afspraak aanmaken.
Tonen: (drawagenda)
Er moet gezocht worden naar een goede manier om de agenda aan de gebruiker te
tonen. Dit gedeelte zal nauw samenwerken met de administratie.
Zo moet de gebruiker direct de volgende zaken kunnen zien
1. de openingsuren van de winkel
2. de verlofdagen van de winkel
3. de pauze van de winkel
4. de werktijden van de werknemer
5. de verlofdagen van de werknemer
6. de afspraken die al gemaakt zijn
Bewerken: (zie AgendaModel)
Eenmaal de gebruiker de agenda ziet moet het mogelijk zijn om met een paar klikken
een afspraak te plaatsen, ook als het een nieuwe klant betreft. Meestal gebeuren de
afspraken telefonisch dus hier zal extra aandacht aan besteed worden.
Kassa
Kassa
Bezoek
toevoegen bezoek
“winkelkarretje” vullen
verwijderen bezoek
Uitrekenen teruggave
Toevoegen behandeling
Toevoegen product
Toevoegen bezoek: (Checkout zie CashRegisterModel)
Dit betreft het opslaan van het bezoek dat de klant net achter de rug heeft. Met
‘toevoegen bezoek’ worden verscheidene zaken bedoeld die met het bezoek te maken
hebben, vandaar dat er in het bovenliggend diagram sprake is van een winkelkarretje.
Dit houdt in dat de ondergane behandelingen en de eventueel verkochte producten ook
aan het bezoek worden gekoppeld. Naast het winkelkarretje worden ook de klant en
het totale bedrag aan het bezoek gehangen.
Dit bedrag is het totaal van ons winkelkarretje. Om de kassa kompleet te maken is er
ook een functie voorzien die het terug te geven bedrag berekent.
Verwijderen bezoek:
Spreekt voor zich denken we.
Extra functionaliteiten
Het programma zal de mogelijkheid hebben om enkele grafieken te genereren die de
werknemers ten alle tijde kunnen raadplegen. Zo zal bv. de stockfoto steeds een beeld
geven van de producten in stock en eventueel te bestellen producten, …
Grafieken
rapportering
Het gebruik van een scanner om de producten toe te voegen of te selecteren bij
verkoop.Is terug te vinden in de pragmatische use cases en specifiek in de volgende
- Toevoegen producten
- Bewerken producten
- Producten toevoegen aan winkelkarretje(Bezoek maken)
Het programma heeft ook een mogelijkheid ingebouwd om bezoeken in beeld te
brengen, de medewerkers of manager kunnen zo een kijkje nemen naar bezoeken die
op een bepaalde dag gepleegd zijn of bezoeken van een bepaalde klant opvragen.
Bezoeken
Bezoeken tonen op
datum
Bezoeken tonen
per klant
Alle bezoeken
tonen
Elementaire processen
Opsomming van de verschillende elementaire processen, afgeleid uit de bedrijfsprocessen.
Van de elementaire processen met een “*” zijn de pragmatische usecases (PUC’s) gemaakt,
om herhaling te vermijden zullen identieke cases niet telkens opnieuw uitgeschreven worden.
PUC’s die niet uitgewerkt zijn, zullen vermeld worden bij de usecase die het best de
werkwijze beschrijft.
Elementaire processen
● klant toevoegen
*
● klant verwijderen
*
● klant bewerken
*
● werknemer toevoegen
● werknemer verwijderen
● werknemer bewerken
● werknemer verlofdagen
*
● werknemer werktijden
*
● behandeling toevoegen
● behandeling verwijderen
● behandeling bewerken
● producten toevoegen
*
● producten bewerken
● producten verwijderen
● verlofdagen winkel toevoegen
● verlofdagen verwijderen
● openingsuren bewerken
*
● afspraak maken
*
● afspraak verwijderen
*
● checkout kassa
*
● bezoek verwijderen
● controle op invoer
*
● klant zoeken
*
● rapportering maken
*
● bezoeken tonen per klant *
● bezoeken tonen per datum *
● alle bezoeken tonen
*
●
*
Use case Diagram
bekijken
bekijken
bekijken
zie klant
zie klant
zie klant
bekijken
bekijken
zie klant
zie klant
zie klant
bekijken
bekijken
zie klant
bekijken
zie klant
bekijken
bekijken
bekijken
bekijken
bekijken
bekijken
bekijken
bekijken
bekijken
bekijken
bekijken
Activity diagram
bekijken + testscenario
bekijken + testscenario
bekijken + testscenario
zie klant
zie klant
zie klant
bekijken + testscenario
zie klant
zie klant
zie klant
bekijken + testscenario
bekijken + testscenario
zie klant
bekijken
zie klant
bekijken + testscenario
bekijken + testscenario
bekijken
bekijken + testscenario
zie klant
bekijken + testscenario
bekijken + testscenario
bekijken + testscenario
Todo
Todo
todo
Usecases
Overzicht van alle pragmatische use cases, gegroepeerd per doelstelling van het
programma:
Administratie
PUC001 - Klant toevoegen
PUC002 – Verwijderen klant
PUC003 – Bewerken klant
PUC004 – Toevoegen verlof werknemer
PUC005 – Openingsuren winkel ingeven
PUC006 – Verlofdagen winkel ingeven
PUC012 – Klant opzoeken
PUC013 – Toevoegen/wijzigen werktijden werknemer
PUC014 – Product toevoegen
PUC015 – Bewerken product
Agenda
PUC007 – Afspraak maken
PUC008 – Verwijderen afspraak
Kassa
PUC009 – Checkout
PUC010 – Verwijderen bezoek
Grafieken
PUC016 – Rapportering maken
Bezoeken
PUC017 - Tonen bezoeken per klant
PUC018 – Tonen bezoeken per datum
PUC019 – Alle bezoeken tonen
Ondersteunende taken(van administratie)
PUC011 – Controle op invoer
PUC Diagrammen
*De puc Checkout betekent misschien meer dan dat de naam ons wil zeggen,
eigenlijk betekent deze puc het afhandelen van een bezoek waarbij de klant zijn
rekening zal ontvangen en de applicatie de gewenste wijzigingen zal
doorvoeren en het bezoek opslaan. Het bezoek bestaat uit een klant, en uit een
soort winkelwagentje. Dit winkelwagentje houdt bij welke behandelingen er
ondergaan werden en een eventuele lijst met producten die door de klant
gekocht werden.
PUC001 – Klant toevoegen. back
Klant toevoegen aan database.
Preconditie
Klant zit nog niet in de database
Postcondities
De klant is opgeslagen in database, of niks is gewijzigd.
Actors
klant, medewerker
Stappenplan
1. De medewerker wil nieuwe klantgegevens invoeren.
2. Als medewerker annuleert.
2.1 Stop.
3. De medewerker vult de klantgegevens in.
4. De medewerker bevestigd de invoer
5. De applicatie controleert of de nodige gegevens correct zijn ingevuld
volgens PUCO11 Controle op invoer.
5.1 Indien invoer niet correct.
5.2 Herhaal vanaf 3.
6. De applicatie slaat de nieuwe klantgegevens op.
7. Stop.
PUC002 – Verwijderen klant.
back
Klant verwijderen uit de database.
Preconditie
Klant zit reeds in de database
Postcondities
De klant is verwijderd uit de database of niks is gewijzigd.
Actors
klant, medewerker
Stappenplan
1. De medewerker haalt de klant op.
2. Als medewerker annuleert.
2.1 Stop.
3. De medewerker verwijdert de gegevens van de klant.
4. De medewerker bevestigd de invoer.
4.1 De applicatie verwijdert de klantgegevens.
4.2 Stop.
PUC003 – Bewerken klant. back
Klantgegevens aanpassen in de database.
Preconditie
Klant zit reeds in de database
Postcondities
De klantgegevens zijn aangepast in de database of niks is gewijzigd.
Actors
klant, medewerker
Stappenplan
1. De medewerker haalt de klant op.
2. Als medewerker annuleert.
2.1 Stop.
3. De medewerker bewerkt de gegevens van de klant.
4. De medewerker bevestigd de invoer.
5. De applicatie controleert of de nodige gegevens zijn ingevuld
volgens PUCO11 Controle op invoer.
5.1 Indien invoer niet correct.
5.2 Herhaal vanaf 3.
6. De applicatie slaat de nieuwe klantgegevens op.
7. Stop.
PUC004 – Toevoegen verlof werknemer. back
Een medewerker wenst op een bepaalde dag afwezig te zijn, en vraagt hiervoor een
dagje verlof aan.
Actors
medewerker
Stappenplan
1.
2.
3.
4.
5.
Een medewerker wil een dag verlof nemen
De medewerker identificeert de medewerker die een dagje wenst.
De medewerker selecteert de dag waarover het verlof gaat.
De applicatie valideert de invoergegevens
Er zijn geen afspraken voor medewerker op betreffende dag.
5.1 De applicatie keurt het dagje verlof goed.
5.2 De applicatie slaat verlofdag op.
5.3 Stop.
6. Reeds afspraken geboekt op datum.
6.1 De applicatie haalt de probleemafspraken op.
6.2 De medewerker selecteert een probleemafspraak.
6.2.1 Applicatie toont mogelijkheden.
6.2.1.1 De medewerker selecteert een andere werknemer
voor de afspraak.
6.2.1.1.1 Applicatie update de afspraak.
6.2.1.1.2 Indien geen andere probleemafspraken meer.
6.2.1.1.2.1 Herhaal vanaf 5.
6.2.1.1.3 Nog wel probleemafspraken.
6.2.1.1.3.1 Herhaal vanaf 6.2
6.2.1.2 Medewerker verplaatst afspraak naar het prikbord.
6.2.1.2.1 Indien geen verdere probleemafspraken meer.
6.2.1.2.1.1 Herhaal vanaf 5.
6.2.1.2.2 Nog wel probleemafspraken.
6.2.1.2.2.1 Herhaal vanaf 6.2
PUC005 – Openingsuren winkel. back
De openingsuren van de winkel kunnen ingesteld worden.
Postconditie
De openingsuren zijn ingegeven.
Actors
medewerker
Stappenplan
1. De medewerker wenst openingsuren van een bepaalde dag in te
geven.
2. De medewerker kan ten alle tijden stoppen.
2.1 Stop.
3. Applicatie toont overzicht.
4. Medewerker selecteert dag
4.1 Applicatie toont invoerscherm voor die dag.
4.2 Medewerker past gegevens aan.
4.3 Medewerker bevestigd invoer.
4.4 Applicatie update gegevens.
4.5 De medewerker wenst openingsuren van nog een andere dag te
bewerken.
4.5.1Herhaal vanaf 3.
5. Stop.
PUC006 – Verlofdagen winkel. back
De verlof- en sluitingsdagen van de winkel kunnen ingesteld worden.
Preconditie
Er mogen nog geen afspraken vastliggen op de dagen dat de zaak
gesloten is.
Postconditie
De sluitingsdag is opgeslagen.
Actors
medewerker
Stappenplan
1. Medewerker wenst verlof- en sluitingsdagen van de zaak in te
geven.
2. Medewerker kan ten alle tijden stoppen.
2.1 Stop.
3. Applicatie toont overzicht.
4. Medewerker selecteert dag
5. Medewerker geeft de verlofdag een naam.
6. Medewerker bevestigd de invoer.
7. Applicatie verwerkt de invoergegevens.
8. Stop.
PUC007 – Afspraak maken. back
De klant wil een afspraak maken voor een behandeling.
Preconditie
Postconditie
De reservatie is ingevoerd of niks is gewijzigd
Actors
Klant, medewerker
Stappenplan
1. De klant wil een afspraak maken voor een behandeling.
2. De klant kan ten alle tijde annuleren.
2.1 Stop.
3. De medewerker identificeert de klant
3.1 Indien nieuwe klant PUC001 Toevoegen klant.
4. De applicatie haalt de klant op.
5. De klant geeft een datum en behandeling op.
6. De medewerker voert de datum in.
7. De medewerker bevestigt invoer
8. Toon dagoverzicht van ingevoerde datum.
9. De medewerker valideerdt de datum en tijdsduur behandeling.
10. Datum en uur zijn nog vrij.
10.1 De medewerker selecteert de werknemer.
10.2 De medewerker selecteert het uur van de afspraak.
10.3 Opslaan reservatie.
10.4 Stop.
11. Datum niet vrij.
11.1 De medewerker vraagt nieuwe datum of ander uur aan klant.
11.2 De klant geeft een nieuw tijdstip op.
11.2.1 Herhaal vanaf 6.
11.3 Klant kan op geen enkel ander tijdstip afspraak maken.
11.3.1 Stop.
PUC008 – Verwijderen afspraak. back
De klant wil een afspraak afzeggen.
Preconditie
De klant is geïdentificeerd en er is reeds een afspraak gemaakt.
Postconditie
De reservatie is afgezegd en het tijdstip waarop afspraak betrekking had
is terug vrij voor een nieuwe afspraak.
Actors
Klant, medewerker
Stappenplan
1. De klant wil een reservatie afzeggen.
2. De klant kan ten alle tijde annuleren.
2.1 Stop.
3. De klant geeft de datum en het tijdstip van de afspraak op.
4. De medewerker zoekt de reservatie op.
5. De medewerker annuleert de reservatie namens de klant.
5.1 De applicatie verwijdert de reservatie.
6. Stop.
PUC009 – Checkout back
Elke klant wordt na de behandeling verwacht een rekening te betalen.
Preconditie
De klant is reeds gekend in de database.
Postconditie
De klant heeft zijn rekening ontvangen en betaald.
Actors
Klant, medewerker
Stappenplan
1. Medewerker wil de rekening van de klant maken.
2. De medewerker kan ten alle tijde annuleren.
2.1 Stop.
3. Medewerker vult het winkelkarretje van het bezoek.
3.1 Medewerker selecteert een ondergane behandelingen.
3.1.1 Applicatie vult de behandeling in op een overzicht.
3.1.2 Applicatie berekent voorlopige totaalbedrag.
3.1.3 Indien medewerker nog een behandeling wenst toe te
voegen.
3.1.3.1 Herhaal vanaf 3.1.
3.2 Medewerker selecteert de producten.
3.2.1 Applicatie vult het product in op een overzicht
3.2.2 Applicatie controleert stockvoorraad.
3.2.3 Applicatie berekent voorlopige totaalbedrag.
3.2.4 Indien medewerker nog een product wenst toe te voegen.
3.2.4.1 Herhaal vanaf 3.2
4. De medewerker voert het ontvangen bedrag in.
5. De medewerker bevestigd invoer.
6. Bereken teruggavenbedrag.
7. Applicatie slaat de gegevens van het bezoek op.
8. Afdruk van rekening.
9. Stop.
PUC010 – Verwijderen bezoek back
De medewerker wil een bezoek verwijderen.
Preconditie
Het bezoek was reeds opgeslagen.
Postconditie
Het bezoek is verwijderd.
Actors
medewerker
Stappenplan
1. Medewerker wil een bezoek verwijderen.
2. De medewerker selecteert de datum van het bezoek of zoekt op
naam van de klant.
3. De applicatie haalt de gevonden bezoeken op.
4. De medeweker selecteert het te verwijderen bezoek.
5. De medewerker bevestigd het verwijderen van het bezoek.
6. Applicatie verwijdert het bezoek.
7. Stop.
PUC011 – Controle op invoer back
Controle of de verplichte velden zijn ingevuld en of de gegevens correct(vb. Type)
zijn.
Postconditie
De input van de gegevens is wel of niet geldig.
Actors
applicatie
Stappenplan
1. De applicatie controleert of de verplichte velden zijn ingevuld.
1.1 Indien niet correct.
1.1.1De applicatie stuurt een foutmelding.
1.1.2Stop.
2. De applicatie controleert het type van de velden.
2.1 Indien niet correct.
2.1.1De applicatie stuurt een foutmelding.
2.1.2Stop.
3. Alle velden zijn correct ingevuld.
3.1 Stop.
PUC012 – Klant zoeken back
Een of meer klant objecten uit de database halen.(adv verschillende zoekcriteria)
Actors
Applicatie,medewerker
Stappenplan
1. De medewerker wenst een klant te zoeken.
2. De medewerker kan ten alle tijden annuleren.
2.1 Stop.
3. De medewerker kiest het criteria waarop hij/zij een klant wil zoeken
4. De applicatie haalt de gevonden gegevens op.
5. De medewerker wenst verder te zoeken.
5.1 De medewerker duidt een nieuw zoekcriterium aan.
5.2 De applicatie haalt de gegevens op.
5.3 De medewerker wenst nog verder te zoeken.
5.3.1 Herhaal vanaf 2.
6. De medewerker wenst niet meer verder te zoeken.
7. Stop.
PUC013 – Toevoegen/wijzigen werktijden werknemer. back
Elke medewerker beschikt over een persoonlijke lijst met daarin zijn/haar werkuren
voor een volledige week.
Preconditie
De werknemer zit reeds in de databank.
Postconditie
De werktijden van een werknemer zijn toegevoegd of gewijzigd.
Actors
medewerker
Stappenplan
1. De uren van een medewerker moeten worden ingevuld/gewijzigd.
2. Als medewerker annuleert.
2.1 Stop.
3. De medewerker selecteert de werktijden van de werkemers.
4. De applicatie toont het weekoverzicht voor de werknemers.
5. De medewerker selecteert één dag van een werknemer om de uren
in te vullen.
5.1 De medewerker vult de uren in.
5.2 De medewerker bevestigd de invoer.
5.3 De applicatie slaat werktijden voor die dag en werknemer op.
5.4 Manager wil nog uren van diezelfde of een andere
werknemer invullen.
5.4.1 Herhaal vanaf 5.
6. Stop.
PUC014 – Product toevoegen back
Een product toevoegen aan database.
Preconditie
Product zit nog niet in de database
Postcondities
Het product is opgeslagen in database, of niks is gewijzigd.
Actors
medewerker
Stappenplan
1.
2.
De medewerker wil nieuwe product toevoegen.
Als medewerker annuleert.
2.1 Stop.
3. De medewerker wenst het product manueel toe te voegen.
3.1 De medewerker voert de gegevens in.
3.2 De medewerker bevestigd de invoer
3.3 De applicatie controleert of de nodige gegevens correct zijn
ingevuld volgens PUCO11 Controle op invoer.
3.3.1 Indien invoer niet correct herhaal vanaf 3.
3.3.2 invoer correct, applicatie voegt product toe
3.3.2.1 Stop.
4. De medewerker wenst een scanner te gebruiken.
4.1 De medewerker scant het product
4.1.1 De medewerker vult alle extra gegevens in.
4.1.2 De medewerker bevestigt invoer.
4.1.3 De applicatie controleert of de gegevens correct zijn ingevuld
volgens PUC011 Controle op invoer.
4.1.3.1 Indien invoer niet correct, herhaal vanaf 4.1.1
4.1.3.2 Invoer correct, applicatie voegt product toe.
4.1.3.2.1 Stop.
PUC015 - Bewerken product back
De gegevens van een product wijzigen.
Preconditie
Het product is reeds gekend in het systeem.
Postcondities
De gegevens van het product zijn gewijzigd, of niks is gewijzigd.
Actors
medewerker
Stappenplan
1.
2.
De medewerker wil productgegevens wijzigen.
Als medewerker annuleert.
2.1 Stop.
3. De medewerker wenst de productgegevens manueel te wijzigen.
3.1 De medewerker selecteert het desbetreffende product.
3.2 De applicatie toont de productgegevens
3.3 De medewerker wijzigt de nodige gegevens
3.2 De applicatie controleert of de gegevens correct zijn ingevuld
volgens PUCO11 Controle op invoer.
3.2.1 Indien invoer niet correct herhaal vanaf 3.3
3.2.2 Invoer correct, applicatie update het product
3.2.3 Stop.
4. De medewerker wenst een scanner te gebruiken.
4.1 De medewerker scant het product
4.1.1 De applicatie toont de productgegevens
4.1.2 De medewerker vult alle benodigde gegevens in.
4.1.3 De medewerker bevestigt invoer.
4.1.4 De applicatie controleert of de gegevens correct zijn
ingevuld volgens PUC011 Controle op invoer.
4.1.4.1 Indien invoer niet correct, herhaal vanaf 4.1.2
4.1.4.2 Invoer correct, applicatie voegt product toe.
4.1.4.3 Stop.
PUC016 – Rapportering maken back
De medewerkers kunnen ten alle tijde een rapport opvragen(keuze over een aantal
interessante zaken.)
Postcondities
Een rapportering wijzigt niks, dus geen postconditie.
Actors
medewerker
Stappenplan
1. De medewerker wil een bepaald rapport in overzicht brengen.
2. De medewerker kan te allen tijde annuleren.
2.1 Stop.
3. De medewerker selecteert welk overzicht hij/zij wenst te zien.
3.1 De applicatie toont het overzicht.
3.2 De medewerker wil nog een ander overzicht inzien
3.2.1 Herhaal vanaf 3.
4. Stop.
PUC017 – Tonen bezoeken per klant back
De medewerker kan als hij/zij dat wenst de bezoeken opvragen die voor een bepaalde
klant gemaakt geweest zijn.
Postcondities
Een overzicht wijzigt niks, dus geen postconditie.
Actors
medewerker
Stappenplan
1. De medewerker wenst van een klant alle bezoeken te zien.
2. De medewerker kan ten alle tijden annuleren.
2.1 Stop.
3. De medewerker selecteert een klant.
4. De applicatie haalt de gevonden bezoeken op.
5. Indien medewerker nog een ander klant wil opvragen.
5.1 Herhaal vanaf 3
6. Stop.
PUC018 – Bezoeken tonen per datum back
De medewerker kan als hij/zij dat wenst de bezoeken opvragen die op een bepaalde
dag gemaakt geweest zijn.
Postcondities
Een overzicht wijzigt niks, dus geen postconditie.
Actors
medewerker
Stappenplan
1. De medewerker wenst van een dag alle bezoeken te zien.
2. De medewerker kan ten alle tijden annuleren.
2.1 Stop.
3. De medewerker selecteert een datum.
4. De applicatie haalt de gevonden bezoeken op.
5. Indien medewerker nog een ander datum wil opvragen.
5.1 Herhaal vanaf 3
6. Stop.
PUC019 – Alle bezoeken tonen. back
De medewerker kan als hij/zij dat wenst alle bezoeken opvragen.
Postcondities
Een overzicht wijzigt niks, dus geen postconditie.
Actors
medewerker
Stappenplan
1. De medewerker wenst alle bezoeken te zien.
2. De medewerker kan ten alle tijden annuleren.
2.1 Stop.
3. De medewerker kiest voor alle bezoeken te zien.
4. De applicatie haalt alle bezoeken op.
5. Stop.
Activity Diagrammen
back
Bij sommige van de activity diagrammen(lees: de meest interessante) is er een testscenario
voorzien, hierin worden alle mogelijke manieren waarop de use case kan worden uitgevoerd
beschreven aan de hand van scenario’s.
Overzicht van alle activity diagrammen:
ACD001 – Afspraak maken
ACD002 – Verwijderen afspraak
ACD003 – Bezoek toevoegen
ACD005 – Toevoegen verlof werknemer
ACD006 – Klant toevoegen
ACD007 – Verwijderen klant
ACD008 – Bewerken klant
ACD009 – Klant zoeken
ACD010 – Controle op invoer
ACD011 – Product toevoegen
ACD012 – Product bewerken
ACD013 – Openingsuren van de winkel
ACD014 – Verlofdagen van de winkel
ACD015 – Rapportering maken
ACD001 : Afspraak maken back
Mogelijke testscenario van de use case
1-2-3-4-5 (het gewenste scenario)
1-6-3-4-5 (herstelscenario, met een nieuwe klant)
1-2-3-4-7-8-4-5 (herstelscenario*, met een nieuwe datum)
1-6-3-4-7-8-4-5 (herstelscenario*, met een nieuwe klant en datum)
1-2-3-4-7-9 (faalscenario, geen gepaste datum gevonden)
1-6-3-4-7-9 (faalscenario, geen gepaste datum gevonden voor nieuwe klant)
* herhaling (4-7-8)kan blijven gebeuren tot een geschikte datum gevonden is
ACD002 : Afspraak verwijderen back
ACD003 – Checkout
ACD004 - Werknemer vraagt dagje verlof back
scenario’s op volgende blz.
Mogelijke testscenario’s van de use case verlofdag werknemer:
1-2 (het gewenste scenario)
1-3-4-5-2 (herstelscenario, afspraak verplaatst naar andere werknemer)
1-3-4-5-4-5-2 (herstelscenario*, alle afspraken verplaatst naar andere werknemer)
1-3-4-6-2 (herstelscenario, afspraak op prikbord geplaatst)
1-3-4-6-4-6-2 (herstelscenario*, alle afspraken verplaatst naar prikbord)
1-3-4-6-4-5-2(herstelscenario*, alle afspraken naar ofwel prikbord of afspraak
verplaatst naar andere werknemer)
* herhaling kan blijven gebeuren tot alle afspraken van die dag zijn verplaatst
naar ofwel het prikbord ofwel naar een andere werknemer, combinatie van
beide is ook mogelijk
ACD005: Klant toevoegen back
Mogelijke testscenario’s van de use case :
1-2-3-4 (het gewenste scenario)
1-2-3-6-2-3-4(herstelscenario*, met invoer nieuwe klant)
1-2-5 (faalscenario) medewerker annuleert
* herhaling (6-2-3) mogelijk tot alle velden correct zijn ingevuld, of medeweker
annuleert
ACD006: Klant verwijderen back
Mogelijk testscenario van de use case :
1-2 (het gewenste scenario)
1-3 (faalscenario, actor annuleert bewerking)
ACD007: Klant bewerken back
Mogelijke testscenario’s van de use case:
1-2-3-4 (het gewenste scenario)
1-2-3-5-3-4 (herstelscenario *, met herhaling tot alle gegevens zijn ingevuld)
* herhaling kan blijven gebeuren tot alle benodigde gegevens van een klant zijn ingevuld of
totdat de werknemer annuleert
ACD008: Klant zoeken back
Mogelijke testscenario’s van de use case:
1-2-3-4 (het gewenste scenario), met één enkele zoekparameter
1-2-3-6-2-3-4 (het gewenste scenario*), met meerdere zoekparameters
1-2-5 (faalscenario), geen zoekresultaten gevonden
1-2-3-6-2-5 (faalscenario), geen resultaten voor de zoveelste zoekparameter.
* herhaling (via 6)kan blijven gebeuren tot de zoekopdracht voltooid is of
totdat de werknemer annuleert
ACD009 : Controle op invoer back
Mogelijke testscenario’s van de use case:
1-2-3 (het gewenste scenario), alle velden waren correct ingevuld
1-4 (faalscenario), niet alle verplichte velden zijn ingevuld
1-2-5 (faalscenario), alle velden zijn ingevuld maar één of meerdere van de
waarden zijn fout
ACD010 : Product toevoegen back
Mogelijke testscenario’s van de use case:
1-2-3 (het gewenste scenario), waarbij medewerker scanner gebruikt
1-5-6 (het gewenste scenario), waarbij medewerker manuele ingave doet
1-2-4-2-3 (het herstel scenario*), met scanner
1-5-7-5-6(het herstel scenario*), met manuele ingave
* herhaling (via 4 of 7) kan blijven gebeuren tot de benodigde gegevens juist en volledig zijn
of totdat de werknemer annuleert
ACD011 – Product bewerken back
Mogelijke testscenario’s van de use case:
1-2-3 (het gewenste scenario), waarbij medewerker scanner gebruikt
1-5-6 (het gewenste scenario), waarbij medewerker manuele ingave doet
1-2-4-2-3 (het herstel scenario*), met scanner
1-5-7-5-6(het herstel scenario*), met manuele ingave
* herhaling (via 4 of 7) kan blijven gebeuren tot de benodigde gegevens juist en volledig zijn
of totdat de werknemer annuleert
ACD012 – Openingsuren van de winkel back
Mogelijke testscenario’s van de use case:
1-2-3 (het gewenste scenario), waarbij openingsuren van één dag zijn ingevuld
1-2-4-3 (het herstelscenario*), waarbij meerdere dagen hun uren krijgen
* herhaling (via 4) kan blijven gebeuren tot de manager beslist dat er geen openingsuren meer
moeten ingevuld worden.
ACD013 – Verlofdagen van de winkel back
ACD014 – Rapportering maken back
Mogelijke testscenario’s van de use case:
1-2-3 (het gewenste scenario), met één enkel overzicht
1-2-4-3 (het herstelscenario*), met meerdere overzichten
* herhaling (via 4) kan blijven gebeuren tot de werknemer beslist actie stop te zetten.
Afbakenen van het systeem
Afbakenen van het systeem / releases
 bv. systeem use cases selecteren = niet echt relevant denk ik omdat we met
pragmatische use cases gewerkt hebben… zullen wat tekst uit het boek moeten zoeken
die hier op inspeelt.
Samenstellen van het ontwikkelingsplatform
Keuze van de programmeertaal
Als programmeertaal kiezen we voor JAVA (http://java.sun.com/), als
programmeeromgeving gebruiken we ECLIPSE 3.0 (http://www.eclipse.org/), vooral
omdat deze het meest aan bod zijn gekomen tijdens onze 3 jaar durende opleiding
informatica.
Middleware??
Hier niet van toepassing omdat het niet over een web-applicatie gaat. ????
Dbms (Database Management System)
Een dbms organiseert de manier waarop gegevens opgeslagen worden, bepaalt welke
types van gegevens kunnen opgeslagen worden en hoe de gegevens aan elkaar
gerelateerd worden. In ons project werd gekozen om met MySQL te werken als dbmstool. (http://www.mysql.com/ )
Het MySQL softwarepakket bestaat onder meer uit een serverprogramma , doorgaans
mysqld genoemd, waarbij de d voor daemon staat, wat de Unix of Linux term is voor
een proces dat netwerkconnecties aanneemt. Verder bestaat het uit een verzameling
clientprogramma's , zoals mysql en mysqldump waarmee automatisch of interactief
met de server gecommuniceerd kan worden.
Tools
Hibernate (http://www.hibernate.org/) is een Object/Relational Mapping (ORM)
oplossing voor de Java programmeertaal. Het is een eenvoudig te gebruiken
framework voor het koppelen van een object georiënteerd domeinmodel aan een
traditionele relationele database. Hibernate zorgt voor de koppeling van Java klassen
aan databasetabellen (en voor het koppelen van Java datatypes aan SQL datatypes),
maar zorgt tevens voor de ophaalfuncties. De ontwikkelaar hoeft zich door gebruik te
maken van dit framework niet meer bezig te houden met SQL en JDBC verbindingen.
Testen
JUnit (http://www.junit.org/) is een java Unit testing framework. En onze voorkeur
gaat naar het Unit testing framework omdat ook dit tijdens de lessen reeds ruim aan
bod is gekomen.
Loggen
Log4j (http://logging.apache.org/) maakt gebruik van log statements die in de code
geplaatst worden en is een low-tech methode om de code te debuggen.
Met log4j is het mogelijk tijdens runtime te bepalen welke loggings al dan niet moeten
worden uitgevoerd zonder de gehele sourcecode te wijzigen en dit aan de hand van een
log4j configuratiebestand.
Bibliotheken
Aangezien we als programmeeromgeving voor JAVA gekozen hebben, zijn de
bibliotheken te vinden in het project onder de vorm van jars. Hieronder een overzicht
van de gebruikte jars in het project.
Hibernate-jars
Commons-collections-2.1.1
Commons-Collections seek to build upon the JDK classes by providing new interfaces,
implementations and utilities.
Commons-io-1.0
The Jakarta Commons-IO library. Jakarta Commons-IO contains utility classes, stream
implementations, file filters , and endian classes.
Odmg-3.0 jar
Object Data Management Group, the standard for storing objects
cglib-full-2.0.2
The cglib is a powerful, high performance and quality Code Generation Library, It is
used to extend JAVA classes and implements interfaces at runtime.
Hibernate2
commons-lang-1.0.1
The Lang Component provides a host of helper utilities for the java.lang API, notably
String manipulation methods, basic numerical methods, object reflection, creation and
serialization, and System properties.
Ehcache-0.9
Ehcache is a pure Java, in-process cache with the following features:
1. Fast
2. Simple
3. Act as a pluggable cache for Hibernate 2.1.
4. Has useful Blocking and SelfPopulating cache constructs.
5. Small foot print. Both in terms of size and memory requirements.
6. Minimal dependencies apart from J2SE.
7. Fully documented. See the online Documentation and
the online JavaDoc.
8. Comprehensive Test Coverage.
xdoclet-hibernate-module-1.2.2
LOG4J
Commons-logging-1.0.4
The 1.0.4 release of commons-logging is a service release containing support for both
the 1.2.x and 1.3.x series of Log4J releases.
log4j
Log4j is an open source project based on the work of many authors. It allows the
developer to control which log statements are output with arbitrary granularity. It is
fully configurable at runtime using external configuration files.
JUnit testing
Junit
JUnit is a regression testing framework written by Erich Gamma and Kent Beck. It is
used by the developer who implements unit tests in Java.
JCalendar
JCalendar
JCalendar is a Java date chooser bean for graphically picking a date. JCalendar is
composed of several other Java beans, a JDayChooser, a JMonthChooser and a
JYearChooser. All these beans have a locale property, provide several icons (Color
16x16, Color 32x32, Mono 16x16 and Mono 32x32) and their own locale property
editor. So they can easily be used in GUI builders.
API Specifications
Jta (Java Transaction API)
JTA specifies standard Java interfaces between a transaction manager and the parties
involved in a distributed transaction system: the resource manager, the application
server, and the transactional applications.
MySQL
mysql-connector-java-3.0.15-ga-bin
In order to connect to MySQL with JDBC, we need such a copy of MySQL
Connector/J, the JDBC driver for MySQL.
Javadoc
Xjavadoc-1.1
The XJavaDoc engine is a complete rewrite of Sun's JavaDoc engine that is faster and
more suited for XDoclet (although it is completely standalone). It scans java source
code and makes information about a class available via special java beans that are part
of the XJavaDoc core. These beans provide the same information about a class as
Sun's JavaDoc API, and some nice extra features.
Look and feel
Skinlf-1.2.11
The Java look and feel is the default cross-platform appearance and behavior for use in
all JFC-based Java applications. With this skinlf-1.2.11 the Java application gets the
windows XP look.
Architectuur
Om realiseerbaar te kunnen ontwerpen is er nood aan een zogenaamde referentiearchitectuur.
Zo’n architectuur beschrijft de lagen en klassen van de applicatie, zodanig dat ontwerpers er
het ontwerp op kunnen baseren en zodanig dat ontwikkelaars dit ontwerp kunnen realiseren.
De referentie structuur is als een lasagne. Ze is opgebouwd uit lagen van verschillende
substanties. Iedere laag steunt op onderliggende lagen. Deze onderliggende lagen bieden hun
diensten aan deze laag aan. Iedere laag verbergt de onderliggende lagen. Uiteindelijk ziet de
gebruiker van de applicatie alleen de bovenste laag van de lasagne.
 onderstaande tabel toont de verschillende lagen in de referentiearchitectuur.(nodig van deze tabel hier te
zetten ??, misschien als extra uitleg)
Laag
Klassen
Presentation
Presentation. Is de laag die voor de gebruikers het meest zichtbaar
is, verzorgt alle communicatie met gebruikers en heeft diverse
gedaanten.
Form. Visualiseert de interactie tussen actor en applicatie.
Wordt aanzien als de laag waarin acties worden afgehandeld. Deze
acties komen van de bovenliggende laag presentation waarin de
gebruiker een actie wil afhandelen.
Task. Implementeert een use case.
Business : realiseert de verantwoordelijkheden aangaande het
domein van de applicatie, en bestaat uit klassen met verschillende
rollen.
Factory. Bevat de applicatiespecifieke bedrijfslogica voor
verzamelingen instanties. Beheert ook de individuele instanties van
de bijhorende business class. De klassen in deze laag voorzien tasks
van de benodigde gegevens. Hiervoor gebruiken deze klassen op
hun beurt de onderliggende laag data.
Business class. Bevat de applicatiespecifieke bedrijfslogica voor
individuele instanties.
Data class. Abstraheert de database voor de applicatie. Ze leggen de
verbinding met de database, halen gegevens op en persisteren
gewijzigde gegevens.
Utility. Faciliteert alle overige klassen in het uitvoeren van hun
verantwoordelijkheden. Een utility is technisch en onafhankelijk
van de applicaties waarin deze wordt gebruikt.vb. klassen die de
fysieke connectie met een database verzorgen.
Business Components. Bevat de organisatiegerichte bedrijfslogica,
in aanvulling op de applicatiegerichte bedrijfslogica(≈ Business).
Het aanduiden van bedrijfscomponenten die beschikbaar zijn binnen
het domein van de applicatie.
Interface. Definieert de services die een bedrijfscomponent biedt.
Service class. Realiseert de services van een interface.
Factory. Realiseert organisatiegenerieke bedrijfslogica voor
verzamelingen instanties binnen de bedrijfscomponenten. Beheert
individuele instanties.
Business class. Realiseert organisatiegenerieke bedrijfslogica
binnen de bedrijfscomponenten voor individuele instanties.
Data class. Abstraheert de database voor de bedrijfscomponent.
Proces
Business
Data
Utilities
Business
Components
Vastleggen van subsystemen en lagen in het systeem.
Overzicht van structuur op site yanic
Architectuur bepalen = hairsoft model
 grote structuren zoals subsystemen en lagen vastleggen
 beslissingen die doorheen de applicatie(s) gevolgen hebben (bv. persistentie-, log- en
testframework, creatie strategie, e.d.)
Topologie bepalen
 hardware en software componenten
 andere (externe) systemen die nodig zijn
 hiervoor kunnen component en deployment diagrammen gebruikt worden
Software ontwerp maken
 klassen bepalen en verantwoordelijkheden toekennen (boodschappen)
 klassenbeschrijving geven
 relevante UML-diagrammen opstellen (klassendiagrammen hieronder)
Logisch DB-model maken
 databank model kiezen
 databank structuur beschrijven (klassendiagrammen hieronder) nog extra beschrijven
ook
Externe interfaces bepalen
 user interface elementen en UI-flow
 interfaces naar andere systemen specifiëren
Teststrategie bepalen en tests ontwikkelen
Om er zeker van te zijn dat het ontwerp beantwoord aan de vereisten uit de analyse, moet het
gevalideerd worden. Dit kan gebeuren door
 reviews
 walkthroughs van systeem use case scenario’s
opm: hier wordt het moeilijk te kiezen of we het boek volgen of yanic, we kunnen natuurlijk
ook de gulden middenweg proberen te belopen. Ben er nog niet uit , wat denk jij dat het beste
is ??
Model
In het model – package wordt de structuur van de database beschreven.
Handlers
Het handlers - package
model – package
handlers – package
presentation – package
services – package
tools – package
util – package
sequentie diagram Afspraak maken
Sequentie diagram Tekenen van de agenda (drawAgenda)
Sequentiediagram Bezoek toevoegen
Sequentiediagram Stock aanpassen.
Download