You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 28 Next »

Introduction

Overall Description

Dit document beschrijft de ontwerpspecificaties voor een indelingsprogramma voor Schaakvereniging UVS. Het doel van dit programma is om alles van een schaakseizoen te beheren. Per competitie zijn er rondes die moeten worden ingedeeld. Deze rondes hebben meerdere spelers waarvan de resultaten ook moeten worden verwerkt tot een ranglijst na elke ronde. Deze gegevens moeten ook worden geüpload naar de WordPress-website van Schaakvereniging UVS.

Userstories

Algemeen

US1: Als wedstrijdleider wil ik leden en gasten kunnen invoeren, updaten en verwijderen in het systeem, zodat ik ze daarna kan toevoegen aan competities.
US2: Als wedstrijdleider wil ik dat de ronde indeling uitgeprint kan worden, zodat de informatie ook fysiek beschikbaar is.
US3: Als wedstrijdleider wil ik dat oude seizoenen kunnen worden bekeken, zodat deze informatie kan worden gebruikt voor statistieken.
US4: Als wedstrijdleider wil ik dat er per lid en gast een spelershistorie wordt bijgehouden.

Competities


US5: Als wedstrijdleider wil ik een competitie kunnen aanmaken, zodat ik mijn leden kan laten schaken.
US6: Als wedstrijdleider wil ik leden en gasten kunnen toevoegen aan een competitie, zodat zij kunnen gaan schaken.
US7: Als wedstrijdleider wil ik een competitie een type kunnen geven, zodat deze het juiste aantal rondes kan krijgen.
US8: Als wedstrijdleider wil ik spelers kunnen indelen in verschillende categorieën of groepen binnen een competitie, zodat de competitie eerlijk en gebalanceerd is.
US9: Als wedstrijdleider wil ik het schema van een toernooi kunnen genereren, zodat deelnemers hun schema kunnen bekijken.
US10: Als wedstrijdleider wil ik dat alle informatie die bij een competitie hoort, op de website van de vereniging gepubliceerd kan worden, zodat actuele informatie beschikbaar is.
US11: Als wedstrijdleider wil ik het resultaat van een ronde kunnen invoeren, zodat deelnemers de resultaten kunnen zien.
US12: Als wedstrijdleider wil ik dat de applicatie automatisch de ranglijst bijwerkt nadat een ronde alle resultaten heeft, zodat de ranglijst up-to-date blijft.
US13: Als wedstrijdleider wil ik dat de applicatie automatisch de ratings van de spelers bijwerkt volgens de ratingformule, nadat een ronde alle resultaten heeft.
US14: Als wedstrijdleider wil ik dat de resultaten van externe competities bijgehouden kunnen worden, zodat de rating van spelers altijd up-to-date kan zijn. 

User Classes and Characteristics

Binnen het indelingsprogramma zijn er twee gebruikers: de interne wedstrijdleider en de externe wedstrijdleider van de schaakvereniging. Deze gebruikers krijgen toegang tot het programma door in te loggen met hun eigen gegevens. Ze kunnen alles doen wat het programma zou moeten kunnen. Ze gebruiken het systeem om seizoenen, competities, leden en gasten te beheren.

Operating Environment

Het indelingsprogramma zal worden geprogrammeerd in Java en zal moeten werken op de ondersteunde versies van Windows en MacOS besturingssystemen. Er is een bestaande testdatabase waarop de nieuwe database gebaseerd kan worden, maar het zou ook handig zijn als het met een andere database kan werken. Daarom wordt er gebruik gemaakt van de Java Persistence API (JPA), waardoor het relatief eenvoudig wordt om een andere database aan het programma te koppelen.

Design and Implementation Constraints

Voor dit project zijn er weinig dingen die ons in de weg zullen zitten tijdens het werken. Het enige dat bekend is momenteel is dat de schaakvereniging geen budget heeft vrijgemaakt voor het hosten van een externe database waardoor wij de database lokaal moeten gaan ontwerpen.

 

Product Functions

