Self-Assessment Questions Software Architecture Flashcards

1
Q

Wat zijn de vier dimensies die softwarearchitectuur definiëren?

A

Structuur, architectuurkenmerken, afhankelijkheden en constructietechnieken.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Wat is het verschil tussen een architectuurbeslissing en een ontwerpbeginsel?

A

Een architectuurbeslissing bepaalt de algemene structuur van het systeem, terwijl een ontwerpbeginsel specifieke richtlijnen biedt voor implementatie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Noem de acht kernverwachtingen van een softwarearchitect.

A

Technisch leiderschap, ontwerp en documentatie, besluitvorming, communicatie, samenwerking, mentoring, risicobeheer en naleving van standaarden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wat is de Eerste Wet van Softwarearchitectuur?

A

Alles in softwarearchitectuur draait om het maken van afwegingen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Waarom werkt de traditionele scheiding tussen architectuur en ontwikkeling niet meer?

A

Het veroorzaakt communicatieproblemen en belemmert flexibele samenwerking en iteratieve verbeteringen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Noem de drie kennisniveaus in de kennisdriehoek en geef een voorbeeld van elk.

A

Praktijkkennis (hands-on ervaring), conceptuele kennis (algemene principes) en proceskennis (projectbeheer).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Waarom is technische breedte belangrijker dan technische diepte voor een architect?

A

Een brede kennisbasis stelt architecten in staat om systemen holistisch te ontwerpen en samen te werken met verschillende teams.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hoe kunnen architecten hun technische diepgang behouden?

A

Door hands-on werk te doen, code reviews uit te voeren en betrokken te blijven bij implementatiedetails.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wat betekent de term connascence?

A

Het beschrijft de mate van afhankelijkheid tussen elementen in een systeem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wat is het verschil tussen statische en dynamische connascence?

A

Statische connascence verwijst naar afhankelijkheden zichtbaar in de code, terwijl dynamische afhankelijkheden zich voordoen tijdens runtime.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wat betekent connascence van type? Is het statisch of dynamisch?

A

Het beschrijft afhankelijkheden van types tussen componenten; het is statisch.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wat is de sterkste vorm van connascence?

A

Connascence van locatie, waarbij elementen precies moeten worden geplaatst.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wat is de zwakste vorm van connascence?

A

Connascence van naam, waarbij alleen overeenstemming in namen vereist is.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Welke vorm van connascence heeft de voorkeur in een codebasis: statisch of dynamisch?

A

Statisch, omdat het gemakkelijker te controleren en te beheren is.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Welke drie criteria moet een kenmerk hebben om als architectuurkenmerk te worden beschouwd?

A

Het moet meetbaar, significant en relevant voor de architectuur zijn.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wat is het verschil tussen een impliciet en expliciet kenmerk? Geef een voorbeeld van elk.

A

Impliciet: automatisch verkregen (bijv. betrouwbaarheid in een gedistribueerd systeem). Expliciet: vereist specifieke maatregelen (bijv. beveiliging).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Geef een voorbeeld van een operationeel kenmerk.

A

Beschikbaarheid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Geef een voorbeeld van een structureel kenmerk.

A

Modulariteit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Geef een voorbeeld van een cross-cutting kenmerk.

A

Beveiliging.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Welk architectuurkenmerk is belangrijker: beschikbaarheid of prestatie?

A

Dit hangt af van de systeemvereisten; beide kunnen kritisch zijn.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Waarom is het verstandig om het aantal kenmerken te beperken dat een architectuur ondersteunt?

A

Om complexiteit en conflicten tussen kenmerken te verminderen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Waar of niet waar: de meeste architectuurkenmerken komen voort uit bedrijfsvereisten en gebruikersverhalen.

A

Waar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Welke architectuurkenmerken ondersteunen snelle time-to-market?

A

Agility, testbaarheid en schaalbaarheid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Wat is het verschil tussen schaalbaarheid en elasticiteit?

A

Schaalbaarheid verwijst naar het uitbreiden van resources; elasticiteit verwijst naar het dynamisch aanpassen van resources aan vraag.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Welke kenmerken zijn belangrijk bij grote klantenacquisities?

A

Schaalbaarheid, elasticiteit en prestaties.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Waarom is cyclomatische complexiteit zo’n belangrijke metriek voor architectuur?

