AuteurseAuteurs:
Naam | Studentnummer |
---|---|
657079 |
...
Table of Contents |
---|
Inleiding
Voor het OOSE-project zijn de klassen opgesplitst in verschillende groepen opgesplitst. Ik maak deel van het team Smalltalk. Onze opdracht is vanuit het bedrijf Regterschot Racing opgedragen. Regterschot Racing wilt een dashboard ontwikkeld hebben waarmee ze het live tracken van data kunnen weergeven, op een door ons gemaakte website. De sensoren worden door het embedded team van Regterschot Racing uitgelezen en doorgestuurd naar ons. Dit wordt gedaan met behulp van een broker. Door hier direct de data uit te lezen kunnen wij we de data live op de website te kunnen weergeven. Naast dat de data live zichtbaar moet kunnen zijn moet de website ook veilig en betrouwbaar zijn. Vanuit Regterschot Racing kwam al snel met een eis die ze graag zouden willen zien, en dat is dat de data 20 keer per seconden moest worden geupdate. Maar als dit niet haalbaar was door performance problemen wouden ze het zo snel mogelijk kunnen zien op de website.
...
IN dit document zal ik ingaan op de volgende hoofdstukken. Als eerste zal ik het hebben over de kwaliteit van de deelproducten die wij we hebben gemaakt. In het tussentijdse zal ik kijken naar het plan van aanpak, het SRS en SDD en als laatste een stukje naar de code wat we tot dan hebben gemaakt. Hierna zal ik kijken naar de projectmethoden, welke we hebben gebruikt en hoe het ging. In het volgende hoofdstuk rollen zal ik beschrijven welke rollen ik heb gehad in dit project en hoe ik ze heb uitgevoerd. In het hoofdstuk competenties zal ik een aantal door school gestelde competenties uitwerken. In het tussentijdse verslag zal ik er 2 uitwerken en dan nog 2 aan het eind. Dan ga ik in het hoofdstuk van leerdoelen nog is dieper in op mijn leerdoelen, ik zal dan uitleggen waarom ik mijn leerdoelen heb gehaald of juist niet. Als laatste zal ik een eindoordeel geven over het project, hier zal ik kijken naar het geheel van het project en mijn oordeel geven of ik het goed vind of slecht en wat er beter kan voor volgende projecten.
Tijdens het project kwam ik geen grote uitdagingen tegen. Het eerste opstakel wat mogelijk voor problemen kon zorgen was de frontend framework die wij hadden gekozen. Dit was AngularJS, nu heb ik al wel evaring met angular dus dat zal wel goed maar de rest van mijn groepje had er nog nooit mee gewerkt. Het kon dus zijn dat ze tegen problemen aan gingen lopen waar ik ook geen antwoord op wist. Gelukkig was er erg veel documentatie van het framework zodat veel van de vragen die we hadden ook een duidelijk antwoord hadden. Dan hebben we voor het data ophalen voor de website een API gemaakt. Dit hebben we gedaan doormiddel door middel van de kennis die we hebben opgedaan tijdens DEA toe te passen en zo gemakkelijk een nette API op hebben gezet.
...
Voor ons product was documentatie en de mogelijkheid tot uitbreidbaarheid van hoogste prioriteit. We hebben uiteindelijk een werkende website met bijbehorende API gemaakt en daarbij de nodige documentatie over welke keuzes we hebben gemaakt en hoe wij we het uiteindelijk hebben opgezet.
Voor de documentatie vind ik dat we een redelijk goed product hebben weten op te zetten. Het is verre van perfect maar we hebben het wel zo gemaakt dat als een volgend groepje de documentatie krijgt, ze er zeker mee verder moeten kunnen. Ik vind wel dat we een aantal steken hebben laten liggen hierin. Bijvoorbeeld ipv i.p.v het coderen en dan documenteren was niet de juiste volgorde. We hadden eerst zoveel mogelijk van het SRS en SDD moeten maken voordat we ook maar gingen denken aan code schrijven. Bijvoorbeeld als we eerst alle UML hadden gemaakt, dan hadden we dit via astah direct om kunnen zetten naar code en hadden we alleen nog de logica moeten implementeren. Dit had heel veel tijd gescheelt met het maken van de API. Maar verder zullen deze documenten de volgende groepen genoeg ondersteuning brengen zodat ze de applicatie kunnen uitbreiden.
Het frontend is naar mijn mening prima. De website heeft een gebruiksvriendelijke interface. Alleen duurt het laden van de applicatie erg lang maar dat heeft meer met de huidige server te maken waar de de data ophaaldwordt opgehaald. Als die een sterkere server erachter heeft draaien dan zal de performance ook zeker grote verbeteringen geven. Verder was de eis vanuit Regterschot dat de live data 20 keer seconden op de site geupdate moest worden. Dit hebben we alleen niet kunnen testen omdat het draaien van een broker lokaal erg intensief was. Ik ben daarom ook van mening dat we dit mogelijk anders hadden kunnen oplossen. Maar omdat we dit te laat hadden ingezien hebben we moeten roeien met de riemen die we hadden. Dus we hebben wel live data op de applicatie maar helaas is het wel zeer ondermaats van wat Regterschot in de eerste instantie zou willen.
De backend zit erg sterk in elkaar. Tijdens het project heb ik mijn server opgezet om voor iedereen te kunnen testen. Dit was gedaan zodat iedereen ten allertijde de zelfde dezelfde database en data had en niet ineens voor rare veranderingen komen te staan. Dit had zo zijn voor en nadelen maar in het algemeen werkte het zeer prettig. Doordat we de UML niet eerst hebben gemaakt hadden we veel conflicts met naamconventies. De conflicts zijn uiteindelijk wel opgelost, maar het koste kostte veel meer tijd dan nodig was als we eerst alle UML hadden gemaakt.
...
Voor de design decisions heb ik meegeholpen met het maken van de database (Hoofdstuk 5.1). Omdat de meeste groepsgenoten net van de propedeuse afkwamen, en hun nog niet echt met databases hadden gewerkt heb ik voorstel gedaan om mee te helpen. Hierdoor was er minstens een iemand die ook ISE heeft gedaan en tips kon geven of eventueel makkelijk dingen constraints kon aanpassen. Hierbij heb ik me dus vooral bezig gehouden met de connecties tussen tabellen (Foreign en primary keys). Uiteindelijk heb ik de rest bijgeleerd hoe je makkelijk de keys kan toevoegen en aanpassen zonder al te veel code. Dit zorgde ervoor dat wanneer er keys veranderd moesten worden dat dat een stuk makkelijker ging. Ik heb hierwel bij geleerd hoe ik beter mijn mening moet overbrengen omdat personen uit mijn groep vrij standvast waren over het koppelen van keys met code, in plaats van de tooling die we hadden gekregen.
...
Verder heb ik het maken van de de Tab CRUD (Hoofdstuk 4.4 Tab CRUD) op mij genomen. Dit was vooral omdat ik in de eerste instantie veel bezig was geweest met de tabs weergeven op de webapplicatie. En aangezien ik dat dan gemakkelijk mee heb kunnen nemen is dat ook gebeurd.
...
OOSE P-05. De student implementeert een gedistribueerd systeem, evalueert het ontwerp en de realisatie daarvan en zorgt voor traceerbaarheid daartussen en naar de functionele en niet-functionele eisen.
Van Regterschot hadden wij we te horen gekregen dat ze alleen de hoog nodige security nodig hadden zodat de data veilig is. Om dit te kunnen doen heb ik een JWT token geimplementeerd die ervoor zorgt dat niemand bij de data kan komen van Regterschot behalve de mensen die kunnen inloggen in de website. De geimplementeerde token word gemaakt op de door ons gemaakte API. Wanneer de gebruiker inlogt, word er een geëncrypteerde token gestuurd (Lijn 12+15) die wanneer de gebruiker data opvraagd gestuurd wordt naar de API zodat die kan kijken of de gebruiker daadwerkelijk iemand van het systeem is.
Dit was vrij lastig omdat groepsgenoten het eerst anders wouden doen. Dit koste kostte veel tijd en gaf veel stress omdat het een van de weinige vaste eisen waren die Regterschot hadden gesteld. Voor volgende projecten ga ik dan ook met de groep overleggen welke methoden we zullen gaan gebruiken zodat we niet weken vast zitten op iets wat veel makkelijk opgelost had kunnen worden.
...
- Ik ga mij opzetten als gespreksleider tijdens de gesprekken met de product owner. Hierdoor wil ik mijn gespreksvaardigheden bijwerken en verbeteren.
- Voor dat de retrospective van het einde van de eerste sprint begint, ga ik minimaal 2 tips bedenken voor mijn project genoten. Hierdoor kom ik voorbereider over en zal dit ook makkelijker gaan voor mij.
- Tijdens de tweede sprint ben ik vaker bij mensen geweest als ze vragen hadden zodat ze sneller weer verder konden. Zo wisten mensen waar ik mee bezig was maar wist ik ook waar hun mee bezig waren.
...
In het begin van het project begonnen met zeer laks doordat we de opdracht onderschatten. Dit in combinatie met dat we net uit een schoolsetting komen en vaak smiddags vroeg klaar waren, waren we zeer snel geneigd om vroeg weg tegaan. Na de eerste sprint werden we nogal hard op de feiten gedrukt aangezien we bijna niks afhadden gekregen. Hierna zijn we al wel vaker langer gebleven om meer te kunnen doen. Om mijn leerdoelen te kunnen halen had ik mijzelf genomineerd om het vaste aanspreekpunt te zijn naar de opdrachtgever. Dit zorgde ervoor dat ik altijd wist wat er speelde en waar we nog antwoord op moeste krijgen van de opdrachtgever.
met Met het reflecteren over het gehelen gehele project zie ik het uiteindelijk toch wel anders. Ik zag in dat ik met de compleet verkeerde mindset in het project was gestapt waardoor mijn werk ook achter ging lopen. Dit gecombineerd met de verkeerde aanpak van het project zorgde uiteindelijk voor frustratie bij sommige. In een volgend project wil ik de volledige les stof toepassen in plaats van de minimale toepassing wat we hier hebben gedaan. In het tweede deel van het project ben ik wat minder op de voorgrond gaan staan, hierdoor konden andere mensen ook bijvoorbeeld de sprint review laten zien aan de opdrachtgever. Tevens ben ik ook begonnen mijn mindset van een schoolsetting meer naar daadwerkelijk werken om gaan zetten. Bijvoorbeeld langer blijven, meer gericht communiceren en minder afgeleid worden tijdens werken tijden. Daar heb ik vele stappen kunnen zetten als groepslid. Voor volgende projecten ga ik dit ook zeker meenemen. Op het gebied van developer ben ik ook sterk gegroeid. Doormiddel Door middel van verschillende mensen je code te laten nakijken krijg je steeds nieuwe feedback en leer je meer en meer van je fouten. Dan met behulp van sonarcube heb ik geleerd wat "Best practice" is voor vele verschillende code problemen. Dit heeft mij zeer veel dingen bij gebracht en heeft mij geholpen met goede stappen te zetten richting een echte developer.
...
Bronnenlijst
Opnames gesprek Regterschot
Opname van het eerste gesprek met Erik Regterschot op 4 November 2022
View file | ||||
---|---|---|---|---|
|
Factsheet
Nummer | Competentie | Link naar het product | Beschrijving eigen bijdrage | |||||
---|---|---|---|---|---|---|---|---|
1. | OOSE P-01 | Competentie | Link naar het product | Beschrijving eigen bijdrage | 1. | OOSE P-01 De student voert een project uit op basis van Scrum en een plan van aanpak en evalueert en reflecteert hierop, op individueel en projectniveau. | Hoofdstuk 1, 2, 3.1 en 3.2 geschreven Hoofdstuk 10 gereviewed. | |
2. | OOSE P-02 De student analyseert de eisen en wensen voor de software van een systeem, en documenteert deze in een Software Requirements Specification (SRS).Software | Specification | 4. | OOSE P-04 De student ontwerpt de software van een systeem en documenteert deze onder andere met behulp van UML diagrammen en decision templates in een Software Design Specification (SDD). | ||||
5. | OOSE P-05 De student implementeert een gedistribueerd systeem, evalueert het ontwerp en de realisatie daarvan en zorgt voor traceerbaarheid daartussen en naar de functionele en niet-functionele eisen. | Ik heb het dashboard geïmplementeerd. | ||||||
6. | OOSE P-06 De student past de aangereikte ontwikkeltools om het project te organiseren toe. | Wij hebben confluence gebruikt voor al onze documentatie, Jira voor het verdelen en organiseren van taken en het werk loggen en Bitbucket voor het versiebeheer. | 7. | OOSE P-07 De student bewaakt continu de kwaliteit van de software en het proces door o.a. reviews en gestructureerd testen en stuurt waar nodig bij. |
...
In het SRS heb ik meegeholpen met het opstellen van de requirements die Regterschot heeft opgezet. Waarvan hun willen dat de applicatie aan voldoet. In de usecase diagrams had ik de TAB create en update gemaakt met de documentatie die wij tijdens de les van OOAD hebben gekregen, wanneer wij een CRUD usecase moeten uitwerken. Verder heb ik mee geholpen met controleren dat de spellings controlle klopte in het document. | |||
3 | OOSE P-03. De student onderzoekt voor het project relevant (technologie)keuzes en rapporteert hierover gestructureerd. | Onderzoek visuele data weergave | Ik heb het onderzoek naar visuele data weergave deels gemaakt samen met jasper. Ik heb hoofdstuk 2, 3, 4, 7.2, 7.3 en 8.1 gemaakt Verder heb ik het statische en dynamische prototype gemaakt voor google charts. |
4. | OOSE P-04 De student ontwerpt de software van een systeem en documenteert deze onder andere met behulp van UML diagrammen en decision templates in een Software Design Specification (SDD). | Ik heb samen met bram in de eerste instantie gekeken naar JWT tokens. Uiteindelijk heb ik dit uitgewerkt in het uiteindelijke product. | |
5. | OOSE P-05 De student implementeert een gedistribueerd systeem, evalueert het ontwerp en de realisatie daarvan en zorgt voor traceerbaarheid daartussen en naar de functionele en niet-functionele eisen. | Ik heb de eerste opzet gemaakt van het dashboard. Verder heb ik de uiteindelijke implementatie van JWT tokens toegevoegd. | |
6. | OOSE P-06 De student past de aangereikte ontwikkeltools om het project te organiseren toe. | Jira word gebruikt om de uren te loggen en taken bij te houden waar we nog mee bezig zijn. Confluence word gebruikt om alle documentatie zoals SRS, SDD en onderzoeken te noteren en bij te houden. Bitbucket word gebruikt als versiebeheer voor de code van het project | |
7. | OOSE P-07 De student bewaakt continu de kwaliteit van de software en het proces door o.a. reviews en gestructureerd testen en stuurt waar nodig bij. | getTabs test | Ik was als eerste begonnen met het maken van testen omdat de rest van het team er nog weinig tot geen ervaring mee had. Hierdoor kon de rest van het team kijken wat ik aan het doen was en op mijn werk door borduren. Verder was ik erg lang bezig met mockito DAO testen te maken. |
8. | OOSE P-08. De student kan zich zelfstandig verder verdiepen in de beroepstaak. | Onderzoek visuele dataweergave | Ik heb me verdiept in 2 verschillende API's (Google charts en Graphstream) Ik heb grote stappen gemaakt richting het leidend opstellen in gesprekken. ik heb een verslag gemaakt van het project voor school. Die voldoet aan de door de han opgelegde eisen. Ik heb mijn kennis van angular en jakarta opgefrist en verbreedt. |