Software Engineering

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/102

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

103 Terms

1
New cards

Explain why using Git is better than using, for instance, Google Drive or OneDrive.

Git biedt gedetailleerd versiebeheer, maakt samenwerken via aparte branches mogelijk en bewaart volledige projectgeschiedenis, waardoor ontwikkelteams veilig en gestructureerd kunnen werken.

2
New cards

How does Git track changes in files, and what is the purpose of the staging area?

Git slaat bij elke commit een snapshot van versiegegevens op, en vergelijkt deze met voorgaande snapshots. De staging area laat je nauwkeurig bepalen welke wijzigingen je opneemt in de volgende commit.

3
New cards

What is a commit in Git, and what information does it contain?

Een commit is een permanente snapshot van de repository met metadata zoals auteur, datum/tijd en een omschrijvende commit message.

4
New cards

What is the difference between a branch and a commit in Git?

Een commit is een vastgelegde momentopname van alle bestanden, terwijl een branch een verwijzing is naar een reeks commits die meegroeit bij elke nieuwe commit.

5
New cards

What is the difference between a branch and a tag in Git?

Een branch evolueert mee met nieuwe commits, terwijl een tag een statische verwijzing is naar één specifieke commit.

6
New cards

What happens when you create a new branch? How does Git internally track branches?

Git maakt een nieuwe pointer aan (refs/heads/branchnaam) die verwijst naar een bestaande commit; bij elke nieuwe commit op die branch verschuift de pointer automatisch naar de nieuwe commit.

7
New cards

Explain the 'three trees' in Git: the working directory, the staging area and the commit history.

De working directory bevat je bewerkbare bestanden; de staging area is een tussentabel van wijzigingen klaar voor commit; de commit history bewaart alle snapshots (commits) chronologisch.

8
New cards

What is the difference between a local repository and a remote repository in Git?

Een local repository staat op je eigen machine en bevat al je branches en commits; een remote repository staat op een server en dient als gedeelde centrale voor samenwerking.

9
New cards

How can you add a new remote repository, and why might you need multiple remotes?

Met git remote add <naam> <url> voeg je een extra server toe; meerdere remotes gebruik je bijvoorbeeld voor verschillende forks, staging‐omgevingen of backup‐servers.

10
New cards

Explain the difference between git fetch and git pull.

git fetch haalt nieuwe commits van de remote binnen zonder ze te integreren; git pull doet een fetch én voegt de updates direct samen in je huidige branch.

11
New cards

Explain the difference between merging and rebasing. When should each be used?

Mergen voegt twee branches samen en bewaart de volledige geschiedenis; rebasing herschrijft commits op een nieuwe basis voor een lineaire geschiedenis. Gebruik merge voor veilige, traceerbare integratie; rebase voor een schonere, makkelijk leesbare log.

12
New cards

What does git reset do, and how does it differ from git revert?

git reset verplaatst de HEAD-pointer en kan staging of werkomgeving aanpassen (geschiedenis herschrijven), terwijl git revert een nieuwe commit maakt die de veranderingen van een eerdere commit ongedaan maakt.

13
New cards

What are the three different modes of git reset (--soft, --mixed, --hard), and how do they affect the working directory, staging area, and commit history?

--soft verplaatst alleen HEAD (staging en werkomgeving onveranderd); --mixed (standaard) reset de staging area maar behoudt werkomgeving; --hard overschrijft HEAD, staging area én werkomgeving.

14
New cards

Explain how git rebase lets you 'rewrite history'.

Rebase pakt commits van je branch, “plakt” ze één voor één opnieuw bovenop een andere commit en creëert zo nieuwe commit-id’s, waardoor de geschiedenis verandert.

15
New cards

What is git stash, and why is it useful?

git stash slaat onvoltooide wijzigingen tijdelijk op zodat je snel van branch kunt wisselen zonder commit-‘rommel’ achter te laten.

16
New cards

How does git stash differ from git reset and git restore when dealing with uncommitted changes?

git stash bewaart je wijzigingen in een aparte stack; git reset en git restore halen wijzigingen terug naar de laatste commit en kunnen je werk permanent laten verdwijnen.