A

Het meet de complexiteit van de code, wat helpt bij het beoordelen van onderhoudbaarheid en testbaarheid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

Wat is een architectuurfitnessfunctie en hoe kan deze worden gebruikt?

A

Een fitnessfunctie meet hoe goed een architectuur voldoet aan specifieke kenmerken, zoals schaalbaarheid of prestaties.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Geef een voorbeeld van een fitnessfunctie om schaalbaarheid te meten.

A

Een test die de responstijd meet bij een toenemend aantal gelijktijdige gebruikers.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Wat is het belangrijkste criterium voor een architectuurkenmerk om fitnessfuncties mogelijk te maken?

A

Het moet meetbaar zijn.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

Wat is een architectonisch quantum en waarom is het belangrijk?

A

Een quantum is een set componenten met gedeelde kenmerken; het helpt bij het definiëren van losgekoppelde eenheden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Een systeem met één gebruikersinterface en vier onafhankelijke services met eigen databases: is dit één quantum of vier? Waarom?

A

Vier, omdat elke service zijn eigen kenmerken heeft.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Een systeem met een admin- en klantgedeelte: hoeveel quanta zou dit hebben en waarom?

A

Twee quanta, omdat ze verschillende domeinen en kenmerken hebben. Als ze een database delen, zou deze in het admin-quantum moeten zitten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Hoe worden componenten meestal gemanifesteerd binnen een applicatie of service?

A

Als groepen klassen of bronbestanden met een specifieke verantwoordelijkheid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Wat is het verschil tussen technische en domeinpartitionering?

A

Technische partitionering splitst op basis van technologie, terwijl domeinpartitionering splitst op basis van bedrijfsdomeinen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Wat is het voordeel van domeinpartitionering?

A

Het weerspiegelt bedrijfslogica, wat begrijpelijkheid en onderhoudbaarheid bevordert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Wanneer zou technische partitionering een betere keuze zijn?

A

Bij gedeelde technische functionaliteiten zoals logging of authenticatie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Wat is de entity trap en waarom is dit geen goede benadering voor componentidentificatie?

A

Het overspecialiseert componenten rond entiteiten, wat leidt tot hoge koppeling.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Wanneer zou je de workflowbenadering verkiezen boven de actor/actie-benadering?

A

Bij complexe workflows die meerdere stappen of componenten omvatten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Noem de acht valkuilen van gedistribueerd computeren.

A

Netwerk is betrouwbaar, latency is nul, bandbreedte is oneindig, netwerk is veilig, topologie verandert niet, transportkosten zijn nul, netwerk is homogeen, en netwerkstoringen komen niet voor.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Noem drie uitdagingen die gedistribueerde architecturen hebben en monolithische architecturen niet.

A

Latency, netwerkstoringen en gegevensconsistentie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Wat is stempel-koppeling?

A

Wanneer een interface meer gegevens ontvangt dan nodig is, wat leidt tot onnodige afhankelijkheid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Hoe kun je stempel-koppeling aanpakken?

A

Door interfaces te beperken tot alleen de benodigde gegevens of door meerdere kleinere interfaces te creëren.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Wat is het verschil tussen een open en gesloten laag?

A

Bij een gesloten laag moeten verzoeken elke tussenliggende laag doorlopen; bij een open laag kunnen ze lagen overslaan.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Beschrijf het concept van lagen van isolatie en de voordelen ervan.

A

Het scheidt verantwoordelijkheden en verbetert onderhoudbaarheid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Wat is het architectonische sinkhole-anti-patroon?

A

Wanneer verzoeken door meerdere lagen gaan zonder enige verwerking, wat inefficiënt is.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Welke architectuurkenmerken stimuleren het gebruik van gelaagde architectuur?

A

Eenvoud, modulariteit en onderhoudbaarheid.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Waarom ondersteunt de gelaagde architectuurstijl testbaarheid slecht?

A

Hoge koppeling tussen lagen maakt het moeilijk om afzonderlijke onderdelen te testen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
48
Q

Waarom ondersteunt de gelaagde architectuurstijl agility slecht?

A

Wijzigingen in een laag kunnen grote impact hebben op andere lagen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
49
Q

