Indelingsprogramma UVS - OOSE
Jurre de Klijn - 2108958
Robin van Dommelen - 2110605
Mees van Haeren - 2108419
Job Zalmé - 2113130
Teun van Hoof - 2107420
Alex van der Wel - 2106535
Domeinbegeleider: Herman Telman
Skills Docent: Eveline Bouwman
Opdrachtgever: UVS Nijmegen
Inleiding
Dit document bevat een beschrijving over het plan van aanpak met de daarbij behorende onderdelen. Dit document wordt opgesteld aan de hand van de opdracht gegeven door de HAN, waarbij de projectgroep verantwoordelijk is voor het maken van een nieuw systeem voor schaakvereniging UVS om interne competities, meerkampen en toernooien bij te houden.
Het plan van aanpak zal detailleren hoe wij dit project zullen volbrengen. Hierbij wordt eerst ingegaan op de achtergrond van het project en hoe dit tot stand is gekomen. Daarna wordt de doelstelling van het project beschreven, en wat het verwachte resultaat is. Vervolgens zullen de projectgrenzen van het project beschreven worden, deze beschrijven de grenzen waarbinnen de opdrachtgever het project wil zetten. Ook worden hierna de randvoorwaarden die de projectgroep stelt aan de opdrachtgever nader toegelicht. De op te leveren producten en kwaliteitseisen die bij het product en proces horen staan ook in deze tabel vermeld.
De ontwikkelmethode die de projectgroep gaat gebruiken wordt hierna in detail beschreven, en er zal daarna toelichting gegeven worden over hoe de communicatie en projectorganisatie is geregeld tussen de projectgroep en belangstellenden. Tot slot wordt er een lijst van risico's opgesteld, met toelichting over hoe deze kunnen worden vermeden.
Achtergrond van het project
Beschrijving organisatie
UVS is een schaakvereniging uit Nijmegen die al 80 jaar lang schaakcompetities organiseert voor schaakliefhebbers. Leden kunnen lid worden van de vereniging om daarna echte competitiewedstrijden te spelen.
Opdracht
Schaakvereniging UVS heeft de projectgroep opgedragen een nieuwe applicatie te ontwikkelen waarmee deze interne competities, meerkampen en toernooien kan managen, dat conceptueel lijkt op een ouder programma genaamd "Rokade".
Aanleiding
Het UVS wil een nieuw programma omdat het oude programma dat ze voor dit doeleinde gebruiken gebruikersonvriendelijk en moeilijk te onderhouden is. Ze zouden het oude programma waarschijnlijk voor de nabije toekomst nog steeds kunnen gebruiken, maar willen een alternatief hebben om het organiseren van competities eenvoudiger en efficienter te maken.
Stakeholders
De stakeholders van dit project zijn:
- Schaakvereniging UVS
- De leden van UVS
- Het bestuur van UVS
- De HAN
Doelstelling, opdracht en op te leveren resultaten voor het bedrijf
Probleemstelling
Het programma dat het UVS momenteel gebruikt heet Rokade; het heeft een heleboel features die niet door het UVS gebruikt worden, is erg gebruikersonvriendelijk, kan soms best sloom zijn om te gebruiken en is geschreven in de oude programmeertaal Delphi. Het UVS zou liever een programma willen hebben zonder deze overbodige functies, die beter in elkaar zit, en geschreven is met een modernere taal. Hierdoor zou het makkelijker aangepast kunnen worden door een eventuele hobby-programmeur op het UVS, en meer futureproof zijn voor toekomstige systemen.
Doelstelling
Het doel van dit project is het ontwikkelen van een nieuwe applicatie ter vervanging van het verouderde programma Rokade. Dit nieuwe programma moet gebruiksvriendelijk zijn, en alleen de features van Rokade bevatten die het UVS nodig heeft. Dit moet een offline programma zijn dat runt op de computer van de gebruiker, met een frontend voor makkelijk gebruik. Het programma moet uitgebreide documentatie hebben, en geschreven zijn in een moderne taal zodat toekomstige ontwikkelaars van de vereniging het programma kunnen onderhouden en het verder kunnen ontwikkelen.
Opdracht
Uit gesprekken met schaakvereniging UVS en een beter begrip van hun wensen, is de opdracht verfijnd. We zullen een systeem ontwikkelen dat de volgende taken automatiseert:
- Het maken van competities
- Het invoeren van resultaten voor rondes
- Het printen van rondeschema's
- Het publiceren van de competitieinformatie naar de website
- Het bijhouden van een ranglijst
- Het toevoegen van leden en gasten
Zie bijlage 1 voor de uitleg van de functionaliteiten.
Resultaten
Aan het einde van het project zal schaakvereniging UVS de volgende producten in handen hebben:
- Een Plan van aanpak waarin alle afspraken over het project zijn beschreven en waar de ontwikkelgroep op kan terugvallen.
- Een Software Requirement Specification waarin staat wat de software doet en geeft een beeld over het systeem aan de stakeholders.
- Een Software Design Document waarin staat hoe het product gemaakt is en wat de technische specificaties zijn.
- De Java-code van de te realiseren applicatie.
- Een Testplan dat beschrijft hoe er getest wordt.
- Een Testrapport waarin de resultaten van alle tests beschreven staan.
- Een Installatiegids die schaakvereniging UVS kan gebruiken om de applicatie op het eigen systeem te installeren, en hoe de ontwikkelomgeving kan worden opgezet.
- Een Gebruikershandleiding waarin staat beschreven hoe je welke acties in de applicatie kunt uitvoeren.
- Een Database waarmee de java-code verbinding maakt.
Projectgrenzen
- Het project duurt tot 7 juni 2024.
- De applicatie-backend wordt ontwikkeld in Java.
- Om de applicatie te koppelen met een database wordt de Java Persistence API (JPA) toegepast, waardoor het later mogelijk is om relatief makkelijk andere databases met de applicatie te koppelen.
- Het uiteindelijke product moet werkzaam zijn op Windows 11 en MacOS 13.
- Na het project is het team niet verantwoordelijk voor gebruikerstraining of systeemonderhoud; de oplevering omvat een installatiegids.
- Het hele database systeem moet gebackupt kunnen worden als een file via een cloud service als dropbox, zodat er geen kosten zijn om het database systeem te hosten.
Randvoorwaarden
Om het project succesvol te kunnen afronden zijn de volgende voorwaarden vastgesteld:
Opdrachtgever
- De broncode van het originele programma Rokade is voordat de eerste sprint begint beschikbaar.
- Er is een voorbeelddatabase beschikbaar die kan worden gebruikt bij de oude Rokade applicatie om te zien hoe functionaliteiten werken.
- De opdrachtgever is beschikbaar tijdens de geplande afspraken.
OOSE-Project Coördinator
- Er zijn werkruimtes voor zes personen beschikbaar met toegang tot internet.
- Er is toegang tot Jira om taken in te plannen en voortgang te noteren.
- Er is toegang tot Bitbucket om het project te managen.
- Er is toegang tot Confluence om documentatie te schrijven en bij te werken.
- Er moet toegang zijn tot stroom om laptops op te kunnen laden.
Op te leveren producten en kwaliteitseisen
Deelproduct | Productkwaliteitseisen | Benodigde activiteiten | Proceskwaliteitseisen |
---|---|---|---|
Plan van aanpak | Het plan van aanpak moet alle hoofdstukken bevatten van het document "Toelichting op PvA 4.0". De opdrachtgever gaat akkoord met het Plan van Aanpak |
| Het plan van aanpak wordt in een assessment in een van de eerste drie weken met de domeinbegeleider en de professional skills begeleider besproken waarna feedback volgt en aangepast wordt. |
Software Requirement Specification | Het SRS moet usecases bevatten, en de code/tests moeten traceerbaar zijn naar deze usecases.
Het SRS moet gebaseerd zijn op het template bestand "SRS" van de HAN. |
| Nadat een onderdeel gemaakt is wordt het door een andere persoon dan de maker gereviewd. De kwaliteitsmanager doet steekproeven om te zien of alle reviews juist zijn gedaan. |
Software Design Document | Het SDD moet designkeuzes uitleggen en beargumenteren. In het SDD moet verwezen worden naar SOLID of GRASP principes, zoals aangeleerd in Object oriented analysis and design.
Het SDD moet gebaseerd zijn op het template bestand "SDD" van de HAN. |
| Nadat een onderdeel gemaakt is wordt het door een andere persoon dan de maker gereviewd. De kwaliteitsmanager doet steekproeven om te zien of alle reviews juist zijn gedaan. |
Java-code |
|
| Elke pull-request word door tenminste 2 andere teamleden nagekeken of de code voldoet aan de eisen gesteld in kolom 2. Bij oplevering wordt de gehele codebase naar de opdrachtgever gestuurd. |
Database |
|
| Telkens als de database veranderd moet minimaal 1 ander persoon de structuur controleren om er zeker van te zijn dat het goed gedaan is. |
Testplan | Het testplan bevat informatie over de tests die uitgevoerd gaan worden, en instructies over hoe deze uitgevoerd moeten worden. De tests moeten traceerbaar zijn naar de usecases in het SRS. |
| Elke keer als er een Java test gemaakt is wordt deze in dit document toegelicht. |
Testrapport | Het testrapport bevat de resultaten van de tests die uitgevoerd zijn volgens het testplan. |
| Nadat alles is getest wordt er een rapport gemaakt waarin beschreven staat wat er wel goed gaat en wat er niet goed gaat. |
Installatiegids | De installatiegids moet beschrijven hoe de applicatie geïnstalleerd kan worden en hoe de ontwikkelomgeving moet worden opgezet. Dit moet op een manier zodat iemand zonder verstand van ict het ook kan. |
| De installatiegids moet getest en gereviewed worden door iemand anders dan die hem geschreven heeft. |
Gebruikershandleiding | Beschrijft hoe je de functies in de applicatie kunt uitvoeren. |
|
Ontwikkelmethoden
Gedurende de ontwikkeling van de nieuwe applicatie wordt gebruikgemaakt van scrum. Door via scrum te werken worden binnen de zogeheten sprintperiodes steeds deelproducten opgeleverd, die uiteindelijk samen het eindproduct vormen. Door via scrum te werken is bij ieder teamlid duidelijk wat er moet gebeuren en door wie, en door de voortgang bij te houden blijft het overzicht helder. Dankzij de flexibiliteit die scrum biedt is het ook makkelijk om gedurende de loop van het project aanpassingen door te voeren indien bijvoorbeeld de behoeften van de opdrachtgever veranderen.
Daily standup
De Daily Standup is een korte en gestructureerde bijeenkomst die dagelijks in de ochtend plaatsvindt. Tijdens deze bijeenkomst komen teamleden bij elkaar om de voortgang van het werk te bespreken, eventuele obstakels te identificeren en de planning voor de komende dag af te stemmen.
Elke deelnemer deelt kort zijn of haar antwoorden op drie vragen:
- Wat heb ik gedaan sinds de laatste standup?
- Wat ga ik vandaag doen?
- Zijn er obstakels die mijn voortgang belemmeren?
De Daily Standup is bedoeld om kort en to the point te zijn, vaak niet langer dan 15 minuten, om te voorkomen dat het een langdradige vergadering wordt. Door regelmatig de voortgang en eventuele problemen te bespreken, kunnen teamleden elkaar ondersteunen, samenwerken en effectief blijven werken aan de gezamenlijke doelen van het project.
Sprint retrospective
De Sprint Retrospective is een cruciale ceremonie binnen het Scrum die plaatsvindt aan het einde van elke sprint. Het doel van deze bijeenkomst is om te reflecteren op de afgelopen sprint en te identificeren wat er goed ging, wat er verbeterd kan worden en welke acties er moeten worden ondernomen om het proces te optimaliseren.
Tijdens de Sprint Retrospective komt het ontwikkelteam samen om open en eerlijk te praten over hun ervaringen tijdens de sprint. De focus ligt op het identificeren van zowel positieve als negatieve aspecten van het werkproces, samenwerking en productkwaliteit. Door middel van gestructureerde discussies en gerichte vragen, zoals wat er goed ging, wat er beter kan en welke acties moeten worden ondernomen, worden waardevolle inzichten verkregen die kunnen leiden tot continue verbetering van het team en het product.
Tijdens dit project zal de retrospective ceremonie plaatsvinden voordat de daadwerkelijke sprint review is gedaan, zodat het team voorbereidt is op de sprint review.
Sprint review
De Sprint Review is een belangrijke gebeurtenis aan het einde van elke sprint. Het doel van de Sprint Review is om het voltooide werk van de sprint te presenteren aan de opdrachtgever om feedback te verzamelen over het geleverde product.
Tijdens de Sprint Review presenteert het ontwikkelteam de voltooide producten of functionaliteiten. Het team demonstreert de nieuwe functies en verbeteringen die zijn toegevoegd aan het product tijdens de sprint en beantwoordt vragen van de opdrachtgever.
Sprint planning
De Sprint Planning is een essentiële ceremonie aan het begin van elke sprint binnen het Scrum-framework. Het doel van de Sprint Planning is om het werk te plannen dat tijdens de sprint zal worden uitgevoerd en om een duidelijk begrip te krijgen van de doelstellingen en het te leveren productincrement. In dit project zal de sprint planning gelijk na elke sprint review plaatsvinden zodat er niet een aparte afspraak gemaakt hoeft te worden.
Projectorganisatie en communicatie
Bij de Schaakvereniging UVS zijn er meerdere contactpersonen aangewezen voor de Projectgroep.
Naam | Emailadres | Rol |
---|---|---|
Ron van Dijk | intern@uvsnijmegen.nl | Intern wedstrijdleider |
Dennis Breuker | Penningmeester | |
Maarten van Rooij | rooijm@gmail.com | Ex-intern wedstrijdleider |
Voor dit project zijn er een aantal mensen opgesteld die klaar staan voor het adviseren van de projectgroep vanuit de HAN:
Naam | E-mailadres | Rol |
---|---|---|
Herman Telman | herman.telman@han.nl | Begeleider |
Meron Brouwer | meron.brouwer@han.nl | Assessor |
Eveline Bouwman | eveline.bouwman@han.nl | Professional skills begeleider |
De projectgroep voor dit project bestaat uit:
Naam | E-mailadres | Telefoonnummer | Rol |
---|---|---|---|
Alex van der Wel | a.vanderwel@student.han.nl | 06-43027288 | Tester |
Jurre de Klijn | jjc.deklijn@student.han.nl | 06-23519611 | Planner |
Job Zalmé | j.zalme@student.han.nl | 06-55075006 | Scrum-Master |
Mees van Haeren | m.vanhaeren@student.han.nl | 06-83179086 | Product Owner by proxy |
Robin van Dommelen | rb.vandommelen@student.han.nl | 06-30379353 | Kwaliteitsmanager |
Teun van Hoof | t.vanhoof@student.han.nl | 06-10408355 | Tester |
Het contact met de opdrachtgever zal voornamelijk met het volgende e-mailadres gebeuren: han-eniac@outlook.com
Groepsafspraken
Voor het project zijn een aantal groepsafspraken nodig om tot een goede einde te komen:
- Werktijden zijn gedefinieerd van 9:00 tot 17:00 uur met tussendoor een pauze van 12:00 tot 12:30 uur.
- Als teamleden ziek zijn wordt er indien mogelijk thuis verder aan het project gewerkt
- Aangezien Job structureel uren mist vanwege zijn topsport ambities zal hij wanneer nodig in eigen tijd verder werken.
- Aangezien Jurre structureel uren mist vanwege rijles zal hij in eigen tijd minimaal de helft van de gemiste uren inhalen.
- Bij eventuele hindering of afwezigheid zal er z.s.m. een bericht verstuurd worden in de groepsapp of gebeld worden naar een ander groepslid.
Definition of Done
In dit document worden alle requirements besproken die voldaan moeten worden voordat een taak als "done" beschouwd kan worden. Als al deze requirements af worden gegaan is de kans dat het opgeleverde product van kwaliteit is een stuk groter.
- De relevante usecases zijn fully dressed uitgewerkt.
- Het domein model is correct uitgewerkt volgens de conventies van de HAN
- Wireframes zijn opgesteld met ten minste een medium fidelity.
- De gemaakte usecases zijn terug te vinden in het usecase model.
- De gemaakte code is traceerbaar naar het klasse diagram en voldoet aan de kwaliteitseisen opgesteld in het PvA.
- De database is uitgebreid met de nieuwe informatiebehoeftes en voldoet aan de kwaliteitseisen opgesteld in het PvA.
- System sequence diagrams zijn uitgewerkt volgens de conventies van de HAN.
- De bijbehorende sequence diagrams zijn uitgewerkt volgens de conventies van de HAN.
- Gemaakte code heeft ten minste 80% line coverage.
- Code wordt geschreven volgens de Coding conventions.
- Usecases zijn door tenminste 2 andere personen nagekeken en goedgekeurd. De task mag dus niet nagekeken en goedgekeurd worden door de persoon die de taak heeft gemaakt.
- Documentatie is zonder spelfouten uitgetypt.
- Documentatie is onderverdeeld in hoofdstukken en paragraven.
- Alle documentatie is in het Nederlands geschreven.
- Documentatie wordt op Confluence gepubliceerd.
Planning
Week | Startdatum | Einddatum | Sprint | Taken |
---|---|---|---|---|
0 | 3 April | 5 April | 3 April: 14:30 Aftrap 4 April: 11:00 Gesprek opdrachtgever 5 April: 14:00 Wekelijks PS-begeleider gesprek | |
1 | 8 April | 12 April | Wo: Start sprint 1 | 8 April: 10:45 Nutshell talk Toolstack 8 April: 14:00 Gesprek Domeinbegeleider 9 April: PvA + Eerste versie SRS op confluence 10 April: 9:00 Planningpokeren + taken op jira 10 April: 13:00 Start sprint 1 12 April: 9:00 - 12:00 Tijd voor projectverslag 12 April: 14:00 Wekelijks PS-begeleider gesprek 12 April: 22:00 PvA op ISAS |
2 | 15 April | 19 April | 15 April: 10:00 Wekelijks domeinbegeleider gesprek 16 April: 11:00 Nutshell talk VueJS 19 April: 9:00 - 12:00 Tijd voor projectverslag 19 April: 14:00 Wekelijks PS-begeleider gesprek | |
3 | 22 April | 26 April | Wo: Einde sprint 1 | 22 April: 9:45 Nutshell talk Sprint Review 22 April: 10:00 Wekelijks domeinbegeleider gesprek 23 April: 13:40 Nutshell talk Spring framework 23 April: 18:30 Sprint review bij UVS 26 April: 9:00 - 12:00 Tijd voor projectverslag 26 April: 14:00 Wekelijks PS-begeleider gesprek |
4 | 6 Mei | 10 Mei | Wo: Einde sprint 2 | 6 Mei: 10:00 Wekelijks domeinbegeleider gesprek 9 Mei: Hemelvaartsdag (Vrij) 10 Mei: 9:00 - 12:00 Tijd voor projectverslag 10 Mei: 14:00 Wekelijks PS-begeleider gesprek |
5 | 13 Mei | 17 Mei | Wo: Einde sprint 3 | 13 Mei: 10:00 Wekelijks domeinbegeleider gesprek 17 Mei: 9:00 - 12:00 Tijd voor projectverslag 17 Mei: 14:00 Wekelijks PS-begeleider gesprek |
6 | 20 Mei | 24 Mei | Wo: Einde sprint 4 | 20 Mei: 2e Pinksterdag (Vrij) 24 Mei: 9:00 - 12:00 Tijd voor projectverslag 24 Mei: 14:00 Wekelijks PS-begeleider gesprek |
7 | 27 Mei | 31 Mei | Wo: Einde sprint 5 | 27 Mei: 10:00 Wekelijks domeinbegeleider gesprek 31 Mei: 9:00 - 12:00 Tijd voor projectverslag 31 Mei: 14:00 Wekelijks PS-begeleider gesprek |
8 | 3 Juni | 7 Juni | Wo: Einde sprint 6 | 3 Juni: 10:00 Wekelijks domeinbegeleider gesprek 7 Juni: 9:00 - 12:00 Tijd voor projectverslag 7 Juni: 14:00 Wekelijks PS-begeleider gesprek 7 Juni: 17:00 Inleveren project |
De planning voor de sprints is te zien op het Jira bord.
Risico’s
In het project zitten risico's waardoor het project niet afgemaakt kan worden, deze staan in de volgende tabel:
Technische risico's
Risico | Kans (groot - middel - klein) | Impact(groot - middel - klein) | Tegenmaatregel | Uitwijkstrategie |
---|---|---|---|---|
Confluence services komen er precies voor een inlevermoment uit te liggen vanwege een storing of soortgelijke issue | Klein | Groot | Dezelfde werkzaamheden gaan uitvoeren in word. | Regelmatige kopieën van het gemaakte werk hebben op bijvoorbeeld OneDrive of lokaal. |
Bijlage 1
functionaliteit-indelingsprogramma-uvs.pdf