De hoofdfunctionaliteiten van het indelingsprogramma zijn als volgt: de gebruiker moet een seizoen kunnen aanmaken, zodat er een competitie kan worden opgezet. Binnen deze competities zijn er speelrondes die moeten worden ingedeeld in speelparen. Het aantal speelrondes verschilt per competitietype. Nadat deze speelrondes zijn gespeeld, moeten de resultaten worden ingevuld en worden deze gebruikt om ranglijsten te genereren voor de specifieke rondes. Na afloop van een wedstrijd zal ook de rating van de spelers worden aangepast. Aan het einde van een speelronde zullen de resultaten worden geüpload naar de website van UVS.


ActorUse CaseBrief description
WedstrijdleiderBeheren leden en gastenDe wedstrijdleider moet de mogelijkheid hebben om nieuwe leden en gasten in het systeem in te voeren, zodat ze later kunnen worden toegevoegd aan competities.
WedstrijdleiderPrinten ronde indelingDe wedstrijdleider moet de indeling van een ronde moeten kunnen uitprinten zodat de leden op locatie de indeling kunnen zien.
WedstrijdleiderSeizoenen bekijkenDe wedstrijdleider wil oude seizoenen kunnen bekijken zodat de historie van de club altijd bekeken kan worden.
WedstrijdleiderAanmaken van een competitieDe wedstrijdleider moet een nieuwe competitie kunnen aanmaken, zodat deze kan worden ingezet voor het organiseren van schaakwedstrijden.
WedstrijdleiderToevoegen van deelnemers aan een competitieDe wedstrijdleider moet in staat zijn om leden en gasten toe te voegen aan een competitie, zodat zij ingedeeld en kunnen deelnemen aan de schaakwedstrijden.
WedstrijdleiderToekennen van competitietypeAls wedstrijdleider wil ik een competitie een type kunnen geven, zodat deze het juiste aantal rondes kan krijgen.
WedstrijdleiderGegevens publiceren op websiteDe wedstrijdleider wil de ronde indeling, uitslagen en de ranglijst op de website publiceren zodat elk persoon online de gegevens kan bekijken.
WedstrijdleiderRonde resultaten invoerenDe wedstrijdleider wil resultaten van ronden kunnen invoeren zodat de ranglijst anders wordt.
WedstrijdleiderIndeling genereren voor competitieDe wedstrijdleider wil automatisch door het systeem een indeling voor de rondes van competities laten genereren.
WedstrijdleiderGlobale ranglijst bekijkenDe wedstrijdleider wil de globale ranglijst bekijken zodat duidelijk is wie het beste is.
WedstrijdleiderGroep ranglijst bekijkenDe wedstrijdleider wil de ranglijst van een groep bekijken zodat duidelijk is wie het beste is.



Domain Model

Use-case Descriptions

 

<In this section, each use-case is described in detail, optionally accompanied by a system sequence diagram (SSD) and operation contracts. Make sure that the use case descriptions are consistent with the domain model and the use case diagram from Section 1.5>

Use case 1

<Don’t really say “Use case 1.” State the use-case name instead.>

Fully-dressed use case description

<Provide a fully-dressed use-case description in the format you know from the OOAD course>

System Sequence Diagram (optional)

<In case the use-case entails complex scenarios, you may decide to create a system sequence diagram showing events generated by external actors, the order of events and inter-system events. All systems are treated as a black box>

Operation Contracts (optional)

<If the use case contains complex manipulations of domain objects, you may decide to specify operation contracts for all system operations included in the use case/ SSD.>

Use case 2 ( and so on)

Other functional requirements (optional)

Code

Description

FR1

Als een uitslag van een ronde is ingevuld moeten de ratings van de personen geüpdate worden

FR2

Als een uitslag van een ronde is ingevuld moet de ranglijst geüpdate worden

 

Non-functional Requirements

<Describe non-functional requirements in this section. Please refer to existing software quality models like ISO_IEC_IEEE_25010 or FURPS+.>

 

Performance Efficiency

Code

Description

NFR1

Responses to all user-initiated actions in the web-interface need to be rendered in less than 1 second.

NFR2

..

 

Security

Code

Description

NFR3

Personal user information needs to remain confidential to all parties other than system administrators.

 

 

Reliability (and so on)

User interface sketches (optional)

<Provide low-fidelity user interface sketches. Map the sketches to use cases and other requirements if applicable.>

 






  • No labels