Kunnen pijpen bidirectioneel zijn in een pipeline-architectuur?

A

Nee, pijpen zijn altijd unidirectioneel.

50
Q

Noem de vier soorten filters en hun doel. Pipeline

A

Producer (start gegevens), Transformer (transformaties), Tester (controleert gegevens), Consumer (einddoel).

51
Q

Kan een filter gegevens via meerdere pijpen sturen? pipeline

A

Ja, maar dit verhoogt de complexiteit.

52
Q

Is de pipeline-architectuur technisch of domeingeoriënteerd?

A

Technisch georiënteerd.

53
Q

Hoe ondersteunt de pipeline-architectuur modulariteit?

A

Door elke filter onafhankelijk te maken.

54
Q

Geef twee voorbeelden van pipeline-architectuur.

A

ETL-processen en Unix shell-scripts.

55
Q

Wat is een andere naam voor de microkernel architectuurstijl?

A

Plug-in architectuur.

56
Q

Wanneer mogen plug-ins afhankelijk zijn van andere plug-ins?

A

Alleen als de afhankelijkheid expliciet en goed gedefinieerd is.

57
Q

Welke tools kunnen plug-ins beheren?

A

OSGi, Eclipse en Apache Karaf.

58
Q

Wat doe je als een derde-partij plug-in niet aan de standaard voldoet?

A

Een adapter maken om compatibiliteit te garanderen.

59
Q

Geef twee voorbeelden van microkernel architectuur.

A

Eclipse IDE en webbrowser-extensies.

60
Q

Is de microkernel architectuur technisch of domeingeoriënteerd?

A

Technisch georiënteerd.

61
Q

Waarom is de microkernel architectuur altijd een enkel quantum?

A

Omdat alle plug-ins afhankelijk zijn van de kern.

62
Q

Wat is domein/architectuur-isomorfie?

A

Het afstemmen van de architectuur op de behoeften van het domein.

63
Q

Hoeveel services zijn er typisch in een service-based architectuur?

A

Gemiddeld tussen de 4 en 12 services.

64
Q

Moet je in een service-based architectuur altijd een database opsplitsen?

A

Nee, dit is afhankelijk van de domeinen en afhankelijkheden.

65
Q

Onder welke omstandigheden zou je een database willen opsplitsen?

A

Wanneer domeinen specifieke gegevensisolatie vereisen of wanneer prestaties een probleem zijn.

66
Q

Welke techniek kun je gebruiken om databasewijzigingen in een service-based architectuur te beheren?

A

Versiebeheer van databaseschema’s of schema-evolutie tools.

67
Q

Welke architectuurkenmerken worden goed ondersteund door de service-based architectuur?

A

Agility, testbaarheid en loskoppeling.

68
Q

Waarom wordt elasticiteit slecht ondersteund in service-based architectuur?

A

Door de grofkorrelige services die moeilijk dynamisch schaalbaar zijn.

69
Q

Hoe kun je het aantal architecturale quanta in een service-based architectuur vergroten?

A

Door services verder op te splitsen in kleinere domeinen.

70
Q

Wat zijn de primaire verschillen tussen de broker- en mediator-topologieën?

A

Broker-topologie heeft geen centrale controle, mediator-topologie gebruikt een centrale coördinator voor workflows.

71
Q

Voor betere workflowcontrole, gebruik je de mediator of broker topologie?

A

De mediator-topologie.

72
Q

Gebruikt de broker-topologie meestal een publish-and-subscribe model of een point-to-point model?

A

Publish-and-subscribe model.

73
Q

Noem twee primaire voordelen van asynchrone communicatie.

A

Lagere latentie en betere schaalbaarheid.

74
Q

Geef een voorbeeld van een typische aanvraag binnen een request-gebaseerd model.

A

Een REST API-aanroep om gebruikersgegevens op te halen.

75
Q

Geef een voorbeeld van een typische aanvraag in een event-gebaseerd model.

A

Een gebeurtenis die een voorraadupdate triggert na een bestelling.

76
Q

Wat is het verschil tussen een initiërende gebeurtenis en een verwerkende gebeurtenis? EDA

A

Een initiërende gebeurtenis start een proces; een verwerkende gebeurtenis reageert op een initiërende gebeurtenis.

