Indelingsprogramma UVS - OOSE
Jurre de Klijn - 2108958
Robin van Dommelen - 2110605
Mees van Haeren
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.
Aanleiding
De reden voor het maken van een nieuw systeem is dat het huidige systeem van Schaakvereniging UVS, Rokade, steeds lastiger is om te laten compileren en op moderne systemen te laten draaien. Ook is aangegeven dat Rokade meer functionaliteit bezit dan UVS nodig acht, en deze heeft aangegeven een lichter systeem te willen die een subset van de functionaliteit van Rokade bevat.
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
Schaakvereniging UVS gebruikt op het moment de applicatie "Rokade" om competities en schema's te maken. De applicatie is geschreven in Delphi en daardoor is het steeds lastiger om een werkende compiler en operating systeem te vinden. Omdat het systeem gebruikt wordt door heel Nederland zijn er veel functies voor gemaakt die UVS niet gebruikt.
Doelstelling
Het doel van dit project is het ontwikkelen van een nieuwe applicatie ter vervanging van het verouderde programma Rokade, gebruikt door Schaakvereniging UVS uit Nijmegen en mogelijk ook andere schaak- en damverenigingen. Daarnaast moeten frontend en backend gescheiden zijn, zodat eventuele toekomstige aanpassingen of uitbreidingen gemakkelijk kunnen worden geïmplementeerd. Belangrijk is ook dat er uitgebreide documentatie wordt gemaakt, zodat toekomstige ontwikkelaars van de vereniging het programma kunnen onderhouden en verder 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
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.
- Een Database waarmee de java-code verbinding maakt.
Projectgrenzen
- 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 en MacOS.
- Na oplevering is het team niet verantwoordelijk voor gebruikerstraining of systeemonderhoud; de oplevering omvat een installatiegids,
Randvoorwaarden
Om het project succesvol te kunnen afronden zijn de volgende voorwaarden vastgesteld:
Opdrachtgever
- Er is broncode van het originele programma Rokade beschikbaar.
- Er is een testdatabase beschikbaar waarmee de nieuwe applicatie ontwikkeld en getest kan worden.
- De opdrachtgever is beschikbaar tijdens de geplande afspraken.
HAN
- 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 (//smart) | Benodigde activiteiten | Proceskwaliteitseisen (//5xW 1xH) |
---|---|---|---|
Plan van aanpak | Het plan van aanpak moet het doel van het project, de projectgrenzen, de randvoorwaarden, de eisen van de deelproducten en risicos bevatten. |
| Het plan van aanpak wordt in een assessment 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.
|
| Nadat een onderdeel gemaakt is wordt het door de kwaliteitsmanager gereviewd. |
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. |
| Nadat een onderdeel gemaakt is wordt het door de kwaliteitsmanager gereviewd. |
Java-code |
|
| Elke pull-request word door tenminste 2 andere teamleden nagekeken of de code voldoet aan de eisen gesteld in kolom 2. |
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 getest en gereviewed worden door iemand anders dan die hem geschreven heeft. |
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.
Het nadeel aan scrum is dat aan het begin van het project de kosten van het eindproduct nog niet geheel in kaart kunnen worden gebracht.
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 | Contactpersoon |
Voor dit project zijn er een aantal mensen opgesteld die klaar staan voor het adviseren van de projectgroep vanuit de HAN:
Naam | Emailadres | 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 | Emailadres | 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 |
Aan het einde van elke scrumsprint zullen we een Sprint Review bijeenkomst houden met de klant. Tijdens deze vergaderingen zullen we de voortgang van het project bespreken, inclusief de keuzes die we hebben gemaakt en de argumenten daarvoor, evenals wat er gepland staat voor de volgende sprint.
Deze scrumsprints zullen elke weken plaatsvinden en zullen gebeuren op locatie PM3 van de HAN. De Sprint Review-bijeenkomsten zullen doorgaans plaatsvinden op de woensdag om ____ uur.
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
Hier 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 use cases worden uitgewerkt in fully-dressed formaat.
- Het domein model komt overeen met de geschreven use case description
- De code van de taak is gepushed naar Bitbucket en er is een pull request aangemaakt.
- De pull request is gereviewed en gemerged.
- De geschreven code is niet in strijd met de opgestelde code guidelines.
- Het use case model is geüpdate
- Het domein model is geüpdate
- De brief description van de use case is geschreven
- De use case description is gemaakt
- Class diagram is geüpdate
- Het system sequence diagram is geüpdate
- De sequence diagrams zijn gemaakt
- Update readme
- Unit tests zijn geschreven om er zeker van te zijn dat de code werkt zoals dat is bedoeld
- Alle unit tests die zijn geschreven zijn geslaagd
Planning
TOEVOEGEN WEKELIJKSE PROJECT-BEGELEIDER MEETING
TOEVOEGEN WEKELIJKSE SPRINT REVIEW
TOEVOEGEN WEKELIJKSE SPRINT RETROSPECTIVE
Week | Startdatum | Einddatum | 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 | 8 April: 10:45 Nutshell talk Toolstack 8 April: 14:00 Gesprek Projectbegeleider 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: 14:00 Wekelijks PS-begeleider gesprek 12 April: 22:00 PvA op ISAS |
2 | 15 April | 19 April | 16 April: 11:00 Nutshell talk VueJS 19 April: 14:00 Wekelijks PS-begeleider gesprek |
3 | 22 April | 26 April | 22 April: 9:45 Nutshell talk Sprint Review 23 April: 13:40 Nutshell talk Spring framework 26 April: 14:00 Wekelijks PS-begeleider gesprek |
4 | 6 Mei | 10 Mei | 9 Mei: Hemelvaartsdag (Vrij) 10 Mei: 14:00 Wekelijks PS-begeleider gesprek |
5 | 13 Mei | 17 Mei | 17 Mei: 14:00 Wekelijks PS-begeleider gesprek |
6 | 20 Mei | 24 Mei | 20 Mei: 2e Pinksterdag (Vrij) 24 Mei: 14:00 Wekelijks PS-begeleider gesprek |
7 | 27 Mei | 31 Mei | 31 Mei: 14:00 Wekelijks PS-begeleider gesprek |
8 | 3 Juni | 7 Juni | 7 Juni: 14:00 Wekelijks PS-begeleider gesprek 7 Juni: 17:00 Inleveren project |
Risico’s
Om de risico's goed te kunnen weergeven hebben wij gekozen om twee verschillende tabellen te maken
voor de risico's. De technische risico's en de procesmatige risico's. Deze risico tabellen zijn hieronder te
zien.
Technische risico's
Risico | Kans (groot - middel - klein) | Impact(groot - middel - klein) | Tegenmaatregel | Uitwijkstrategie |
---|---|---|---|---|
Confluence services komen eruit te liggen vanwege een storing of soortgelijke issue | Klein | Middel | Dezelfde werkzaamheden gaan uitvoeren in word. | Regelmatige kopieën van het gemaakte werk hebben op bijvoorbeeld OneDrive of lokaal. |
Bitbucket services komen eruit te liggen vanwege een storing of soortgelijke issue waardoor waardoor de code niet kan worden gepusht of gepulld. | Klein | Erg groot | Regelmatige kopieën van het gemaakte werk hebben op bijvoorbeeld OneDrive of lokaal. | Als de storing zich voor een langdurige tijd voordoet dan is zal de code moeten worden verplaatst vanaf de lokale kopie van het project naar een vervangende versiebeheertool zoals GitLab of GitHub. |
JIRA services komen eruit te liggen vanwege een storing of soortgelijke issue waardoor het team niet bij essentiële informatie over het project kan komen. | Klein | Erg groot | Back-ups hebben van de Jira gegevens zodat er altijd mee kan gewerkt worden in het geval van storing | De lokale kopie van de Jira-gegevens delen met teamleden zodat het werk door kan gaan en de communicatie met de werkgever goed houden i.v.m. mogelijke. |
Procesmatige risico's
Risico | Kans (groot - middel - klein) | Impact(groot - middel - klein) | Tegenmaatregel | Uitwijkstrategie |
---|---|---|---|---|
Ziekteverlof van een of meer van de teamleden. Hierdoor zal de voortgang van het project worden gehinderd | Klein | Klein | Duidelijk aanstellen wie welke taak heeft op genomen zodat de taken kunnen worden overgenomen door andere teamleden | Bij een langdurig ziekteverlof zal de planning opnieuw moeten worden gepland en de taken van het uitgevallen teamlid zullen moeten worden overgenomen door de rest van het team. Ook moet er contact op worden genomen met de werkgever voor mogelijke vertraging binnen het project. |