Versions Compared

Key

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

...

In het deployment diagram is te zien dat de backend en frontend in dezelfde springboot server staan. Dit is gedaan zodat de hele applicatie op 1 server kan functioneren. Ook staat deze springboot server al in een JDI Server, aangezien dit een plek is waar de applicatie waarschijnlijk op gaat draaien. De database server is echter nog niet bekend en daarom heet die dan ook gewoon database server.

...

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 B: 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.

Design Class Diagram


Sequence Diagrams

Sequence diagram reserveren werkplek

Image Added


Sequence diagram declareer reiskosten

Image Added


Sequence diagram werkplek toevoegen

Image Added


Sequence diagram inloggen

Image Added

Design decisions made for the sub-system

Decision

Description

Problem/Issue

Backend code moet zoveel mogelijk losgekoppeld worden en los van elkaar werken.
DecisionEr is besloten om een lagen-structuur in de backend aan te brengen, waarbij alle features worden opgedeeld over resources, services, dto's, dao's en data mappers.
AlternativesIn plaats van de huidige lagen-structuur, had er gekozen kunnen worden om bijvoorbeeld alle code die bij een feature hoort bij elkaar te plaatsen. Dus bijvoorbeeld een folder voor alle componenten die te maken hebben met het reserveren van een werkplek.
ArgumentsDe huidige lagen-structuur geeft duidelijk overzicht van welke componenten in de backend afhankelijk zijn van welke andere componenten. Dit maakt het makkelijker om bestaande code te hergebruiken over meerdere features, en om te garanderen dat de afhankelijkheid binnen lagen klein blijft.

Decision

Description

Problem/Issue

Er moest een framework gekozen worden om de backend in te maken.
DecisionEr is gekozen om Spring Boot te gebruiken voor de backend.
AlternativesHet alternatief zou zijn om bijvoorbeeld weer JAX RS te gebruiken net als bij DEA.
ArgumentsSpring Boot is een volledig framework wat makkelijk te leren en gebruiken is. Ook was de voorkeur vanuit de opdracht dat Spring Boot zou worden gebruikt.

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.

Design Sub-System B: Declareren reiskosten


Design Class Diagram

Sequence Diagrams

Design decisions made for the sub-system

<Describe all design decisions made for the sub-system. Provide at least decision descriptions for all frameworks, libraries and other technologies used. Other decisions may be related to software patterns, system-structure, adapted principles or the like.>

...

Design Sub-System C: Reserveren werkplek


Design Class Diagram

Sequence Diagrams


Activity and State Diagrams

<This section is optional. If useful, provide activity and/or state diagrams to describe complex work flows and system state transitions>

Design decisions made for the sub-system

<Describe all design decisions made for the sub-system. Provide at least decision descriptions for all frameworks, libraries and other technologies used. Other decisions may be related to software patterns, system-structure, adapted principles or the like.>

...

Design Sub-System D: Beheren werkplekken


Design Class Diagram


Sequence Diagrams


Design decisions made for the sub-system

Hieronder staan alle design keuzes die gemaakt zijn met betrekking tot deze use case. 

...

Design Sub-System E: Inloggen


Design Class Diagram


Sequence Diagrams


Design decisions made for the sub-system

Er is voor gekozen om gebruik te maken van een UUID token. De kans dat er 2 dezelfde tokens worden geregistreerd in het systeem die tegelijkertijd geldig zijn is zodanig klein dat dit dan ook niet wordt afgevangen. 

...