Architecture Characteristics Flashcards

1
Q

Performance

A

Wat is het?

  • Hoe snel en efficiënt reageert een systeem op acties van gebruikers en andere systemen.

Voorbeeld van realisatie in de architectuur

  • Caching: Gebruik een cache-laag (bijv. Redis of Memcached) om vaak gebruikte data snel op te halen. Dit voorkomt dat je steeds dezelfde berekening of database-query moet uitvoeren.
  • Load balancing: Spreid verzoeken (requests) over meerdere servers zodat geen enkele server overbelast raakt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Scalability

A

Wat is het?

  • In hoeverre kan een systeem meegroeien (of -krimpen) met toenemende of afnemende belasting, zonder dat performance of stabiliteit daaronder lijdt.

Voorbeeld van realisatie in de architectuur

  • Microservices: Knip de applicatie op in kleinere services die onafhankelijk van elkaar kunnen schalen.
  • Containerization: Gebruik Docker/Kubernetes zodat je automatisch extra containers kunt opstarten bij hoge belasting (horizontal scaling).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Availability / Reliability

A

Wat is het?

  • Availability: Hoe vaak en hoe lang is het systeem beschikbaar?
  • Reliability: De mate waarin het systeem correct blijft functioneren zonder fouten of verstoringen.

Voorbeeld van realisatie in de architectuur

  • Redundancy / Failover: Zet meerdere instanties van een service in verschillende zones of datacenters. Als één instantie uitvalt, neemt een andere het over.
  • Circuit Breaker-pattern: In microservices-omgevingen gebruik je een circuit breaker die voorkomt dat een falende service alle aanroepen blokkeert.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Security

A

Wat is het?

  • Hoe goed is het systeem beschermd tegen ongeautoriseerde toegang, aanvallen en datalekken?

Voorbeeld van realisatie in de architectuur

  • OAuth/Single Sign-On (SSO): Implementeer een gecentraliseerde authenticatieserver voor alle microservices.
  • Encryption at rest & in transit: Sla gevoelige data versleuteld op (bijv. in een database) en dwing HTTPS/TLS af voor alle netwerkverkeer.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Maintainability

A

Wat is het?

  • Hoe eenvoudig is het om de software te wijzigen of uit te breiden zonder ongewenste bijeffecten?

Voorbeeld van realisatie in de architectuur

  • Layered Architecture (N-tier): Scheid presentatielaag, logicalaag en datalaag zodat wijzigingen in één laag niet direct doorwerken in andere lagen.
  • Code Conventions & Documentatie: Hanteer duidelijke richtlijnen voor naming, structuur en documenteer de architectuur, zodat nieuwe ontwikkelaars snel begrijpen hoe alles werkt.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Testability

A

Wat is het?

  • Hoe gemakkelijk kun je de software (geautomatiseerd) testen, en hoe snel krijg je feedback over de kwaliteit van wijzigingen?

Voorbeeld van realisatie in de architectuur

  • Dependency Injection: Maak gebruik van DI-containers zodat je services of componenten makkelijk kunt mocken of stubben in unittests.
  • Automated Test Pipeline: Integreer continuous integration (CI) met automatische unittests, integratietests en end-to-end-tests.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Usability

A

Wat is het?

  • De gebruiksvriendelijkheid en efficiëntie voor eindgebruikers, zowel functioneel als qua interface.

Voorbeeld van realisatie in de architectuur

  • UX/UI Component Library: Ontwerp een herbruikbare set UI-componenten (bijv. in React, Angular of Vue) met consistente look & feel.
  • User-centered design: Betrek eindgebruikers vroeg in het designproces en maak prototypes/tests om feedback te verzamelen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Interoperability

A

Wat is het?

  • Hoe goed kan het systeem samenwerken of communiceren met andere systemen (standaarden, protocollen, dataformaten)?

Voorbeeld van realisatie in de architectuur

  • RESTful APIs / GraphQL: Stel uniforme, gedocumenteerde endpoints beschikbaar aan externe partijen.
  • Open standaarden: Gebruik JSON, XML, of andere industrienormen voor data-uitwisseling.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Portability

A

Wat is het?

  • De mate waarin het systeem overdraagbaar is naar andere platformen of omgevingen (bijv. besturingssystemen, cloudproviders).

Voorbeeld van realisatie in de architectuur

  • Containers (Docker): Verpak je applicaties in containers, zodat ze draaien op elke omgeving die Docker ondersteunt.
  • Platform-onafhankelijke technologieën: Programmeertalen of frameworks die niet afhankelijk zijn van één specifiek OS (bijv. Java, .NET Core, Go).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Modularity / Modifiability

A

Wat is het?

  • De mate waarin het systeem is opgesplitst in losse, onderling zo min mogelijk afhankelijke modules (loose coupling), waardoor je gemakkelijk wijzigingen kunt doorvoeren.

Voorbeeld van realisatie in de architectuur

  • Microservices: Elk (micro)service heeft zijn eigen domeinmodel en database. Wijzigingen binnen één service raken andere services nauwelijks.
  • Plug-in Architecture: Bied een duidelijk gedefinieerde plugin-API. Nieuwe features worden als plug-ins toegevoegd zonder de kern te hoeven wijzigen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Extensibility

A

Wat is het?

  • Hoe gemakkelijk je het systeem kunt uitbreiden met nieuwe functionaliteiten of componenten, zonder de bestaande structuur te doorbreken.

Voorbeeld van realisatie in de architectuur

  • Event-Driven Architecture: Maak gebruik van berichtgebaseerde communicatie (bijv. via Kafka of RabbitMQ). Nieuwe componenten kunnen dan meeluisteren op events, zonder dat bestaande systemen aangepast moeten worden.
  • Configuratiegedreven oplossingen: Stel veel zaken in via configuratiebestanden in plaats van code, zodat nieuwe opties eenvoudig toegevoegd of geactiveerd kunnen worden.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Recoverability

A

Wat is het?

  • De mate waarin het systeem kan herstellen van storingen of onverwachte fouten (bijv. door middel van back-ups, redundantie of automatische failover).

Voorbeeld van realisatie in de architectuur

  • Back-up & Restore Strategie: Automatiseer (dagelijks) back-ups van databases en bestanden en test regelmatig of terugzetten (restore) echt werkt.
  • Event Sourcing: Sla alle gebeurtenissen (events) op in een log. Als de database corrupt raakt, kun je de state van het systeem herleiden door alle events opnieuw af te spelen.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly