PROBLEEMOPLOSSEN EN ONTWERPEN, DEEL 3
CWB4 Joren Verspeurt Ken Vervaet Jani Wijnands Michiel Vanuytsel Eline Vanrykel
Een dashboard voor het leren TUSSENTIJDS VERSLAG
Co-titularis Erik Duval Begeleider(s) Nick Vannieuwenhoven Joseluis Santos Frans Vanassche
A C A D E M I E J A A R
2 0 1 0 - 2 0 1 1
1
1. Groepsleden Academiejaar 2011-2012 2e Bachelor in de ingenieurswetenschappen Team CWB4: Michiel Vanuytsel Joren Verspeurt Ken Vervaet Jani Wijnands Eline Vanrykel
2. Brainstorm Mindmaps zie BIJLAGE 1, 2 en 3 voor foto’s van de mindmaps De eerste brainstormsessie was niet erg geslaagd aangezien de opdracht verkeerd geïnterpreteerd was. Er werd vanuit gegaan dat er een hulpmiddel voor het studeren gemaakt moest worden, met forums, interactie tussen verschillende gebruikers, profielen, kortom een soort van mobiel en interactief TOLEDO. De eigenlijke bedoeling was echter om een programma te ontwikkelen dat het leren kwantificeert (vandaar de naam quantified learning). Het voornaamste doel van het programma moest zijn dat het het leren kon opmeten en de gegeven analyseert en zo helpt je studiegedrag te optimaliseren en je te positioneren ten opzichte van je medestudenten. De eerste twee mindmaps geven de oorspronkelijke ideeën weer, dus volgens het foute concept. Enkel de mindmap weergeven in BIJLAGE 3 gaat over de tweede, en juiste brainstorm. Hier volgt een korte bespreking van de voornaamste elementen uit deze mindmap. Centraal vanboven zien we het domein social. Dit slaat op de ascpecten die te maken hebben met de persoonlijke zaken van de gebruiker, dus vooral zijn persoonlijk profiel en de door hem verdiende achievements. Het domein praktisch gaat over het inloggen/uitloggen en de opslag van de gebruikergegevens. Dan is er het domein studeren. Dit beslaat alle deelgebieden die bij het studeren komen kijken zoals oefenen, studeren, de tijd en moeite die de gebruiker aan een vak spendeert... Het domein les gaat over de aanwezigheid van de gebruiker in die les en de kwaliteit ervan. Vergaring gaat over het verwerven van de verschillende gegevens en weergave behandelt de grafische presentatie van deze gegevens verwerkt in statistieken. Tot slot slaat het domein persoonlijk alle gegevens op m.b.t. de tijd die gebruiker besteed heeft aan de verschillende activiteiten (slapen, sporten, uitgaan). Persoonlijke reflectie De brainstorm was zeer nuttig, vooral om het foute idee dat er van de opdracht was weg te werken. Na de brainstorm was het veel duidelijker wat er nu precies gevraagd werd en kon er veel specifieker op de opdracht gefocust worden. De begeleiding tijdens de brainstorm en de commentaar van andere groepen waren erg leerrijk. Achteraf bekeken zou het beter zijn geweest om eerst de opdracht beter af te lijnen alvorens te brainstormen.
2
3. Scenario’s Deze paragraaf geeft eerst een korte en bondige beschrijving van de personages die in de verschillende scenario's voorkomen, gevolgd door de verschillende scenario’s zelf. Daarna volgt een persoonlijke reflectie over dit onderdeel van het ontwerp. Persona Ben Ben is een student die steeds naar de les gaat en elke avond zijn les herhaalt. Hij maakt dan ook gretig gebruik van de applicatie om zijn studievooruitgang na te gaan. Hij gebruikt de applicatie niet alleen om bij te houden hoeveel hij voor elk vak studeert, maar ook om zichzelf te kunnen vergelijken met de andere studenten en omwille van het competitieve aspect. Hij is misschien niet de meest sociale student in de groep maar is altijd trots op zichzelf als hij beter scoort dan zijn medestudenten. Thomas Thomas is een student die meestal naar de les gaat, behalve op vrijdag. Hij begint voor de examens te leren in de helft van het semester. Hij gebruikt de applicatie naar behoren. Hij bekijkt de gemiddeldes (hij is eerder visueel ingesteld en is dus blij dat de statistieken grafisch weergegeven worden en niet in cijferwaarden) en doet af en toe zijn best om voor bepaalde dingen langer te werken of bepaalde achievements te behalen. Het zet hem aan tot studeren en hierdoor probeert hij beter te presteren dan zijn vrienden. Hij vergeet echter soms wel eens het programma te gebruiken en de gegevens die voortkomen uit zijn gebruik van de applicatie zijn niet 100% representatief. Bart Bart is een student zonder veel inzet. Hij gaat amper naar de les en doet pas voor de eerste keer een boek open in de blokperiode. Hij ziet niet in hoe een dergelijke applicatie hem zou kunnen helpen, dus hij gebruikt de applicatie vooral passief. Hij kijkt enkel hoeveel de andere studenten leren, maar zorgt zelf niet voor input. Hij voelt zich wel slecht als hij ziet hoeveel uren de mensen die het hoogst in de ranking staan in hun studies steken en dit motiveert hem heel af en toe om iets meer te werken dan gewoonlijk. Professor Barabas De professor gebruikt de applicatie eveneens passief. Hij kijkt geregeld of zijn studenten goed zijn lessen bijhouden. Wanneer dit niet zo is spreekt hij ze in de les eens aan. Ook kijkt hij geregeld naar de ratings die zijn studenten op zijn lessen geven en als deze niet goed zijn probeert hij te achterhalen wat er beter kan. Hij denkt aan de goeie ouwe tijd van vroeger en vraagt zich wel eens af hoe zijn studies gegaan zouden zijn als hij zo'n applicatie had gehad. Scenario's Ben Ben staat ’s morgens op om naar de les te gaan. Vlak voor hij vertrekt opent hij de applicatie en krijgt hij de vraag hoe hij geslapen heeft. Hierna krijgt hij een melding dat hij les heeft. In de les aangekomen geeft hij aan dat hij aanwezig is. Op het einde van de les vraagt de applicatie hoe de les is geweest en Ben geeft een rating van de les. In de namiddag vraagt de applicatie ook om een beoordeling van de oefenzittingen. Na zijn avondeten gaat hij nog even zijn lessen herhalen. Hiervoor gebruikt hij de start/stop-functie, die de duur van het studeren opmeet. Op het einde vult hij in voor welk(e) vak(ken) hij heeft gewerkt en beantwoordt hij nog een aantal extra vragen. Op het einde van de week krijgt Ben een melding waarin staat dat hij hard geleerd
3
heeft gedurende de week en zijn weekend meer dan dubbel heeft verdiend. Hij heeft gedurende de week ook een trofee vrijgespeeld, nl. ’50 golden hours’. Hierdoor krijgt Ben de titel ‘Pro in scheikunde’. Thomas Thomas gaat net als Ben naar de lessen, maar ’s avonds heeft hij met een vriend afgesproken om samen te gaan lopen. Ook hij gebruikt de start/stop-functie, deze keer om bij te houden hoe lang hij heeft gelopen. Na het lopen gaat Thomas zich klaarmaken, want hij gaat deze avond ook nog uit in het centrum. Hierdoor geeft hij de volgende morgen een slechte rating aan zijn slaap, wanneer de applicatie hem dit vraagt. Hij krijgt hierop een melding: “Ben je weer uitgegaan? Hoop dat je je geamuseerd hebt.”. Omdat Thomas geen ochtendmens is en altijd die ochtendmeldingen beu is, past hij het uur van de melding i.v.m. de dagevaluatie aan. Deze stelt hij in op 22 u en de applicatie geeft de melding voor de dagevaluatie bijgevolg nu altijd ‘s avonds. Vlak voor de blok kijkt Thomas nog eens of hij ongeveer even veel gedaan heeft als de andere studenten, zodat hij weet of hij nog een tandje moet bijsteken of niet. Thomas en zijn vrienden zijn ondertussen ook een weddenschap aangegaan met elkaar. Diegene met de minste trofeeën moet op het einde van het jaar de rest trakteren. Dit zet ze aan om meer te leren. Bart Bart wordt wakker. Het is ondertussen al middag. Hij kan dus niet meer naar de hoorcolleges gaan. Even denkt hij na of hij naar de oefenzittingen die namiddag zou gaan. Hij ziet dat hij enkel oefenzitting van Analyse 1 heeft en besluit dat hij niet zal gaan, maar wat later op de dag gewoon even de opgaven zal bekijken. Terwijl hij achter zijn computer zit herinnert hij zich dat hij al een paar weken niet meer naar de studiestatistieken van de applicatie gekeken heeft. Nadat hij zijn laptop opgestart heeft, logt hij in op de site en opent de pagina die de statistieken weergeeft betreffende de gemiddelde studietijd besteed voor elk vak door de studenten. Daar kan hij duidelijk zien dat iedereen vrij veel werk in Analyse 1 steekt. Hij haalt zijn schouders op en logt in op Facebook, om te zien of er al iemand foto's geupload heeft van de TD waar hij gisteren heen geweest is. Een paar weken later is de blokperiode nog maar net om de hoek en Bart gaat nog eens een keer kijken naar de statistieken. Hij ziet dat alle gemiddeldes van de studietijd per vak nog gestegen zijn ten opzichte van de vorige keer toen hij keek en wordt zo geconfronteerd met de harde realiteit dat als hij niet voor alles wil buizen, hij minimaal 12 uur per dag gaat moeten studeren tijdens de blokperiode. Hij voelt zich hierdoor redelijk ontmoedigd. Hij post een Facebookbericht waarin hij zich negatief uitlaat over 'al die strevers' in zijn richting, en maakt zich klaar om op café te gaan. Professor Barabas De professor kijkt elke maand eens hoe het met zijn studenten is gesteld. Hij kijkt hierbij naar hun inzet, zowel binnen als buiten de les, en naar de rating die zijn les krijgt. Als hij dan merkt dat de leerlingen niet genoeg doen, kan hij ze proberen te motiveren, of als zijn les een slechte rating krijgt kan hij proberen te achterhalen waaraan dit ligt.
Persoonlijke reflectie Het gebruik van persona’s was niet nodig, daarentegen was het schrijven van de scenario’s wel nuttig. Deze zijn handig voor het definiëren van nodige use cases en kunnen bij een presentatie gebruikt worden om uit te leggen waarvoor de applicatie zoal gebruikt zal worden. Ze geven met andere woorden een algemene richting aan waar de applicatie heen gaat evolueren.
4
4. Use Cases De use cases zijn opgedeeld in 3 verschillende categorieën van prioriteit. De hoogpriotaire use cases worden in iteratie 1 geïmplementeerd en de hoofzaken in iteratie 2. Indien er nog tijd over is zullen na iteratie 2 de bijzaken extra worden geïmplementeerd. De hoogprioritaire use cases zijn: opstarten van de applicatie, statistieken studietijd raadplegen & opmeten van activiteiten. Hieronder volgt een lijst van de uitgewerkte hoogprioritaire use cases. Opstarten applicatie Doel Opstarten van de applicatie. Samenvatting Het systeem vraagt de gebruiker om zich te identificeren, waarna het systeem opstart. Actoren De gebruiker die probeert in te loggen. Precondities Geen Basisverloop 1. De gebruiker geeft aan dat hij wil opstarten 2. Het systeem vraagt identificatie 3. De gebruiker voert de nodige gegevens in 4. Het systeem verifieert identificatie 5. Het systeem laadt de gegevens van de gebruiker 6. Het systeem geeft het hoofdmenu weer Alternatieve wegen Alternatief 1: De gegeven identificatie klopt niet Tussen 3-4 1. Het systeem geeft een foutmelding 2. Het systeem vraagt opnieuw identificatie 3. Het systeem verifieert identificatie Post condities Geen Prioriteit Hoog Statistieken studietijd raadplegen Doel De gebruiker wil graag zijn statistieken bekijken ivm zijn studietijd. De gebruiker zou graag zijn voortgang (in uren) per vak tov het gemiddelde bekijken op een overzichtelijke manier.
5
Samenvatting De gebruiker geeft aan dat hij de statistieken wil zien. Het systeem zal dan in een schema zijn voortgang per vak (in uren) weergeven tov de gemiddelde voortgang van alle ander gebruikers. Actoren De gebruiker. Preconditie De gebruiker is ingelogd. Het systeem bevat reeds meetgegevens. Basisverloop 1. De gebruiker geeft aan dat hij zijn statistieken ivm studietijd wil bekijken 2. Het systeem opent de juiste pagina 3. Het systeem haalt alle data van de gebruiker op 4. Het systeem berekent de totale studietijd van de gebruiker per vak 5. Het systeem haalt de statistieken over de gemiddelde studietijd per vak van alle geregistreerde gebruikers op 6. Het systeem zet de resultaten van de vorige stappen uit op een staafdiagram 7. Het systeem toont het diagram op de weergegeven pagina 8. Postcondities Geen. Opmerkingen Meer geavanceerde opties zouden beschikbaar kunnen zijn in een volgende iteratie van het systeem, zoals het weergeven van de gemiddeldes per week of per dag. Prioriteit Hoog Opmeten activiteiten Doel De gebruiker laat het systeem de tijdsduur van zijn activiteiten opmeten om zo gegevens te verzamelen. Samenvatting De gebruiker kan aangeven dat hij is begonnen met het studeren van een vak of met sporten. Hij kan zijn pauzes aangeven en ingeven wanneer hij stopt met zijn activiteit. Achteraf vraag het systeem extra informatie over de activiteit. Actoren De gebruiker. Precondities De gebruiker is ingelogd.
6
Basisverloop 1. De gebruiker opent de applicatie. 2. De gebruiker geeft aan dat hij een activiteit wil opmeten. 3. De applicatie vraagt de gebruiker wat de aard van de activiteit is die hij wilt timen 4. De gebruiker geeft aan dat hij gaat studeren en waar deze activiteit plaatsvindt. 5. Het systeem vraagt de gebruiker voor welk vak hij gaat studeren. 6. De gebruiker geeft aan voor welk vak hij gaat studeren 7. Het systeem biedt de gebruiker de mogelijkheid om aan te geven wanneer hij start. 8. De gebruiker geeft aan dat zijn activiteit start. 9. Het systeem begint de tijdsduur van de activiteit te timen. 10. Het systeem geeft de gebruiker de mogelijkheid aan te geven wanneer hij pauzeert of stopt. 11. De gebruiker geeft aan dat hij zijn activiteit heeft stopgezet. 12. Het systeem stopt met timen en slaat de tijdsduur op. 13. Het systeem vraagt de gebruiker of hij oefeningen of theorie heeft gedaan 14. De gebruiker geeft aan dat hij theorie heeft gestudeerd 15. Het systeem vraagt de gebruiker hoeveel pagina's hij gestudeerd heeft 16. De gebruiker geeft in hoeveel pagina's hij gestudeerd heeft 17. Het systeem vraagt de gebruiker om een rating (op 5) te geven 18. De gebruiker geeft een rating door van de studie-efficiëntie 19. Het systeem slaat de antwoorden op in een bestandje 20. Het systeem keert terug naar het hoofdmenu. Alternatieve wegen Pauzeren Tussen 8 en 9, indien de gebruiker wil pauzeren: 1. De gebruiker geeft aan dat hij zijn activiteit tijdelijk stopzet en een pauze neemt. 2. Het systeem stopt met timen maar onthoudt de reeds ingevoerde gegevens over de lopende activiteit. 3. Het systeem biedt de gebruiker de mogelijk aan te geven wanneer hij zijn activiteit hervat. 4. De gebruiker geeft aan dat hij zijn activiteit verderzet. 5. Het systeem timet verder. Gebruiker gaat sporten Vervangt 4 en 5, als de gebruiker gaat sporten 1. De gebruiker geeft aan dat hij gaat sporten 2. Het systeem vraagt welke sport de gebruiker gaat beoefenen 3. De gebruiker geeft aan welke sport hij gaat beoefenen Oefeningen gemaakt Vervangt 14 tot en met 16, als de gebruiker oefeningen heeft gemaakt 1. De gebruiker geeft aan dat hij oefeningen heeft gemaakt 2. Het systeem vraagt de gebruiker hoeveel oefeningen hij gemaakt heeft 3. De gebruiker geeft aan hoeveel oefeningen hij gemaakt heeft Gebruiker heeft gesport Vervangt 13 tot en met 18, als de gebruiker gedaan heeft met sporten 1. Het systeem vraagt de gebruiker om een rating te geven van de sportactiviteit 2. De gebruiker geeft een rating van de sportactiviteit 7
Gebruiker annuleert Deze weg kan gevolgd worden op elke moment na de start van het timen 1. De gebruiker geeft aan dat hij de meting wilt annuleren. 2. Het systeem vraagt de gebruiker of hij wilt annuleren. 3. De gebruiker bevestigt dat hij wilt annuleren, respectievelijk annuleert de annulatie. 4. Het systeem annuleert de meting, respectievelijk keert terug naar de timerweergave. Postcondities Er zijn nieuwe data verzameld over een bepaalde activiteit: duur, kwaliteit, locatie. Prioriteit Hoog De minder prioritarie use case zijn de volgende: aanwezigheid melden, instellingen wijzigen, achievement verdienen, melding geven ivm slaap, meetgegevens aanpassen, zelfgemaakte statistieken weergeven, top 5 statistieken weergeven. Hieronder volgt de uitwerking van deze use cases. Aanwezigheid melden Doel De gebruiker wil het systeem laten weten dat hij/zij aanwezig is in een bepaalde les. Samenvatting Het systeem vraagt de gebruiker of hij/zij aanwezig is in een bepaalde les. Achteraf vraagt het systeem hoe interessant de les was en hoe goed de gebruiker heeft opgelet. Actoren De gebruiker Preconditie Het systeem weet wanneer de lessen gepland zijn. Basisverloop 1. 5 min. voor de les begint, geeft het systeem een melding met de vraag of de gebruiker aanwezig is in een bepaalde les. 2. De gebruiker duidt aan dat hij/zij aanwezig is. 3. Het systeem slaat op dat de gebruiker aanwezig is in de les, en telt de lesduur op bij de studietijd van dat vak. 4. Als de les gedaan is, vraagt het systeem met een melding aan de gebruiker om de les te evalueren op 5 punten (niet interessant tot zeer interessant) en hoe goed hij/zij heeft opgelet. 5. Het systeem slaat de ingevoerde gegevens op.
8
Alternatieve wegen Gebruiker is niet aanwezig in de les Vervang 2 tem 5 1. De gebruiker geeft aan dat hij/zij niet aanwezig zal zijn in de bepaalde les. Postcondities Geen. Prioriteit Hoofdzaak Instellingen wijzigen Doel De applicatie gebruiksvriendelijker maken voor de gebruiker. Samenvatting De gebruiker past de instellingen van zijn applicatie aan. Actoren De gebruiker van de applicatie Basisverloop 1. De gebruiker opent de applicatie. 2. Het systeem geeft het hoofdmenu weer. 3. De gebruiker kiest de optie instellingen in het hoofdmenu. 4. Het systeem verlaat het hoofdmenu en het instellingenvenster wordt geopend. 5. De gebruiker klikt op de optie taal om de taal van de applicatie te veranderen. 6. Het systeem toont een lijst met alle beschikbare talen. 7. De gebruiker selecteert de juiste taal. 8. Het systeem slaat de wijzigingen op, verandert de taal van de applicatie en keert terug naar het instellingenvenster. 9. De gebruiker kiest de optie profiel binnen het instellingenvenster. 10. De applicatie toont de profielgegevens van de gebruiker. Dit houdt in: naam, studierichting, reeks, studentennummer,… 11. De gebruiker kiest om zijn reeks te veranderen. 12. Het systeem toont de lijst met beschikbare reeksen binnen de studierichting. 13. De gebruiker kiest de juiste reeks. 14. Het systeem slaat de gegevens op. 15. De gebruiker verlaat zijn profielinstellingen en keert bijgevolg terug naar het instellingenvenster. 16. Het systeem toont het instellingenvenster. 17. De gebruiker verandert de optie actieve gebruiker in passieve gebruiker. Dit houdt in dat er een aantal standaardstellingen gewijzigd worden, die ook betrekking hebben op de statistieken. 18. Het systeem slaat de wijziging op. 19. De gebruiker kiest nu om de instellingen i.v.m. meldingen te wijzigen. 20. Het systeem opent een overzicht van de meldingen en geeft aan of ze aan of uit staan. 21. De gebruiker zet de optie meldingen van aanwezigheid ( in de les ) uit.
9
22. Het systeem slaat de wijziging op en zal nu geen meldingen meer geven bij de start van de les of de gebruiker aanwezig is maar zal dit op het moment van dagelijkse evaluatie vragen. 23. De gebruiker kiest om de optie dagelijkse evaluatie te wijzigen. 24. Het systeem toont het uur van dagelijkse evaluatie. 25. De gebruiker past het uur aan en klikt op ok. 26. Het systeem slaat het nieuwe uur op en zal de dagelijkse evaluatie telkens op het nieuwe uur geven. 27. De gebruiker verlaat de optie meldingen. 28. Het systeem keert terug naar het instellingenvenster. 29. De gebruiker kiest de optie instellingenvenster verlaten. 30. Het systeem verlaat het instellingenvenster en keert terug naar het hoofdmenu. Alternatieve wegen Profielinstellingen Dit vervangt stap 11 t.e.m. 14: 1. De gebruiker kiest om zijn naam/r-nummer te veranderen. 2. Het systeem toont een inputbox waarin de gebruiker de juiste naam/r-nummer kan typen. 3. De gebruiker vult de juiste gegevens in en klikt op opslaan. 4. Het systeem slaat de gegevens op en keert terug naar de het profielinstellingenvenster. of 1. De gebruiker kiest om zijn studierichting te veranderen. 2. Het systeem toont een lijst met alle mogelijk studierichtingen. 3. De gebruiker selecteert de juiste studierichting. 4. Het systeem slaat dit op en keert terug naar het profielinstellingenvenster. Actieve/passieve gebruiker Dit vervangt stap 17: 1. De gebruiker verandert de instelling passieve gebruiker naar actieve gebruiker. 2. Het systeem slaat de wijziging op. Meldingen Dit vervangt stap 21 en 22: 1. De gebruiker kiest om de meldingen van aanwezigheid in de les aan te zette. 2. Het systeem slaat de wijzigingen op. Postcondities: Alle gewijzigde instellingen zijn opgeslagen. Prioriteit Hoofdzaak Achievement verdienen Doel Het systeem meldt de gebruiker dat hij een bepaalde ‘mijlpaal’ in zijn studievooruitgang heeft geboekt en kent hem een bepaalde ‘trofee’ toe.
10
Samenvatting Als de gebruiker een bepaalde achievement heeft behaald zal het systeem hier een melding van geven en een trofee toevoegen aan de lijst met trofees van de gebruiker. Actoren De (vlijtig studerende) gebruiker Precondities De gebruiker heeft gestudeerd of geoefend voor een bepaald vak. In het systeem zijn een aantal voorwaarden geïmplementeerd die, wanneer ze voldaan zijn, een achievement opleveren. Basisverloop 1. De gebruiker heeft een bepaalde studieactiviteit beëindigd. 2. Het systeem voegt dit toe aan de voorgaande studieactiviteiten voor dat vak. 3. Het systeem controleert of de totale prestatie voor dat vak overeen komt met een van de voorgeïmplementeerde achievements. 4. Het systeem merkt dat een achievement bereikt is. 5. Het systeem geeft de gebruiker een melding dat hij een ‘trofee’ heeft verdient. 6. De gebruiker kan deze melding dan van het scherm verwijderen en komt gewoon op het scherm waar hij eerst was. 7. Het systeem voegt de behaald trofee toe aan de lijst van reeds behaalde trofeëen van de gebruiker. Postcondities Er is een nieuwe trofee toegevoegd aan de lijst van behaalde trofeeën de gebruiker. Prioriteit Hoofdzaak Melding geven i.v.m. met slaap Doel Informatie vergaren over de slaap van de gebruiker. Samenvatting Het systeem vraagt de eerste keer dat de gebruiker die dag de applicatie gebruikt hoe lang de gebruiker geslapen heeft en hoe goed. Actoren De gebruiker Preconditie Geen. Basisverloop 1. De gebruiker start het systeem op. 2. Het systeem ziet dat er voor deze datum nog geen slaapgegevens zijn voor de gebruiker. 3. Het systeem geeft een bericht weer waar de slaapduur en slaapkwaliteit kunnen worden aangegeven. 4. De gebruiker vult de gevraagde gegevens in 11
5. Het systeem slaat de slaapgegevens op. 6. Het systeem vraagt de slaapgemiddeldes voor de gebruiker op. 7. De gebruiker kan nu de andere functies van de applicatie gebruiken. Alternatieve wegen Er zijn wel al slaapgegevens voor de gebruiker Alle stappen tussen de eerste en de laatste worden overgeslagen. De gebruiker heeft beduidend minder geslapen dan het gemiddelde Invoegen voor de laatste stap Het systeem geeft een melding weer over het belang van slaap. De gebruiker heeft beduidend meer geslapen dan het gemiddelde Invoegen voor de laatste stap Het systeem geeft een melding weer waarin staat dat langer slapen niet noodzakelijk beter is. Postcondities De gemiddeldes in verband met de slaap van de gebruiker zijn aangepast. Prioriteit Hoofdzaak Meetgegevens aanpassen Doel Aanpassen van meetgegevens die door de applicatie verkeerd zijn gemeten Samenvatting De gebruiker geeft aan dat hij gegevens wil aanpassen. Het systeem geeft de gegevens van de gebruiker weer. De gebruiker past de benodigde gegevens aan. Actoren De gebruiker die de gegevens wil aanpassen Precondities De gebruiker is reeds geregistreerd en heeft de applicatie geïnstalleerd op zijn mobiel en heeft reeds enkele gegevens verzameld. Basisverloop 1. De gebruiker geeft aan dat hij gegevens wil aanpassen 2. Het systeem haalt de beschikbare gegevens op 3. Het systeem vraagt aan de gebruiker welke gegevens hij wil aanpassen 4. De gebruiker kiest welke gegevens hij wil aanpassen 5. Het systeem geeft de aan te passen mogelijkheden weer 6. De gebruiker past de gegevens aan 7. De gebruiker geeft aan dat de gegevens zijn aangepast 8. Het systeem geeft een samenvatting van de nieuwe gegevens weer 9. Het systeem vraagt de gebruiker om de nieuwe gegevens te bevestigen 10. De gebruiker bevestigd de nieuwe gegevens 11. Het systeem slaagt de nieuwe gegevens op
12
Alternatieve wegen Alternatief 1: De gebruiker bevestigd de nieuwe gegevens niet Vanaf 9 1. Het systeem vraagt de gebruiker om de weigering te bevestigen 2. De gebruiker bevestigd de weigering 3. Het systeem annuleert de wijzigen Post condities De nodige gegevens zijn aangepast door de gebruiker en opgeslagen. Prioriteit Hoofdzaak Zelfgemaakte statistieken weergeven Doel De gebruiker bekijkt een zelfgemaakte statistiek van de mogelijke gegevens Samenvatting De gebruiker geeft aan welke gegevens hij tegen elkaar wil uitzetten en het systeem geeft dit weer Actoren De gebruiker die zelf een statistiek wil maken Precondities De gebruiker heeft reeds enkele meetgegevens die hij wil uitzetten Basisverloop 1. De gebruiker geeft aan dat hij zelf een statistiek wil maken 2. Het systeem haalt de reeds gemeten gegevens op 3. Het systeem geeft de mogelijke gegevens weer 4. De gebruiker kiest hier twee gegevens uit om tegen elkaar uit te zetten 5. Het systeem haalt deze gegevens op 6. Het systeem geeft de gevraagde statistiek weer aan de gebruiker Alternatieve wegen Alternatief 1: De gebruiker heeft niet genoeg gegevens Vanaf 2 1. Het systeem geeft een foutmelding dat de gebruiker niet genoeg gegevens heeft 2. Het systeem gaat terug naar het hoofdmenu Post condities De gebruiker is zijn zelfgemaakte statistiek aan het bekijken Prioriteit Hoofdzaak
13
Top 5 statistieken weergeven Doel De applicatie opent een top 5 van alle gegevens Samenvatting De gebruiker vraagt om de top 5 gegevens weer te geven. Het systeem haalt deze op en geeft deze weer Actoren De gebruiker die de top 5 gegevens wil bekijken Precondities De gebruiker heeft reeds enkele meetgegevens. Basisverloop 1. De gebruiker geeft aan dat hij de top 5 gegevens wil bekijken 2. Het systeem haalt de gegevens van de gebruiker op 3. Het systeem sorteert deze in een top 5 van verschillende categorieën Alternatieve wegen Alternatief 1: De gebruiker heeft niet genoeg meetgegevens om een top 5 te maken Vanaf 2 1. Het systeem geeft een foutmelding dat de gebruiker niet genoeg gegevens heeft 2. Het systeem keert terug naar het hoofdmenu Post condities De gebruiker bekijkt de top 5 gegevens Prioriteit Midden Verder zijn er nog de use cases die bijzaak zijn, zoals lessenrooster en weekevaluatie weergeven. Deze worden later nog uitgewerkt indien hier tijd voor is. Persoonlijke reflectie Deze use cases schrijven was op het moment zelf nogal moeilijk aangezien er nog niet echt een heel erg duidelijk beeld was van wat de applicatie zou doen, en welke functionaliteiten de applicatie zou hebben. Later, toen er moest worden nagedacht over de concrete werking van de applicatie door het domeinmodel en het klassendiagram op te stellen hebben deze use cases zeker hun nut bewezen. Ze waren heel erg nuttig en vormden een leidraad bij het opstellen van het klassendiagram en om geen enkele functionaliteit van de applicatie te vergeten. Achteraf gezien, werd er beter vroeger nagedacht over de concrete invulling van de applicatie zodat de use cases van de eerste keer juist en volledig zouden zijn.
14
5. Domein Model
Hieronder volgt een korte uitleg wat elk domein voorstelt. Student De gebruiker van onze applicatie, een typische Leuvense student. ISP Het Individueel Studie Programma van de student, de verzameling van de vakken die deze student volgt. Planning Het uurrooster van de student, met hoorcolleges, oefenzittingen en zelfgeplande activiteiten. Meetgegevens Alle verzamelde gegevens over een bepaalde activiteit die door de gebruikers wordt uitgevoerd. Vak Een bepaald vak, dat hoorcolleges en oefenzittingen omvat en gegeven wordt door een bepaalde prof. Prof Hoogleraar aan de KUL.
15
Statistiek Wat weergegeven wordt aan de gebruiker samengesteld op basis van de verzamelde meetgegevens. Kan persoonlijk zijn of een gemiddelde over alle studenten. Achievement Een systeem om de student te 'belonen' en aan te sporen om te studeren. Een bepaalde combinatie van prestaties (studie, sport, slaap...) levert een achievement op. Activiteit ● Studie: Het studeren voor een bepaald vak, volgen van hoorcolleges en oefenzittingen. ● Slaap: Hoeveel de student slaapt en hoe goed. ● Sport: Elke sportieve activiteit die de student doet. Vragenlijst Wordt aan de student voorgelegd na elke activiteit. Hij geeft hierin aan welke activiteit hij uitgevoerd heeft en enkele kenmerken hiervan. Persoonlijke reflectie Het domeinmodel was erg nuttig bij het opstellen van het klassendiagram dat bij de applicatie hoort. Door het opstellen van dit domeinmodel, was er al ver nagedacht over hoe zaken zouden aangepakt worden met betrekking tot de verdeling van de functionaliteiten van de verschillende klassen. Bijna alle domeinen stellen een java-klasse voor, op een paar uitzonderingen na. Erg nuttig was het nadenken over de associaties die moeten bestaan tussen de verschillende modellen. Hierdoor kregen we een beter beeld van hoe de afhankelijkheid tussen de verschillende klassen zou zijn. Het opstellen van het domeinmodel is vrij goed verlopen.
6. Architectuur Voor deze webapplicatie werd gekozen voor een gelaagde structuur, met enkele JSP-pagina’s met verscheidene JQuery-elementen en een gemeenschappelijke CSS-sheet (om een consistente gebruikerservaring te waarborgen) als user interface, die een JAVA servlet aanstuurt met enkele use case handlers. De dataverwerking gebeurt dan door enkele klassen die een model vormen van de gebruikersomgeving om op een efficiente manier de vergaarde data voor te stellen, te verwerken en op te slaan. Dit alles binnen de Google App Engine, waardoor we ook gebruik kunnen maken van de Google Datastore als databank.
7. Klassendiagram Voor de figuur van het klassendiagram is terug te vinden in BIJLAGE 4. Hier volgt een bondige bespreking van de klassen en hun verantwoordelijkheden. Activiteit Dit is de superklasse van de klassen sport, studie en slaap. Deze klasse registreert wanneer de gebruiker begonnen is met de aangegeven activieit evenals de pauze en wanneer hij ermee is gestopt. De duur kan worden opgevraagd met de methode getDuur(). Ook de rating (een waardering op 5) wordt bijgehouden van elke activiteit.
16
Studie Deze klasse is een subklasse van activiteit. Deze klasse studie is verantwoordelijk voor het opslaan van alle specificaties die te maken hebben met studeren. Ze slaat voor elke studiesessie op of er theorie gestudeerd is of of er oefeningen gemaakt zijn. Ook het aantal pagina’s / oefeningen en de studieplaats worden opgeslagen. Ook of er samen of alleen gestudeerd is geweest wordt opgeslagen. Slaap Slaap is een subklasse van activiteit zonder extra functionaliteiten. Sport Sport is een subklasse van activiteit zonder extra functionaliteiten. Student Deze klasse slaat de triviale dingen op zoals voornaam; achternaam en ISP. Bovendien worden de behaalde achievements en activiteiten die hij heeft gedaan opgeslagen in een lijst. ISP Deze klasse bevat een lijst van alle vakken die de gebruiker dit academiejaar opneemt. Vak Deze klasse slaat een lijst met dates op die de hoorcolleges moeten voorstellen; idem voor de oefenzittigen behorend bij het vak. Bovendien slaat hij ook de voornaamste gegevens op van dat vak, zoals aantal studiepunten, naam,... Statistiek Bevat een lijst met studenten, die allemaal een ISP hebben met vakken die ze opnemen. Deze klasse berekent ook de gemiddeldes van elke student. Deze klasse wordt ook gebruikt om na te gaan of een achievement al behaald is of niet. Planning Deze klasse slaat een ISP object op. Ook kan deze klasse en lijst met geplande lesmomenten en oefenzittingen gegeven in chronologische volgorde. Ofwel geef je een dag in en krijg je een lijst met geplande lesmomenten en oefenzittingen voor die gegeven dag terug, ofwel geef je een vak en krijg je een lijst met chronologisch gerangschikte lesmomenten en oefenzittingen voor dat vak voor de hele week. AchievementEngine Deze klasse heeft een lijst met alle mogelijke activiteiten die men kan behalen. De methode sync krijgt een lijst met activiteiten door die behoren bij een student; en geeft een lijst met achievements terug die de behoren bij de behaalde activiteiten. Achievement Deze klasse bevat een lijst met doelstellingen. De methode isVoldaan() controleert of de gegeven achievement behaald is of niet. Doelstelling Deze klasse bevat een naam, een samenvatting en een code. Deze code is bedoeld om gemakkelijk te controleren of een bepaalde doelstelling is behaald of niet.
17
UrenDoelstelling Deze klasse is een subklasse van Doelstelling. De klasse is een soort van achievement die men kan behalen, met name een achievment die te maken heeft met een bepaalde tijd die men aan iets spendeert. Dit is de superklasse van UrenGestudeerd, UrenGesport en UrenGeslapen. UrenGestudeerd Deze klasse is een subklasse van UrenDoelstelling. Het bevat een veld studiepunt die het aantal uur dat men theoretisch aan een vak moet spenderen. (1 SP = 40 uur) UrenGesport Dit is een subklasse van de klasse UrenDoelstelling zonder extra functionaliteiten. UrenGeslapen Dit is een subklasse van de klasse UrenDoelstelling zonder extra functionaliteiten.
8. Technologie JSP1 JSP staat voor JavaServer Pages. Het is een Java-technologie om te helpen bij het maken van dynamische webpagina’s. JSP’s gelijken op HTML pagina’s die een mix van HTML tags, data en Java code bevatten. Hoewel JSP niet meer kan dan servlets doen, zijn ze handiger om HTML te creeëren. jQuery Om de vraag ‘wat is jQuery’ te beantwoorden, kijken we eerst op de officiële site van jQuery. We krijgen het volgende te lezen: “jQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions for rapid web development. jQuery is designed to change the way that you write JavaScript.” 2 Kortom, jQuery is een javascript bibliotheek die bedoeld is om het programmeren te vereenvoudigen. Op een eenvoudige manier kan men een stuk van een site selecteren, aanpassen, verbergen, tonen en special effects toevoegen. jQuery wordt vooral veel gebruikt voor sites die veel interactie vragen met de gebruiker. De belangrijkste troef van jQuery wordt meteen duidelijk als je de slogan leest: “write less, do more”. Alles is eenvoudig aan te passen is, met zo weinig mogelijk moeite. Efficiëntie boven alles! Daarenboven is jQuery erg handig om te gebruiken door de mogelijkheid tot het installeren van verscheidene plug-ins die gemakkelijk te installeren zijn. Uiteraard zal jQuery van pas komen bij het maken van de applicatie. Zeker omdat de applicatie veel interactie met de gebruiker vraagt om goed te kunnen functioneren. Bovendien zal onze applicatie erg dynamisch zijn, en om dit te kunnen verwezelijken zal jQuery enorm handig blijken.
1 2
http://en.wikipedia.org/wiki/JavaServer_Pages, 28/10/11 http://jquery.com/ 18
JavaScript3 JavaScript is een client-sided programmeertaal die gebruikt wordt om interactieve websites te bouwen, zoals GoogleMaps, etc. Dit geeft zeer mooie resultaten, die handig zijn in gebruik. In plaats van steeds een nieuwe pagina te moeten laden, kan het denkwerk aan de cliënt-zijde gebeuren, wat een vloeiend eindresultaat biedt. De programmeertaal wordt vaak verward met Java, hoewel er geen fundamentele gelijkenissen zijn. Zo is JavaScript, net als Ruby, PHP, Pearl een ‘interpreted language’. Dit wil simpelweg zeggen dat ze niet gecompileerd wordt zoals Java, maar indirect wordt uitgevoerd door een ‘interpretor’. Dit heeft als voordeel dat projecten snel kunnen worden ontwikkeld, omdat ze niet steeds opnieuw moeten worden opgebouwd, om daarna de gecompileerde code te uploaden. Dit heeft echter als nadeel dat de snelheid van de applicatie sterk achteruit gaat, afhankelijk van de complexiteit van de code. Nog een nadeel is dat de documentatie niet erg handig om te gebruiken is, in tegenstelling tot de documentatie van bijvoorbeeld PHP. Een ander kenmerk van JavaScript is dat het prototype-based is, hoewel het ook enkele klassen-features heeft. Prototype-gebaseerd programmeren is een vorm van objectgeoriënteerd programmeren waarin geen klassen aanwezig zijn. In plaats van klassen te gebruiken, wordt een object kopie gemaakt van bestaande objecten, welke dienen als prototypen.4
9. Planning zie BIJLAGE 5 voor de Gantt-chart
10. Vakintegratie De concrete inhoud van het van Methodiek van de Informatica was objectgericht programmeren in java. Aangezien een groot deel van de implementatie in java zal gebeuren, zal deze achtergrondkennis enorm van pas komen. Er werd inzicht bijgebracht in de werking van klassen en hun onderlinge interactie. Klassen bestaan uit velden, constructors en methodes, die zowel privaat en publiek kunnen zijn. Deze begrippen zullen zeker gebruikt worden in het project van P&O3. Ook het belangrijke begrip overerving tussen klassen kwam aan bod in deze cursus. Dit zal zeker nuttig zijn om codeduplicatie te vermijden. Ook de praktijkervaring opgedaan door het practicum heeft gezorgd voor een beter zicht op de verschillende aspecten die bij een project komen kijken, van eerste ruwe ontwerpen, tot concrete implementaties en debugging. Ook problemen die onderweg zullen opduiken, waar in eerste instantie geen rekening mee werd gehouden, kunnen nu efficiënter opgelost worden dankzij de beter uitgewerkte ontwerpfases tijdens P&O3.
3
4
http://freevideolectures.com/Course/2331/Building-Dynamic-Websites/8, 27/10/11 http://nl.wikipedia.org/wiki/Prototype-gebaseerd_programmeren, 27/10/11 19
De opgedane ervaring met teamwerk en het schrijven van een technisch verslag in P&O1 en 2 was zeker een pluspunt bij deze uitwerking. Voor de verwerking van de meetgegevens van de verschillende gebruikers kunnen verschillende basisbegrippen uit de cursus beschrijvende statistiek gebruikt worden. Vooral het berekenen van de gemiddeldes/mediaan en het efficiënt weergeven van de verschillende gegevens zal toegepast kunnen worden.
11. Besluit Samenvattend kan er gesteld worden dat de afgelopen eerste weken met sessies een leerrijke ervaring waren. De eerste stappen in de richting van een functionele applicatie zijn nu gezet, na een introductie tot de basisvaardigheden van het design van webtoepassingen. Achteraf gezien waren de designsessies die we gedaan hebben erg constructief en hebben ze een goed beeld gegeven van het verloop van zulke activiteiten in een professionele omgeving. Er is zo inzicht verworven in de structuur van het teamwerk vereist voor zulke taken. Er zijn geen specifieke opmerkingen omtrent de uitvoering. In de volgende iteratie kunnen de verworven ervaring en vaardigheden nogmaals, deze keer mogelijk nog efficiënter en met meer inzicht, aangewend worden.
12. Appendix In onderstaande tabel is te vinden hoeveel tijd (in uren) er door de verschillende teamleden aan de verschillende deelopdrachten is besteed.
20
13. Bijlagen BIJLAGE 1: Eerste brainstorm
21
BIJLAGE 2: Eerste brainstorm, ordelijke mindmap
22
BIJLAGE 3: Tweede brainstorm
23
BIJLAGE 4: Klassendiagram
24
BIJLAGE 5: Gantt-chart
25