Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Usecasediagram

Domein Model

Image RemovedImage Added

Concept
Uitleg
Allround
Ook wel "Meerkamp" genoemd, is een competitietype waarbij 4 spelers in een groep minimaal 1 keer tegen elkaar spelen.
Allround 
Allround (
roundType
)
RoundType is het type "Enkelrondig" of "Dubbelrondig" voor meerkamp, wat inhoud op welke manier de spelers in een meerkampgroep tegen elkaar spelen.
Tournament
Dit is een competitietype waarbij de spelers in een groep via het zwitsers systeem tegen elkaar spelen, na elke ronde kan de indeling van de volgende ronde pas gemaakt worden.
PeriodCompetition
Periodecompetitie is een competitietype waarbij spelers in groepen tegen elkaar spelen, na elke periode promoveren en degraderen spelers naar een andere groep.
PeriodCompetition
(
period
)
Periode houdt geeft aan voor welke periode de competitie is.
Competition
Competitie is het algemene concept waarmee all competities bij samenkomen.
Competition 
Competition (
name
)
Naam geeft de naam van de competitie aan.
Competition
(startDate)
competitionTypeDe competitie heeft een type, dit kan meerkamp, toernooi of periodecompetitie zijn.
Competition startDateStartdatum geeft de datum waarop de competitie start aan.
Competition 
Competition (
maxRounds
)
Max rondes is het maximum aantal rondes die een competitie kan hebben.
Competition (
Competition winPoints
)
Winpunten is het aantal punten dat je krijgt bij een winst.
Competition (
Competition drawPoints
)
Gelijkpunten is het aantal punten dat je krijgt bij een gelijkspel.
Competition (
Competition losePoints
)
Verliespunten is het aantal punten dat je krijgt bij een verlies.
Competition 
Competition (
unevenPoints
)
Onevenpunten is het aantal punten dat je krijgt als het aantal personen in de groep oneven is.
Competition 
Competition (
byePoints
)
Byepunten is het aantal punten dat je krijg bij een bye.
Group
Een competitie heeft een aantal groepen waar spelers in zitten.
Group (
Group name
)
Een groep heeft een naam waarmee de groep geidentificeerd kan worden.
Round
Een groep heeft een aantal ronden waarin wedstrijden zitten.
Round (
Round roundNumber
)
Omdat er verschillende ronden in een competitie kunnen zitten heeft een ronde een rondenummer.
Round 
Round (
date
)
Een ronde heeft een datum waarop hij gespeeld wordt.
Match
Een wedstrijd is een schaakpartij tussen twee spelers waarbij er een wit is en de andere zwart.
Match (
Match result
)
Het resultaat van een wedstrijd wordt moet opgeslagen worden om bij te houden wie er gewonnen heeft.
Player
Een speler is een schaker.
Player 
Player (
Rating
)
De rating van de speler geeft aan hoe goed de speler is.
Internal player
Een interne speler is een speler die bij de club zit.
Internal
player (
player firstName
)
De voornaam geeft de voornaam van de interne speler aan.
Internal
player (
player lastName
)
De achternaam geeft de achternaam van de interne speler aan.
Internal
player (
player startrating
)
De startrating geeft de rating van de interne speler aan het begin van het seizoen aan.
Internal player playerTypeDe speler is een Gast of een Lid, afhankelijk van zijn lidmaatschap binnen de club.
External player
De externe speler is een speler waarover bijna niks bekend is die wordt gebruikt als een speler binnen de club een wedstrijd tegen een speler speelt van een andere club.
Guest
GlobalRanking
Een Gast is een type interne speler die niet ingeschreven staat bij de club maar wel een keer mee komt doen.