77
Q

Welke technieken kun je gebruiken om gegevensverlies te voorkomen bij het verzenden en ontvangen van berichten uit een wachtrij? EDA

A

Gebruik van bevestigingen, retries en message durability.

78
Q

Wat zijn de drie belangrijkste kenmerken die event-driven architectuur stimuleren?

A

Asynchrone verwerking, schaalbaarheid en responsiviteit.

79
Q

Welke architectuurkenmerken worden niet goed ondersteund in event-driven architectuur?

A

Sterke consistentie en eenvoud.

80
Q

Waar ontleent de space-based architectuur zijn naam aan?

A

Aan de “ruimten” (in-memory grids) waarin gegevens worden opgeslagen en verwerkt.

81
Q

Wat is een primair aspect van space-based architectuur dat het onderscheidt van andere stijlen?

A

Het vermijden van knelpunten door het elimineren van centrale databases.

82
Q

Noem de vier componenten van de virtualized middleware in space-based architectuur.

A

Messaging grid, processing grid, data grid, en deployment manager.

83
Q

Wat is de rol van het messaging grid?

A

Het beheren van communicatie tussen componenten.

84
Q

Wat is de rol van een data-writer in space-based architectuur?

A

Het verwerken en opslaan van gegevens.

85
Q

Onder welke omstandigheden moet een service toegang krijgen tot data via de data-reader?

A

Wanneer gegevens worden gedeeld tussen meerdere verwerkingsunits.

86
Q

Verhoogt of verlaagt een kleine cache de kans op gegevensconflicten?

A

Verhoogt

87
Q

Wat is het verschil tussen een gerepliceerde cache en een gedistribueerde cache?

A

Een gerepliceerde cache dupliceert gegevens over alle nodes, terwijl een gedistribueerde cache gegevens opsplitst tussen nodes. Space-based architectuur gebruikt meestal een gerepliceerde cache.

88
Q

Noem drie kenmerken die sterk worden ondersteund door space-based architectuur.

A

Elasticiteit, schaalbaarheid en prestaties.

89
Q

Waarom scoort testbaarheid laag in space-based architectuur?

A

Door de complexiteit van het testen van gedistribueerde in-memory gegevens.

90
Q

Wat was de belangrijkste drijfveer achter service-oriented architecture (SOA)?

A

Hergebruik van services en integratie van systemen.

91
Q

Wat zijn de vier primaire servicetypen binnen een SOA?

A

Business services, enterprise services, application services, en infrastructure services.

92
Q

Noem enkele factoren die hebben geleid tot de ondergang van SOA.

A

Hoge complexiteit, sterke afhankelijkheden en slechte prestaties.

93
Q

Is SOA technisch of domeingericht gepartitioneerd?

A

Technisch gepartitioneerd.

94
Q

Hoe wordt domeinhergebruik en operationeel hergebruik aangepakt in SOA?

A

Domeinhergebruik door gedeelde services; operationeel hergebruik door infrastructuurcomponenten.

95
Q

Waarom is het bounded context-concept zo cruciaal voor microservices?

A

Het zorgt ervoor dat elke service zijn eigen duidelijke verantwoordelijkheid heeft.

96
Q

Wat zijn drie manieren om te bepalen of je de juiste granulariteit hebt in een microservice?

A

Domeingrenzen, onafhankelijkheid van data, en minimale koppeling.

97
Q

Welke functionaliteiten kunnen zich in een sidecar bevinden? Micorservices

A

Monitoring, logging en beveiliging.

98
Q

Wat is het verschil tussen orkestratie en choreografie? Welke ondersteunt microservices?

A

Orkestratie gebruikt een centrale coördinator; choreografie laat services zelfstandig communiceren. Microservices ondersteunt beide, maar choreografie is gebruikelijker.

99
Q

Wat is een saga in microservices?

A

Een patroon om gedistribueerde transacties te beheren met compenserende acties.

100
Q

Waarom worden agility, testbaarheid en deployability goed ondersteund in microservices?

A

Door losgekoppelde, kleine services die snel kunnen worden ontwikkeld en getest.

101
Q

Noem twee redenen waarom prestaties vaak een probleem zijn in microservices.

A

Netwerklatentie en interservicecommunicatie.

102
Q

Is microservices een domein-gepartitioneerde architectuur of een technisch-gepartitioneerde architectuur?

A

Domein-gepartitioneerd.

103
Q

Beschrijf een topologie waarbij een microservices-ecosysteem slechts één quantum heeft.

A

Alle services zijn sterk afhankelijk van dezelfde database of gedeelde componenten.

104
Q

Hoe wordt domeinhergebruik en operationeel hergebruik aangepakt in microservices?

A

Domeinhergebruik door data duplicatie; operationeel hergebruik door gedeelde infrastructuur.

105
Q

Op welke manier beïnvloedt de data-architectuur (structuur van de logische en fysieke datamodellen) de keuze van een architectuurstijl?

A

De data-architectuur bepaalt hoe gegevens worden beheerd en opgeslagen, wat gevolgen heeft voor consistentie, schaalbaarheid en prestaties.

106
Q

Hoe beïnvloeden strategische doelen en zakelijke vereisten je keuze van architectuurstijl?

A

Ze bepalen welke architectuurkenmerken het belangrijkst zijn, zoals tijd-naar-markt of fouttolerantie.

107
Q

Wat zijn de stappen die een architect gebruikt om te bepalen welke architectuurstijl, datapartitionering en communicatiestijlen te gebruiken?

A

Analyse van domeinen, identificeren van architectuurkenmerken, keuze tussen monoliet of gedistribueerd, bepalen van data-indeling en selectie van synchronisatie- of asynchrone communicatie.

108
Q

Welke factor leidt een architect naar een gedistribueerde architectuur?

A

Wanneer verschillende delen van een systeem verschillende architectuurkenmerken vereisen, zoals schaalbaarheid of beschikbaarheid.

109
Q

Wat is het anti-patroon “Covering Your Assets”?

A

Het vermijden of uitstellen van een beslissing uit angst om een verkeerde keuze te maken.

110
Q

Welke technieken kun je gebruiken om het anti-patroon “Email-Driven Architecture” te vermijden?

A

Gebruik één centraal opslagpunt voor beslissingen, zoals een wiki of ADR-bestand, en communiceer via links naar dat opslagpunt.

111
Q

Wat zijn de twee dimensies van de risicobeoordelingsmatrix?

A

De impact van het risico en de waarschijnlijkheid dat het risico optreedt.

112
Q

Welke manieren kun je gebruiken om de richting van een specifiek risico in een beoordeling te tonen?

A

Gebruik plus- en mintekens, pijlen met kleurcodes (groen voor verbetering, rood voor verslechtering), of trendwaarden.

113
Q

Waarom moet risk storming een gezamenlijke oefening zijn?

A

Omdat geen enkele architect volledig zicht heeft op het hele systeem en ontwikkelaars waardevolle input kunnen leveren.

114
Q

Waarom moet de identificatiefase in risk storming een individuele activiteit zijn?

A

Om beïnvloeding door anderen te voorkomen en een breed scala aan risicovelden te identificeren.

115
Q

Wat is irrationele artifacthechting, en waarom is het belangrijk met betrekking tot het documenteren en diagrammen van architectuur?

A

Het te veel vasthouden aan diagrammen of documentatie die niet meer relevant of accuraat is, wat kan leiden tot misverstanden.

116
Q

Waar verwijzen de 4 C’s naar in de C4-modelleringstechniek?

A

Context, container, component en code.

117
Q

Wat betekenen stippellijnen tussen componenten in architectuurdiagrammen?

A

Stippellijnen duiden optionele of indirecte afhankelijkheden aan.

118
Q

Wat zijn de twee primaire informatiestromen die een presentator heeft tijdens een presentatie?

A

Verbale communicatie en visuele ondersteuning.

119
Q

Wat zijn drie waarschuwingssignalen dat je team te groot wordt?

A

Communicatieproblemen, langere vergaderingen en een afname in productiviteit.

120
Q

Wat is de regel “Divide and Conquer” en hoe kan deze worden toegepast bij onderhandelingen over architectuurkenmerken? Geef een voorbeeld.

A

Splits een groot probleem op in kleinere, beheersbare onderdelen. Bijvoorbeeld: bespreek prestaties en schaalbaarheid afzonderlijk.