Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Hieronder staat het opgestelde Deployment Diagram, met daaronder de design keuzes die zijn gemaakt tijdens het opstellen hiervan.

...

Decision

Description

Problem/Issue

A short description of the design problem.
DecisionA short description of the design decision.
AlternativesWhat are the alternatives for this decision? Are there any alternative diagrams to support this?
ArgumentsWhich criteria were crucial for the decision?

Design Sub-System

...

: Spring boot backend

De backend voor het HR Portaal is geschreven in Spring Boot. De backend is een belangrijk onderdeel van het eindproduct, en in dit hoofdstuk zullen de structuur en ontwerpbeslissingen van de backend worden toegelicht.

...

Decision

Description

Problem/Issue

Er moet data in de vorm van JSON worden opgehaald uit- en gestuurd naar de front-end.
DecisionEr is besloten om de communicatie met de front-end zoveel mogelijk af te handelen via DTO's. Dit betekend dat er bijvoorbeeld een DTO bestaat om een verlof aanvraag naar de front-end van het verlof overzicht te sturen, en ook een DTO voor de verlofkeuring die vanuit de front-end naar de backend wordt gestuurd (in dit geval wordt er JSON opgestuurd die automatisch naar de gespecificeerde DTO wordt omgezet).
AlternativesIn plaats van DTO's zou het mogelijk zijn om de JSON code zelf op te bouwen in de backend. Of om bijvoorbeeld meer path-variabelen te gebruiken.
ArgumentsZelf de JSON opbouwen zou een stuk foutgevoeliger zijn, omdat op die manier zelf de syntax moet worden geschreven. Met een DTO wordt dit automatisch gedaan en is het alleen van belang dat de naamgeving overeenkomt tussen de front-end en de backend.

Decision

Description

Problem/Issue

Toevoegen van een werkplek op een niet bestaande locatie zou een error opleveren.
DecisionEr worden checks uitgevoerd die kijken of de locatie al bestaat.
ArgumentsDoor checks te doen wordt er gezorgd voor een extra stukje veiligheid in de applicatie.

Decision

Description

Problem/Issue

Verwijderen van een reservering zou dubbele code opleveren, omdat dit erg lijkt op het toevoegen van een reservering.
DecisionTijdens het reserveren wordt er een boolean meegegeven of de reservering verwijderd moet worden. Op deze manier kan aan de hand van dezelfde gegevens efficiënt een reservering verwijderd worden.
AlternativesHet alternatief zou zijn om een nieuwe methode in de werkplek service te bouwen die grotendeels overeenkomt met de bestaande methode.
ArgumentsDe belangrijkste reden om de functionaliteit samen te voegen is dat het dubbele code voorkomt, omdat er maar een methode nodig is in plaats van twee die op elkaar lijken.

Decision

Description

Problem/Issue

Een reis kan worden gedeclareerd met twee locaties, waarbij de afstand door het systeem wordt berekend. Het kan ook worden gedeclareerd met de kilometers, en dan hoeft er niks te worden berekend.
DecisionEr is besloten om beide methodes te ondersteunen, afhankelijk van het reistype. Zo wordt een OV reis aan de hand van een afstand gedeclareerd, en voor een reis tussen werklocaties kan door de werknemer gekozen worden of hij/zij de afstand wil declareren, of de locaties.
AlternativesHet alternatief was om de gebruiker niet van een keuze te voorzien, en bijvoorbeeld altijd de afstand door het systeem te laten berekenen.
ArgumentsEr is besloten om beide methodes te ondersteunen, omdat de automatische berekening gebruikersvriendelijk en betrouwbaar is. Aan de andere kant was in communicatie van de opdrachtgever naar voren gekomen dat ook het declareren aan de hand van kilometers gewenst is. Daarom is gekozen om het allebei te implementeren.


Design Sub-System B: Declareren reiskosten

...