De globalRanking is een ranglijst waarbij alle spelers te zien zijn gesorteerd op de rating.
SchemeList
Het schema voor een
MemberEen Lid is een type interne speler die ingeschreven staat binnen de club.GlobalRankingDe globalRanking is een ranglijst waarbij alle spelers te zien zijn gesorteerd op de rating.SchemeListHet schema voor een
ronde wordt laten zien in een schemalijst
ResultList
Het resultaat van een ronde wordt laten zien in een resultatenlijst
ScoreTable
De scoretable laat de totale punten van de spelers in een groep zien.
CrossTable
De kruistabel laat de totale punten van de spelers in een groep zien als kruistabel.
GroupRanking
De ranglijst laat de punten in een groep zien.

Use-casebeschrijvingen

Beheren spelers

...

Primary actor: Wedstrijdleider

Stakeholders and Interests:

De voorzitter, omdat hij wil dat de leden goed kunnen worden ingedeeld d.m.v. het indelingsprogramma.
De penningmeester, omdat inactieve of niet betalende spelers een negatieve invloed hebben op het verwachte budget.
De secretaris, omdat er met inactieve spelers geen accurate toernooiplanning gemaakt kan worden

Brief description:

De wedstrijdleiders willen spelers kunnen verwijderen omdat zij niet meer actief zijn bij de vereniging.

Preconditions: De wedstrijdleider heeft KlukKluk geopend en heeft het hoofdscherm open. 

Postconditions (Success Guarantee): De wedstrijdleider heeft een speler verwijderd. 

Main Success Scenario (Basic Flow): 

Actor Action

System Responsibility

1. De wedstrijdleider geeft aan de spelerslijst te willen zien.


4. De wedstrijdleider geeft aan een speler te willen verwijderen.


6. De wedstrijdleider bevestigt de keuze  .

 
2. Systeem toont voornaam, achternaam, rating en type van de bekende spelers

3. Systeem toont invulvelden voor de voornaam, achternaam, rating en type van de speler. 


5. Systeem vraagt of de gebruiker het zeker weet.


7. [keuze = ja] Systeem verwijdert de gekozen speler.

Extensions (Alternative Flow): Keuze is nee. Speler wordt niet verwijdert


 

7a [keuze = nee] Speler wordt niet verwijdert.
Usecase verwijderen stopt.

...

Primary actor: Wedstrijdleider

Stakeholders and Interests:

Secretaris, omdat zij geen inactieve of incorrecte informatie over de competities willen zodat er geen onduidelijkheden komen.
Voorzitters, omdat hij wilt dat de oude informatie weggehaald wordt zodat er focus kan gelegd worden op nieuwe competities.

Brief description:

De wedstrijdleider moet een competitie kunnen verwijderen als deze niet meer nodig zijn binnen het systeem.

Preconditions: De wedstrijdleider heeft KlukKluk geopend en heeft het hoofdscherm open.

Postconditions (Success Guarantee): De wedstrijdleider heeft een nieuwe competitie aangemaakt.

Main Success Scenario (Basic Flow):

Actor Action

System Responsibility

1. De wedstrijdleider geeft aan de competities te willen zien.


3. De wedstrijdleider geeft aan een competitie te willen verwijderen.


7. De wedstrijdleider bevestigt de keuze.


2. Systeem toont de naam, competitie type en aantal spelers van de bestaande competities.


4. Systeem vraagt of de gebruiker het zeker weet.


6. [keuze = ja] Systeem verwijderd de gekozen competitie.

Extensions (Alternative Flow): Keuze is nee. Competitie wordt niet verwijdert



6a [keuze = nee] Competitie wordt niet verwijdert.
Usecase verwijderen stopt.

...

Primary actor: Wedstrijdleider

Stakeholders and Interests:

Secretaris, omdat zij geen inactieve of incorrecte informatie over de competities willen zodat er geen onduidelijkheden komen.
Voorzitters, omdat hij wilt dat de oude informatie weggehaald wordt zodat er focus kan gelegd worden op nieuwe competitiegroepen.

Brief description:

De wedstrijdleider moet een competitiegroep kunnen verwijderen als deze niet meer nodig is binnen het systeem.

Preconditions: De wedstrijdleider heeft KlukKluk geopend en heeft de competities open.

Postconditions (Success Guarantee): De wedstrijdleider heeft een competitiegroep verwijderd van een competitie

Main Success Scenario (Basic Flow):

Actor Action

System Responsibility

1. De wedstrijdleider geeft aan de competitiegroepen te willen zien van de gekozen competitie


3. De wedstrijdleider geeft aan een competitiegroep te willen verwijderen.


5. De wedstrijdleider bevestigt de keuze.


2. Systeem toont de groepsletter en de spelers van de bestaande competitiegroepen van de gekozen competitie.


4. Systeem vraagt of de gebruiker het zeker weet.


6. [keuze = ja] Systeem verwijderd de gekozen competitiegroep.

Extensions (Alternative Flow): Keuze is nee. Competitiegroep wordt niet verwijdert



6a [keuze = nee] Competitiegroep 6a Competitiegroep wordt niet verwijdert.
Usecase verwijderen stopt.

...

Primary actor: Wedstrijdleider

Stakeholders and Interests:

Spelers: deze willen aan het einde van een seizoen hun voortgang kunnen vergelijken met het begin van het seizoen

Brief description:

De wedstrijdleider wil aan het begin van het seizoen de startrating van elke speler vastleggen, zodat hier na het seizoen mee vergeleken kan worden

Preconditions: De wedstrijdleider heeft KlukKluk geopend en heeft het hoofdscherm open.
Postconditions (Success Guarantee): Voor elke speler is een startrating vastgesteld in de database, en deze wordt afgebeeld binnen de applicatie
Main Success Scenario (Basic Flow):
Actor ActionSystem Responsibility

 1. De wedstrijdleider geeft aan de algemene spelerslijst te willen zien.


3. De wedstrijdleider drukt op de knop om startrating vast te stellen.


5. De wedstrijdleider bevestigt de startrating op te willen slaan.

 

2. Systeem toont voornaam, achternaam, rating en type van de bekende spelers.


4. Het systeem toont een pop-up ter bevestiging van het vaststellen van de startratings.


6. [Keuze = ja] Het systeem slaat de huidige ratings van de spelers op als de startrating van het nieuwe seizoen.

Extensions (Alternative Flow): Keuze is neeStartratings moeten niet opgeslagen worden

 


 6a. Het [keuze = nee] Het systeem sluit de pop-up en de startrating wordt niet vastgelegd.

...

Primary actor: Wedstrijdleider

Stakeholders and Interests:

Spelers: de spelers die deel hebben genomen aan een match willen dat hun rating up-to-date blijft.
Voorzitter: Als de wedstrijdresultaten correct worden ingevuld geeft dit een beter inzicht op de status van de huidige competities.

Brief description:

De wedstrijdleider voert het resultaat van een wedstrijd in voor de interne spelers. Hierna wordt de rating van de interne spelers aangepast.

Preconditions: De interne spelers zijn aanwezig in het systeem en ronde is al ingedeeld.
Postconditions (Success Guarantee): Het resultaat van de wedstrijden in de ronde is opgenomen in het systeem en de rating van de interne spelers zijn aangepast. 
Main Success Scenario (Basic Flow):
Actor ActionSystem Responsibility

1 . De wedstrijdleider geeft aan dat hij de resultaten van een ronde wedstijden in wilt voeren.3. De wedstrijdleider voert één voor één de resultaten in voor gespeelde wedstrijden.de competitiegroepen te willen zien van de gekozen competitie


3 De wedstrijdleider geeft aan de ronden van een groep te willen zien


5 Systeem geeft aan de wedstrijden van een ronde te willen zien.


7 De wedstrijdleider geeft resultaat van een wedstrijd aan

 

2 . Systeem geeft een lijst van gespeelde wedstrijden.groepen in de competitie


4 Systeem geeft een lijst van rondes van een groep


6 Systeem toont wedstrijden van de ronde.


8 Het systeem berekent 4. Het systeem berekent de nieuwe rating van de spelers, slaat de nieuwe rating en het resultaat van de wedstrijden binnen de ronde op, en toont de net ingevoerde ronde.


Resultaat externe ronde invoeren

...

 

5a. De externe wedstrijdleider geeft de rating van de externe witspeler

7a. De externe wedstrijdleider geeft de naam van de interne zwartspeler

9a. De externe wedstrijdleider kiest de uitslag van de wedstrijd.

11a. De externe wedstrijdleider bevestigt de input.

4a. Het systeem vraagt om de rating van de externe witspeler

6a. Het systeem vraagt om de naam van de interne zwartspeler

8a. Het systeem vraagt wat de uitslag van de wedstrijd was

10a. Het systeem toont een popup ter bevestiging van het opslaan van het resultaat van de match. 

12a. [wedstrijdleider bevestigt] Het systeem slaat het resultaat van de externe match met een interne zwartspeler en een externe witspeler op. De rating van de interne speler wordt geupdate.  

Primary actor: Externe Wedstrijdleider

Stakeholders and Interests:

Spelers: de speler die deel heeft genomen aan een externe match wil dat zijn rating up-to-date blijft.

Brief description:

De externe wedstrijdleider voert het resultaat van een externe wedstrijd in voor een interne speler. Hierna wordt de rating van de interne speler aangepast.

Preconditions:

De interne speler is aanwezig in het systeem.

Een externe match heeft plaatsgevonden. 

Postconditions (Success Guarantee): Het resultaat van de externe wedstrijd is opgenomen in het systeem en de De rating van de interne speler is aangepast. 
Main Success Scenario (Basic Flow):
Actor ActionSystem Responsibility

 1. De externe wedstrijdleider geeft aan dat hij het resultaat van een externe wedstrijd in wilt voeren


3. De externe wedstrijdleider geeft aan of de witspeler intern of extern was5. De externe wedstrijdleider geeft de naam van de interne witspelerspeler


75. De externe wedstrijdleider geeft de rating van de externe zwartspelerspeler


97. De externe wedstrijdleider kiest de uitslag van de wedstrijd.


9. De externe wedstrijdleider geeft aan de gegevens op te willen slaan


11. De externe wedstrijdleider bevestigt de input.geeft aan dat de gegevens kloppen

 

2. Het systeem vraagt of om de speler die wit speelde intern of extern wasnaam van de interne speler


4. [witspeler is intern] Het systeem vraagt om de naam rating van de interne witspelerexterne speler


6. Het systeem vraagt om wat de rating uitslag van de externe zwartspelerwedstrijd was


8. Het systeem vraagt wat de uitslag van de wedstrijd wasgeeft de optie om de gegevens op te slaan



10. Het systeem toont een popup ter bevestiging van het opslaan van het resultaat van de match. vraagt met een pop-up of de gegevens kloppen


1112. [wedstrijdleider bevestigt] Het systeem slaat

De rating het resultaat van de externe match met een interne witspeler en een externe zwartspeler op. De rating van de interne speler wordt geupdateinterne speler wordt geüpdatet

Extensions (Alternative Flow): De witspeler is extern

De wedstrijdleider wijst de input af

10b. Het systeem bewaart tijdelijk de ingevoerde inputs en gaat terug naar stap 2

...

wedstrijdleider wijst de input af


11b. [wedstrijdleider bevestigt niet] Het systeem bewaart tijdelijk de ingevoerde gegevens en gaat terug naar stap 2

Indeling genereren voor competitie

UC8: Indeling genereren voor competitie

Primary actor: Interne Wedstrijdleider

Stakeholders and Interests:

Spelers: spelers willen ingedeeld worden in een competitie zodat ze kunnen spelen.

Brief description:

De interne wedstrijdleider geeft aan een competitie indeling te willen genereren waarna het systeem een indeling genereert met de beschikbare spelers en groepen.

Preconditions:

Er zijn spelers in een competitie/groep ingedeeld.

Postconditions (Success Guarantee): Er is een indeling gegenereerd voor de competitie.
Main Success Scenario (Basic Flow):
Actor ActionSystem Responsibility

 1. De interne wedstrijdleider geeft aan dat hij een indeling voor een competitie wil laten genereren.

 

2. Het systeem kiest het juiste indeel systeem en maakt een indeling

System Sequence Diagram

Image Added


Gegevens publiceren op website

UC9: Gegevens publiceren op website

Primary actor: Interne Wedstrijdleider

Stakeholders and Interests:

Spelers: spelers willen ingedeeld worden in een competitie zodat ze kunnen spelen.de stand, indeling en uitslagen van wedstrijden en ronden kunnen zien

Brief description:

De interne wedstrijdleider geeft aan de gegevens van een competitie indeling te willen genereren publiceren op de website waarna het systeem een indeling genereert met de beschikbare spelers en groepenhtml bestanden genereert en op de website plaatst.

Preconditions: Er zijn spelers in een competitie/groep ingedeeld.

De wedstrijdleider heeft het competitiescherm open en er zitten competities in het systeem 

Postconditions (Success Guarantee): Er is een indeling gegenereerd voor de competitie. 

De gegevens van een competitie zijn op de website te zien. 


Main Success Scenario (Basic Flow):
Actor ActionSystem Responsibility
 1.
  1. De
interne
  1. wedstrijdleider geeft aan de competities te willen zien.


3. De wedstrijdleider selecteert een competitie


5. De wedstrijdleider geeft voor de competitie aan de gegevens te willen publiceren dat hij een indeling voor een competitie wil laten genereren.

 

2. Het systeem kiest het juiste indeel systeem en maakt een indeling

Extensions (Alternative Flow): Er zijn geen spelers beschikbaar.

 

2a. Het systeem laat een foutmelding zien.

Andere functionele eisen (optional)

Code

Description

FR1

Het programma moet in staat zijn om op een gemakkelijke manier te schakelen tussen verschillende databases, zodat de gebruikers zonder veel moeite tussen verschillende databases kunnen schakelen.

FR2

Het programma moet in staat zijn om alle input die door de gebruiker wordt ingevoerd te valideren voordat hij deze door stuurt naar de database zodat er geen kwaadaardige query's naar de database worden gestuurd.

FR3

Het programma moet in staat zijn om te draaien op zowel Windows als MacOS zodat het zoveel mogelijk gebruikers kan ondersteunen door op de meest recente OS'en te kunnen draaien.

FR4

Het programma moet standalone worden kunnen gelanceerd zodat de gebruiker geen externe webhosting hoeft te onderhouden.

 

Non-functionele eisen 

De volgende non-functionele requirements zijn geschreven volgens FURPS.

Usability

...

Code

...

Description

...

NFR1

...

Een gebruiker moet de resultaten van een competitie in kunnen voeren zonder elk lid of resultaat aan te hoeven klikken.

...

NFR2

...

Een gebruiker moet met weinig klikken tot de functies kunnen komen.

...

NFR3

...

Reliability

...

Code

...

Description

...

NFR1

Performance

Code

Description

NFR2

Alle schermen moeten binnen minimaal 2 seconden laden

Security

Code

Description

NFR2

SQL-injecties moeten voorkomen worden door prepared statements.

User interface schetsen

Wireframe spelers

Image Removed

...

toont de competities in het systeem


4. Het systeem selecteert de competitie en maakt de uploadknop klikbaar


6. Het systeem genereert html bestanden

7. Het systeem plaatst de html bestanden op de webserver


Printen ronde indeling

UC10: Printen ronde indeling

Primary actor: Interne Wedstrijdleider

Stakeholders and Interests:

Spelers: willen de indeling kunnen bekijken zodat zij kunnen zien tegen wie zij moeten gaan spelen.

Brief description:

De interne wedstrijdleider geeft aan de indeling van een ronde binnen een competitie uit te willen printen.

Preconditions:

De wedstrijdleider heeft het competitiescherm open en er zitten competities in het systeem.

Postconditions (Success Guarantee): 

