Software Quality & Security Flashcards

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/68

flashcard set

Earn XP

Description and Tags

Een uitgebreide set flashcards over softwarekwaliteit, onderhoudbaarheid, architectuur, programmeerparadigma's en security op basis van de ISO 25010 en OWASP richtlijnen.

Last updated 10:11 PM on 6/4/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

69 Terms

1
New cards

Softwarekwaliteit (ISO 25010)

De mate waarin een systeem voorziet in de gestelde en te verwachten behoeften van verschillende belanghebbenden en zodoende waarde biedt.

2
New cards

Maintainability (ISO 25010)

Onderhoudbaarheid; de mate van effectiviteit en efficiëntie waarmee een systeem kan worden aangepast voor verbetering, correctie of verandering in omgeving.

3
New cards

Effectiveness (Maintainability)

De vraag of de software technisch gezien aangepast kán worden.

4
New cards

Efficiency (Maintainability)

De vraag of de software aangepast kan worden met redelijke resources zoals tijd en geld.

5
New cards

Modularity

De mate waarin een verandering minimale impact heeft op andere onderdelen van het systeem.

6
New cards

Reusability

De mate waarin onderdelen hergebruikt kunnen worden in dezelfde of andere software.

7
New cards

Analysability

De mate waarin software te doorzien en te diagnosticeren is.

8
New cards

Modifiability

De mate waarin software aangepast kan worden zonder fouten te introduceren.

9
New cards

Testability

De mate waarin softwaretests opgesteld en uitgevoerd kunnen worden.

10
New cards

Separation of concerns

Het onderscheiden en afbakenen van verantwoordelijkheden en abstractieniveaus in verschillende modules.

11
New cards

Cohesion (samenhang)

Hoe sterk de samenhang binnen een module is; het groeperen van gerelateerde verantwoordelijkheden.

12
New cards

Coupling (koppeling)

De mate waarin modules van elkaar afhankelijk zijn en hoeveel kennis ze van elkaar hebben.

13
New cards

Abstraction

Focus op wat een object doet in plaats van hoe het het doet om complexiteit te verbergen.

14
New cards

Encapsulation

Het verbergen van interne details van een object waarbij toegang alleen verloopt via noodzakelijke publieke interfaces.

15
New cards

Polymorphism (Polymorfisme)

Het principe waarbij objecten van verschillende klassen via dezelfde interface kunnen worden aangesproken.

16
New cards

Inheritance

Overerving, waarbij een klasse eigenschappen en methoden overneemt van een andere klasse (Interface of Implementation).

17
New cards

Composition over Inheritance

Het principe om compositie te gebruiken in plaats van overerving om gedrag herbruikbaar te maken op een losgekoppelde manier.

18
New cards

Gherkin

Een Domain Specific Language die gebruikt wordt om wensen van belanghebbenden op te halen en te structureren.

19
New cards

Code smells

Een aanwijzing dat er ergens in de structuur of het ontwerp van de code iets niet optimaal zou kunnen zijn.

20
New cards

Hungarian notation

Een naamgevingsconventie waarbij het type van de variabele in de naam wordt opgenomen, wat volgens de transcriptie onnodig is.

21
New cards

Early returns

Een techniek waarbij een resultaat uit een methode wordt teruggegeven zodra dit mogelijk is om de code te vereenvoudigen.

22
New cards

Guard clauses

Het gooien van excepties aan het begin van een methode als niet aan de pre-condities is voldaan.

23
New cards

Technical debt

De opgebouwde 'schuld' in werk of kosten veroorzaakt door het kiezen voor een minder geschikte oplossing op korte termijn.

24
New cards

Managed technical debt

Technische schuld die bewust en gecontroleerd wordt aangegaan met een plan om dit later op te lossen.

25
New cards

Refactoring

Het verbeteren van de interne structuur van de code terwijl de externe functionaliteit hetzelfde blijft.

26
New cards

Legacy code

Nalatenschap in code die vaak als slecht wordt gezien door grote hoeveelheden, gebrekkige documentatie of een verouderde structuur.

27
New cards

Strangler fig pattern

Een strategie waarbij onderdelen van een bestaande applicatie stapsgewijs worden vernieuwd door er nieuwe applicatiedelen omheen te bouwen.

28
New cards

Essential complexity

De inherente moeilijkheidsgraad van het probleem en de oplossing zelf.

29
New cards

Accidental complexity

De extra moeilijkheid die door de ontwikkelaars zelf aan het probleem of de oplossing is toegevoegd.

30
New cards

Cyclomatic Complexity (McGabe)

Een metriek voor complexiteit gebaseerd op het aantal vertakkingen in de control flow; berekend als CC=edgesnodes+2×componentsCC = edges - nodes + 2 \times components.

31
New cards

NPath complexity

De som van de hoeveelheid paden die je af kunt leggen tussen het startpunt en eindpunt van een stuk code.

32
New cards

Cognitive Complexity (Sonar)

Een door SonarSource ontwikkelde metriek die de mentale inspanning meet om code te begrijpen.

33
New cards

CRAP-index

Change Risk Analysis and Predictions; een indicator voor het risico bij het veranderen van een methode gebaseerd op complexiteit en code coverage.

34
New cards

Static analysis

Analyse van software zonder deze daadwerkelijk uit te voeren, vaak ter controle van stijl en best practices.

35
New cards

PMD

Een tool voor statische analyse op source code die rapporten genereert en style guides afdwingt.

36
New cards

ArchUnit

Een tool voor het uitvoeren van unit tests die controleren of de geïmplementeerde architectuur voldoet aan de beoogde regels.

37
New cards

Declarative programming

Een programmeerstijl waarin wordt beschreven wat men wil bereiken in plaats van de exacte stappen (imperative) te definiëren.

38
New cards

Pure functions

Functies die bij dezelfde argumenten altijd dezelfde waarde teruggeven en geen side-effects hebben.

39
New cards

Referential transparency

De eigenschap dat een functie vervangen kan worden door zijn onderliggende waarde zonder het gedrag van het programma te veranderen.

40
New cards

First-class functions

Functies die als zelfstandige concepten behandeld kunnen worden en als argumenten kunnen worden meegegeven.

41
New cards

Lambda’s

In Java zijn dit impliciete implementaties van functional interfaces zonder dat ze een specifieke naam hebben.

42
New cards

Functional Interface

Een interface in Java die precies één abstracte methode bevat en als type voor lambda-expressies dient.

43
New cards

Higher order function

Een functie die een andere functie als argument ontvangt of als resultaat teruggeeft.

44
New cards

Streams API

Een Java-omgeving voor het maken van collection pipelines die transformaties, selecties en reducties lazy uitvoeren.

45
New cards

Optional

Een abstractie in Java (ter vervanging van null) die aangeeft dat een waarde wel of niet aanwezig kan zijn.

46
New cards

Encoding

Het omkeerbaar transformeren van data voor gebruik of vervoer, niet bedoeld voor het bewaren van geheimen.

47
New cards

Encryption

Het transformeren van data in een formaat dat alleen door personen met de juiste sleutel ontcijferd kan worden.

48
New cards

Public Key Cryptography

Asymmetrische versleuteling met een publieke sleutel voor encryptie en een private sleutel voor decryptie.

49
New cards

Hashing

Het produceren van een vaste samenvatting (digest) van input om integriteit te controleren; in principe onomkeerbaar.

50
New cards

Salt

Random data die aan een wachtwoord wordt toegevoegd vóór het hashen om dictionary attacks te bemoeilijken.

51
New cards

Authenticatie

Het proces van bewijzen dat iemand is wie hij zegt dat hij is.

52
New cards

Autorisatie

Het proces van bepalen of iemand de rechten heeft om een bepaalde actie uit te voeren.

53
New cards

JWT (JSON Web Token)

Een open standaard voor het veilig uitwisselen van JSON-gebaseerde claims voor autorisatie en Single Sign On.

54
New cards

FilterChain

Een reeks filters in Java/Spring waar een request doorheen gaat voor functies zoals routing en access control.

55
New cards

RBAC (Role Based Access Control)

Autorisatie waarbij toegangsrechten worden verleend op basis van de specifieke rol van een gebruiker.

56
New cards

ABAC (Attribute Based Access Control)

Autorisatie waarbij rechten worden beheerd op basis van specifieke attributen van een gebruiker of actie.

57
New cards

CIA-triad

Drie kernprincipes van security: Confidentiality (vertrouwelijkheid), Integrity (integriteit) en Availability (beschikbaarheid).

58
New cards

Vulnerability

Een kwetsbaarheid in een systeem waarmee een bepaald risico wordt blootgesteld.

59
New cards

OWASP

Open Web Application Security Project; een organisatie gericht op awareness en best practices voor applicatiebeveiliging.

60
New cards

Injection (OWASP A1)

Een kwetsbaarheid waarbij ongevalideerde gebruikersinput rechtstreeks naar een interpreter of database wordt gestuurd.

61
New cards

Broken Authentication (OWASP A2)

Beveiligingsfouten waarbij credentials kunnen worden geraden of sessie-ids niet goed worden geroteerd.

62
New cards

Sensitive Data Exposure (OWASP A3)

Het onvoldoende beschermen van gevoelige gegevens zoals creditcardnummers of wachtwoorden.

63
New cards

XML External Entities (XXE) (OWASP A4)

Een kwetsbaarheid waarbij een XML-processor externe bronnen verwerkt die tot data-extractie kunnen leiden.

64
New cards

Broken Access Control (OWASP A5)

Wanneer toegangsbeperkingen niet correct worden afgedwongen en gebruikers resources buiten hun rechten kunnen benaderen.

65
New cards

Security Misconfiguration (OWASP A6)

Kwetsbaarheden door onjuiste instellingen, onnodige geopende features of verouderde software.

66
New cards

Cross-Site Scripting (XSS) (OWASP A7)

Een aanval waarbij kwaadwillende scripts in de browser van slachtoffers worden uitgevoerd via onveilige webpagina's.

67
New cards

Insecure Deserialization (OWASP A8)

Het aanpassen van geserialiseerde objecten om applicatielogica of toegangscontrole te manipuleren.

68
New cards

Timing attack

Een aanval waarbij aan de hand van de uitvoeringstijd van operaties (zoals String.equals()) geheime informatie wordt afgeleid.

69
New cards

Snyk

Een tool die oorspronkelijk begon als dependency checker en nu ook static code analysis ondersteunt.