17
New cards

Explain the difference between the following 'branching models': trunk-based development and feature branches.

Trunk-based development werkt continu op de hoofdbranch met korte-lived feature toggles, terwijl feature branches aparte, langere takken zijn voor elke functionaliteit die later gemerged worden.

18
New cards

Explain how a workflow with Pull Requests looks like.

Je maakt een feature branch, pusht deze naar de remote, opent een Pull Request waarin je veranderingen worden besproken, reviewed en tenslotte gemerged na goedkeuring.

19
New cards

Why is working with Pull Requests so encouraged?

Pull Requests stimuleren code‐reviews, kennisdeling, discussie over wijzigingen en kwaliteitscontrole voordat ze in de hoofdbranch terechtkomen.

20
New cards

Why should you use .gitignore, and how do you set it up?

.gitignore voorkomt dat tijdelijke, build- of gevoelige bestanden gecommit worden; je zet het op door per regel een wildcard of pad op te nemen in het .gitignore-bestand.

21
New cards

Why is it a bad practice to commit large, unrelated changes in a single commit?

Zulke commits zijn moeilijk te reviewen, te testen en te herroepen; kleinere, thematische commits verbeteren traceerbaarheid en herstelbaarheid.

22
New cards

What does it mean to "rewrite history" in Git, and why would you want to do it?

Geschiedenis herschrijven betekent commits wijzigen, verwijderen of herschikken (via rebase of filter-branch) bijvoorbeeld om fouten te verbergen of je log te schonen.

23
New cards

What are the risks of rewriting history, especially in shared repositories?

Je kunt andermans werk overschrijven, duplicaten of merge-conflicten introduceren en de geschiedenis voor anderen breken.

24
New cards

Explain why reverting an unwanted commit (eg, committing a password) does not make that mistake invisible.

Omdat de originele commit nog steeds in de geschiedenis staat en via Git-tools eenvoudig terug te vinden is.

25
New cards

What does it mean to have an Agile mindset in software development?

Een Agile mindset is iteratief, klantgericht en adaptief werken met focus op samenwerking, feedback en voortdurende verbetering.

26
New cards

How are Scrum, Kanban, Extreme Programming, … and other Software Methodologies different from Agile?

Agile zijn de onderliggende waarden en principes; Scrum, Kanban en XP zijn concrete frameworks of practices die deze principes implementeren.

27
New cards

Explain how you can work with Scrum or Kanban but still not be working in an Agile way.

Als je ceremonies en borden mechanisch volgt zonder feedback, samenwerking of flexibiliteit, volg je wel de vorm, maar niet de Agile geest.

28
New cards

Explain how Scrum works in broad terms.

Scrum organiseert werk in vaste sprints met rollen (Product Owner, Scrum Master, Team), ceremonies (Planning, Daily, Review, Retrospective) en een geprioriteerde backlog.

29
New cards

What is a Daily Standup (also called Daily Scrum), and what is discussed during it?

Een korte dagelijkse meeting waarin teamleden aangeven wat ze gedaan hebben, wat ze gaan doen en welke blokkades er zijn.

30
New cards

What is Sprint Planning, and how does the team determine what to work on?

De sprintplanning selecteert user stories uit de backlog op basis van prioriteit en beschikbare capaciteit, waarna het werk wordt opgesplitst en toegewezen.

31
New cards

What happens in a Sprint Review, and who participates?

Het team demonstreert de opgeleverde functionaliteit aan stakeholders, verzamelt feedback en evalueert voortgang. Stakeholders, Product Owner en Team zijn aanwezig.

32
New cards

What is a Sprint Retrospective, and why is it important?

Een reflectie-meeting na de sprint om successen en verbeterpunten te bespreken en acties af te spreken voor de volgende sprint.

33
New cards

What happens if a team doesn’t complete all Sprint tasks?

Onvoltooide items gaan terug naar de backlog of het volgende sprintplan; ze kunnen opnieuw ingeschat en ingepland worden.

34
New cards

Why should Scrum teams avoid extending the Sprint length?

Verlenging ondermijnt voorspelbaarheid, cadans en het leerproces binnen korte iteraties.

35
New cards

What are the three main roles in Scrum, and what are their responsibilities?

Product Owner (prioriteren en stakeholder-interface), Scrum Master (procesbewaker en obstakels wegnemen), Development Team (levert werkende software).

36
New cards

Explain how Kanban works in broad terms.

Kanban visualiseert werk op een bord met kolommen, beperkt werk in uitvoering (WIP-limieten) en optimaliseert flow en doorlooptijd.

37
New cards

Explain the steps that your code takes from being written on your own laptop to being deployed on Azure.

Code lokaal schrijven → commit en push naar Git → CI/CD‐pipeline bouwt, test en valideert → artefacten (bijv. containers) worden naar Azure Registry gepusht → Azure Deploymentservice haalt artefacten op en organiseert rollout.

38
New cards

How do you handle sensitive information (like credentials) within CI/CD pipelines?

Gevoelige data sla je op als beveiligde secrets of variabelen in de CI/CD-omgeving, niet in de code of in git.

39
New cards

Why is it beneficial to store build artifacts in a package registry before deploying them?

Het zorgt voor reproduceerbare, versieerbare builds die hergebruikt en geauditeerd kunnen worden, en versnelt de deployment.

40
New cards

How does CI/CD help avoid bugs from getting into production?

Door elke wijziging automatisch te bouwen en te testen (unit, integratie, statische analyse), worden fouten vroeg gedetecteerd.

41
New cards

How does CI/CD help prevent human error?

Automatisering van build-, test- en deploy‐stappen reduceert handmatige handelingen en daarmee de kans op vergissingen.

42
New cards

Describe the test pyramid. What are the key differences between the different layers?

De testpiramide bestaat uit veel unit tests (snel, geïsoleerd), minder integratietests (samenhang tussen componenten) en weinig E2E-tests (volledige gebruikersstromen, trager).

43
New cards

Why is it preferable to have a test pyramid instead of a test "ice cream cone"?

Een piramide garandeert snelle, betrouwbare tests eerst; een ice cream cone (meer E2E dan unit) leidt tot trage, fragiele tests en vertraging.

44
New cards

Explain the Test Driven Development method. How can you benefit from TDD?

Bij TDD schrijf je eerst een mislukte test, dan de code om de test te laten slagen en tenslotte refactor je; dit leidt tot beter ontwerp, minder bugs en hoge testdekking.

45
New cards

You encounter a bug in your code. What steps do you take to resolve your bug and ensure it does not reoccur?

Bug reproduceren → root cause analyseren → fix implementeren → nieuwe test toevoegen → code review → commit en deploy.

46
New cards

What is the Software Development LifeCycle (SDLC)?

De SDLC is het gestructureerde proces van planvorming tot onderhoud voor het ontwikkelen van software.

47
New cards

What are the main phases of the SDLC?

Planning → Analyse → Ontwerp → Implementatie → Testen → Onderhoud.

48
New cards

What happens in the planning phase of the SDLC?

Scope, doelen, resources, risico’s en tijdlijnen worden gedefinieerd.

49
New cards

What happens in the analysis phase of the SDLC?

Functionele en niet‐functionele eisen worden verzameld en gedocumenteerd.

50
New cards

What happens in the design phase of the SDLC?

Technische architectuur, data‐ en component‐ontwerp worden uitgewerkt.

51
New cards

What happens in the implementation phase of the SDLC?

Ontwikkelaars schrijven de code volgens het ontwerp en bouwen de software.

52
New cards

What happens in the testing phase of the SDLC?

De software wordt getest op functionaliteit, performance en beveiliging tegen de eisen.

53
New cards

What happens in the maintenance phase of the SDLC?

Na oplevering worden bugs verholpen, updates en verbeteringen doorgevoerd.

54
New cards

How is the SDLC related to Agile methodologies?

Agile doorloopt dezelfde fasen, maar in korte iteraties met continue feedback en adaptatie.

55
New cards

What is requirements gathering, and why is it important?

Het gestructureerd verzamelen en vastleggen van wensen en behoeften om een oplossing te bouwen die aan verwachtingen voldoet.

56
New cards

What are the differences between functional and non-functional requirements?

Functioneel beschrijft wat het systeem moet doen; niet-functioneel beschrijft hoe het systeem moet presteren (bv. snelheid, veiligheid).

57
New cards

Who are the key stakeholders involved in gathering requirements?

Klanten, eindgebruikers, Product Owner, business-analisten en technische experts.

58
New cards

How do you handle conflicting requirements from different stakeholders?

Prioriteren, compromis zoeken en duidelijke communicatie zodat de meest waardevolle eisen bovenaan komen te staan.

59
New cards

How do you ensure that stakeholders provide clear and realistic requirements?

Door gerichte vragen, voorbeelden en prototypes te gebruiken en haalbaarheid met het team te valideren.

60
New cards

What are the common methods for ensuring requirements are correct and complete?

Interviews, workshops, user stories, prototyping en validatiesessies met stakeholders.

61
New cards

What role does the product owner play in reviewing and approving requirements?

De Product Owner bewaakt de productvisie en beslist welke requirements in de backlog komen en wanneer ze worden opgepakt.

62
New cards

What is user story mapping, and why is it useful in Agile?

Een visuele techniek om gebruikersreizen en features te ordenen, zodat je samenhangend en incrementeel waarde kunt leveren.

63
New cards

What is a user story?

Een korte beschrijving van functionaliteit vanuit het perspectief van de gebruiker, meestal volgens het format “Als wil ik zodat ”.

64
New cards

How do user stories fit into frameworks like Scrum and Kanban?

In Scrum vormen user stories het werk dat tijdens sprints wordt ingepland; in Kanban stromen ze door het bord van to-do naar done.

65
New cards

How do personas help in writing more relevant user stories?

Persona’s representeren typische gebruikers met doelen en frustraties, zodat stories aansluiten bij werkelijke behoeften.

66
New cards

What key details should a good persona include?

Achtergrond, doelen, gedrag, frustraties en context van de gebruiker.

67
New cards

What are acceptance criteria, and how do you define them properly?

Duidelijke, meetbare voorwaarden die beschrijven wanneer een user story als voltooid geldt. Ze moeten specifiek en testbaar zijn.

68
New cards

How do you ensure that requirements are testable and verifiable?

Door acceptatiecriteria SMART (Specifiek, Meetbaar, Acceptabel, Realistisch, Tijdgebonden) te formuleren.

69
New cards

What happens if acceptance criteria are too vague or incomplete?

Dan ontstaan misverstanden, onvolledige implementaties en kunnen stories bij review worden afgekeurd.

70
New cards

Give an example of a good and a bad user story.

Goed: "Als klant wil ik mijn bestelling online kunnen volgen zodat ik weet wanneer het aankomt." en Slecht: “Voeg track & trace toe.”

71
New cards

What is the difference between a conceptual data model and a logical data model?

Een conceptueel model definieert de belangrijkste entiteiten en relaties zonder technische details; een logisch model voegt datatypes, attributen en normalisatie toe.

72
New cards

How does a domain model differ from a data model?

Een domain model beschrijft concepten en gedragingen in de bedrijfs- of probleemruimte; een data model richt zich op hoe gegevens worden gestructureerd en opgeslagen.

73
New cards

What is a sequence diagram, and how does it represent interactions?

Een UML-diagram dat de volgorde van berichten toont tussen objecten of componenten over tijd tijdens een use case.

74
New cards

What is Flyway, and why is it used in database migrations?

Flyway is een tool voor gestructureerde, versiebeheerde database-migraties via genummerde scripts, waardoor schema-wijzigingen consistent en reproduceerbaar zijn.

75
New cards

What are the core principles behind Flyway?

Lineaire migraties, consistente versiebeheer, checksum-controle en een schema history-tabel voor statusbewaking.

76
New cards

How do you apply a change to the database schema using Flyway?

Je maakt een nieuw genummerd SQL- of Java-migratiescript aan in de migratiefolder; bij uitvoeren past Flyway het script toe en registreert het in de history-tabel.

77
New cards

How does Flyway keep track of which migrations have been executed?

Door elk script en checksum op te slaan in de database-tabel flyway_schema_history.