De wedstrijdleider heeft een pdf ontvangen met daarin de indeling van de ronde.


Main Success Scenario (Basic Flow):
Actor ActionSystem Responsibility

1. De wedstrijdleider geeft aan de indeling van een ronde uit te willen printen.


3. De wedstrijdleider geeft voor een competitie aan de indeling uit te willen printen.


5. De wedstrijdleider geeft voor een competitie aan welke ronde hij uit wilt printen.


7. De wedstrijdleider selecteert waar deze de PDF wil laten genereren


9. De wedstrijdleider drukt op "PDF genereren"


2. Het systeem toont de competities in het systeem.


4. Het systeem toont de rondes binnen de competities.


6. Het systeem toont de gekozen ronde van de competitie


8. Het systeem toont het gekozen pad naast de "Browse" knop


10. Het systeem genereert een pdf-bestand met kolommen voor de namen van de witspeler en de zwartspeler, een kolom met de uitslag, de indeling met welke competitie, de hoeveelste ronde en de datum van de ronde.

Alternate flow 


3a. De wedstrijdleider kiest een datum.

4a. De wedstrijdleider selecteert waar deze de PDF wil laten genereren.


6a. De wedstrijdleider drukt op "PDF genereren"



5a. Het systeem toont het gekozen pad naast de "Browse" knop


7a. Het systeem genereert pdf-bestanden voor alle rondes op de gekozen datum met kolommen voor de namen van de witspeler en de zwartspeler, een kolom met de uitslag, de indeling met welke competitie, de hoeveelste ronde en de datum van de ronde.


Andere functionele eisen (optional)

Code

Description

FR1

Het programma moet in staat zijn om alle input die door de gebruiker wordt ingevoerd te valideren voordat hij deze door stuurt naar de database zodat er geen kwaadaardige query's naar de database worden gestuurd.

 

Non-functionele eisen 

De volgende non-functionele requirements zijn geschreven volgens FURPS.

Usability

Code

Description

NFR1

Een gebruiker moet de resultaten van een competitie in kunnen voeren zonder elk lid of resultaat aan te hoeven klikken.

NFR2

Een gebruiker moet met minder dan 4 kliks tot de functies kunnen komen.

NFR3

Een gebruiker moet de functies kunnen gebruiken zonder pop-up windows tenzij er een foutmelding binnen komt of er een vraag wordt gesteld.

NFR4

Het programma moet standalone worden kunnen gelanceerd zodat de gebruiker geen externe webhosting hoeft te onderhouden.

Reliability

Supportability

Code

Description

NFR5

Het programma moet in staat zijn om op een gemakkelijke manier te schakelen tussen verschillende databases, zodat de gebruikers zonder veel moeite tussen verschillende databases kunnen schakelen.

NFR6

Het programma moet in staat zijn om te draaien op zowel Windows als MacOS zodat het zoveel mogelijk gebruikers kan ondersteunen door op de meest recente OS'en te kunnen draaien.

Performance

Code

Description

NFR7

Alle schermen moeten binnen minimaal 2 seconden laden

Security

Code

Description

NFR8

SQL-injecties moeten voorkomen worden door prepared statements.

User interface schetsen


Use case code

Naam

Link

UC 1 

Spelers beheren

https://xd.adobe.com/view/0a0b6f64-ed0a-4627-b127-86517d217cb5-5f58/?fullscreen

UC 2

Beheren van competities

https://xd.adobe.com/view/b81481fb-0e42-49b6-bfe1-cb8dffccd965-ed47/

UC 3 & 4

Beheren van competitiegroepen en beheren van spelers in competitiegroepen 

https://xd.adobe.com/view/63beb593-c1ed-4b5b-ae15-0d3a6257fc35-36ed/ 

UC 6:

 Ronde resultaten invoeren

Image Added

UC 7

Resultaat externe ronde invoeren

https://xd.adobe.com/view/ba9fd358-17d6-4903-b4e1-57183531a57a-efcc/

UC 10

Printen ronde indeling

Image Added