• No results found

Advies en aanbevelingen

5. Conclusie & Advies

5.2 Advies en aanbevelingen

De gemaakte prototypes kan als leidraad gebruikt worden bij het maken van een definitieve keuze betreft het implementeren van het formulierencomponent in Angular.

Het FormulierComponent library geeft weer wat de mogelijkheden zijn als het gaat om het bouwen van components op runtime niveau. In de implementatie is er alleen rekening gehouden met vier verschillende soorten components. Dit betekent

uiteraard niet dat dit ook de limiet is. Het team kan in de toekomst besluiten om nieuwe soorten components te introduceren in het formulier.

Om de scope van het project niet te groot te maken is besloten om niet alle acties te implementeren maar alleen een paar die aantonen wat de mogelijkheden zijn in het uitvoeren van acties. Voor acties die een expressie bevatten is in het

FormulierComponent library een parser geschreven die een aantal “nodes” uit de AST eruit kan lezen.

De parser kan verder uitgebreid worden waardoor er complexere logica toegepast kan worden op het formulier. Denk hierbij aan het uit kunnen lezen van “while statements”, “function declaration”, “Array expressions” etc.

37 Geadviseerd wordt om het formulierencomponent op te splitsen in twee delen en twee lossen modules te bouwen. Waarbij één module in de back-end ervoor zorgt om de formulier elementen van het formulier te verzamelen om een datamodel op te zetten. Het andere deel zit in de front-end die ervoor zorgt dat dit datamodel uitgelezen kan worden en op runtime Angular components kan gaan bouwen. Het voordeel hiervan is dat de back-end minder belast wordt aangezien het bouwen van formulieren in de client gebeurt. Daar waar in de huidige formuliercomponent steeds een nieuw formulier wordt aangeleverd vanuit de server, zal op bij de nieuwe

implementatie op client-side de berekeningen en logica worden toegepast waardoor het formulier op client-side aangemaakt wordt.

Figuur 27.Oude implementatie van het formulierencomponent

38

6. Reflectie

Er is in het begin van dit project veel tijd besteed aan het onderzoeken naar hoe het formuliercomponent werkt en hoe het Excel bestand in elkaar zit. Het heeft ook een aantal weken geduurd om echt te snappen wat alle Excel definities betekenen en hoe met deze informatie formulieren gebouwd kunnen worden. Daarnaast kwam ook nog het feit dat formulieren logica bevatten en hierin goed over na moet worden gedacht hoe deze logica verwerkt wordt in het formulier.

Ik vond het implementeren van de FormulierComponent library een uitdaging

aangezien ik goed moest nadenken hoe ik de relatie tussen bepaalde components in kaart wil brengen en hoe de logica toegepast moest worden op het formulier. Hierin heb ik veel geleerd over hoe in Angular bepaalde technieken gebruikt kan worden om tot een oplossing te komen. Tijdens deze periode heb dan ook veel geleerd over het Angular framework.

De wekelijkse voortgangsgesprekken die ik samen met mijn bedrijfsbegeleider voerde hebben mij wel geholpen om steeds een overzicht te houden hoe ver ik in het project zit. Wat ik anders zou doen voor de volgende keer is om de andere developers in het TeleDIA team meer te betrekken in mijn project en ook bij hun vragen te stellen over bepaalde problemen en oplossingen. Daarnaast denk ik wel dat door

omstandigheden (Covid pandemie) voor mij persoonlijk lastiger was om vragen te stellen aangezien communicatie tijdens het project veel digitaal ging en ik dat minder prettig vindt werken.

Waarin ik ook vooral moeite mee had tijdens dit afstudeerproject was om in het verslag aan de lezer duidelijk te maken wat er precies is gedaan en wat de probleem- en doelstellingen zijn. Ik heb van de afstudeerdocent hier feedback op gekregen op welke punten ik niet duidelijk in ben. Aan de hand van de feedback heb ik besloten om met twee medewerkers vanuit Topicus, in een apart gesprek, hun inzicht te geven wat de probleemsituatie is en hoe dit probleem opgelost gaat worden en wat er is gerealiseerd. Uit deze gesprekken kwam veel nuttige informatie en tips uit die mij hebben geholpen om dit beter te schetsen. Voor de volgende keer ga ik ook eerder beginnen om dit op deze manier te doen.

39

7. Beroepscompetenties

Aan het begin van de afstudeerperiode heeft de afstudeerder aangegeven welke beroepscompetentie gedurende de opdracht aan gewerkt wordt en beoordeelt wil worden.

In figuur 29 zijn de beroepscompetentie op niveau 3 aangegeven.

Beroepsactiviteit beh er en an al ys eren advi se ren o nt w erpen real iser en A rc hi te c tu url ag en gebruikersinteractie bedrijfsprocessen infrastructuur software 3 3 3 hardware interfacing Figuur 29. Beroepsactiviteiten Software - Analyseren

Er is onderzoek gedaan naar het Excel bestand en hoe de huidige

formuliercomponent de informatie van Excel gebruikt om formulieren te bouwen. Met behulp van dit onderzoek zijn de deelvragen en hoofdvraag beantwoord. Software – Ontwerpen

Aan de hand van de analyse is er nagedacht hoe bepaalde problemen opgelost kunnen worden. Zo zijn er softwarearchitecturen gemaakt die in kaart brengen hoe het systeem moet werken en hoe bepaalde onderdelen van het systeem met elkaar communiceert.

Software – Realiseren

Aan de hand van de resultaten in het onderzoek en de gemaakte

softwarearchitecturen is er een proof of concept gerealiseerd waarbij twee prototypen zijn gebouwd die aantonen hoe het nieuwe formulierencomponent gebouwd kan worden en hoe dit formulieren kan gaan bouwen.

40

8. Verwijzingen

[1] Angular ComponentFactory. (sd). Opgehaald van https://angular.io/api/core/ComponentFactory [2] Angular ComponentFactoryResolver. (sd). Opgehaald van

https://angular.io/api/core/ComponentFactoryResolver [3] Angular Dynamic component loader. (sd). Opgehaald van

https://angular.io/guide/dynamic-component-loader

[4] Angular Event binding. (sd). Opgehaald van https://angular.io/guide/event-binding [5] Angular observables. (sd). Opgehaald van https://angular.io/guide/observables [6] Angular ViewContainerRef. (sd). Opgehaald van

https://angular.io/api/core/ViewContainerRef

[7] JEXL. (sd). Opgehaald van http://commons.apache.org/proper/commons-jexl/index.html [8] JSTL. (sd). Opgehaald van http://www.inf.fu-berlin.de/lehre/SS03/19560-

P/Docs/JWSDP/tutorial/doc/JSTL4.html [9] TypeScript Compiler API. (sd). Opgehaald van

41

9. BIJLAGE

GERELATEERDE DOCUMENTEN