78
New cards

What happens if you modify an already applied migration script?

Flyway detecteert een checksum mismatch en faalt, om de integriteit van de migratiehistorie te waarborgen.

79
New cards

Why should you be very careful with modifying the schema history table?

Handmatige aanpassingen kunnen leiden tot inconsistente migratiestatus en onvoorspelbare database-problemen.

80
New cards

What are Spring profiles, and why are they useful?

Spring profiles laten je verschillende configuraties definiëren en activeren per omgeving (dev, test, prod), zodat je één codebase kunt gebruiken met variabele settings.

81
New cards

How do you define separate configuration for a Spring profile in a Spring Boot application?

Door aparte `application-.yml` of `.properties` bestanden te maken of `@Profile` annotaties in je beans te gebruiken.
82
New cards

How do you activate a specific profile in application.properties or application.yml?

Stel `spring.profiles.active=` in binnen je hoofdbestand.
83
New cards

How can you activate a Spring profile using command-line arguments?

Start de applicatie met `--spring.profiles.active=`.
84
New cards

How do you set up multiple configuration files for different environments (e.g., dev, test, prod)?

Maak voor elk profiel een eigen bestand application-dev.yml, application-test.yml, application-prod.yml, en activeer het juiste profiel.

85
New cards

What is the default profile in Spring Boot if no profile is explicitly set?

Het default profiel.

86
New cards

What is Behavior-Driven Development (BDD) and what are its benefits?

BDD is een samenwerkingstechniek waarbij ontwikkelaars, testers en business gezamenlijk gedragsspecificaties schrijven, wat leidt tot betere afstemming en duidelijkere tests.

87
New cards

What are the key principles of BDD?

Samenwerking, duidelijke taal (Ubiquitous Language) en tests gebaseerd op acceptatiecriteria.

88
New cards

How does BDD differ from Test-Driven Development (TDD)?

BDD centreert zich op gedrags-eisen en samenwerking vóór het schrijven van code, terwijl TDD puur focust op het schrijven van tests voorafgaand aan code.

89
New cards

What are the three phases of the BDD process?

Discovery (verzamelen van features), Formulation (opstellen van scenarios in Gherkin), Automation (uitvoeren en integreren van scenarios).

90
New cards

How does BDD promote collaboration between developers, testers, and business stakeholders?

Door gemeenschappelijke feature- en scenario-taal te gebruiken en gezamenlijke specificatie-sessies te houden.

91
New cards

What is the role of Gherkin in BDD?

Gherkin is de leesbare, gestructureerde taal voor het schrijven van BDD-scenarios met sleutelwoorden als Given/When/Then.

92
New cards

How does Gherkin syntax structure feature files in BDD?

Feature files bevatten een Feature-beschrijving, gevolgd door Scenarios met stappen gemarkeerd door Given, When, Then, And, But.

93
New cards

What are the common keywords used in Gherkin scenarios?

Given, When, Then, And, But.

94
New cards

What is the purpose of scenario outlines in Gherkin?

Met scenario outlines kun je één scenario herhalen met meerdere datarijen (Examples-tabel).

95
New cards

What is the difference between scenario outlines and examples in Gherkin?

Scenario outlines definiëren de stapensjabloon; Examples levert de variaties van invoerwaarden.

96
New cards

What is Cucumber and how does it support BDD?

Cucumber is een testframework dat Gherkin-featurefiles kan lezen en gekoppelde stapdefinities in code uitvoert.

97
New cards

What are the key components of Cucumber?

Feature files, step definitions (bindings tussen Gherkin en code) en test runner.

98
New cards

How does Cucumber integrate with Gherkin to execute BDD scenarios?

Cucumber parsers de Gherkin-bestanden, matcht elke stap met een stapdefinitie in code en voert die uit.

99
New cards

What is Cypress?

Cypress is een modern end-to-end testframework voor webapplicaties met realtime reloads, debugging en eenvoudige API.

100
New cards

How can you integrate Cypress with Cucumber to execute BDD scenarios?

Met de cypress-cucumber-preprocessor plugin kun je Gherkin-featurefiles koppelen aan Cypress testbestanden.