BibliotekSammanhängande läsvyEPUB
Del II — Den levande modellen · Kapitel 8

Konsekvensanalys

Nordic står inför en till synes enkel fråga: kan xECM uppgraderas från 26.1.2 till 26.2.0?

Ett traditionellt gränssnitt kan svara med en graf där xECM har tolv grannar. Ett annat kan visa att tre tenants binder den äldre versionen. Ett tredje kan markera två kontrakt som skew. Alla tre kan vara korrekta och ändå besvara olika frågor.

Matrix måste därför kunna säga mer än vad grafen når. Det måste kunna förklara:

  • vilken förändring som analyserades,
  • vilken modell och revision som användes,
  • vilka objekt som kan exponeras för förändringen,
  • vilka som sannolikt eller bekräftat påverkas,
  • vilken evidens och täckning som stöder bedömningen,
  • vilka luckor som förhindrar ett säkert svar,
  • vilken handling som rekommenderas och vem som äger beslutet.

Konsekvensanalys är inte en färgad graf. Det är en granskningsbar argumentkedja.

1. En väg är inte en konsekvens

I en riktad graf betyder en väg att en sekvens av valda kanter förbinder två noder. Resultatet beror på kantens riktning, vilka kanttyper som tillåts, startnoder, maxdjup och hur vägar dedupliceras. Matrix graph-core använder BFS och en global mängd redan sedda noder. Det ger i praktiken den första hittade vägen per nod, inte alla möjliga argument för påverkan (MATRIX-GRAPH-CORE).

Det är användbart för kandidatsökning men otillräckligt för kausalitet. En DEPENDS_ON-kant kan betyda byggberoende, runtimeanrop, organisatoriskt ansvar eller en historiskt deklarerad koppling. Att B är nåbar från A bevisar inte att en förändring i A orsakar ett visst utfall i B. Kausal analys kräver ytterligare antaganden om mekanism och alternativt förlopp (pearl2009causality, CLAIM-IMPACT-001).

Det första språkliga skyddet är därför en progression:

  1. Reachable — nåbar: noden hittades med deklarerad frågesemantik.
  2. Exposed — exponerad: relationens betydelse gör att noden kan möta förändringen.
  3. Plausibly affected — troligen påverkad: scenario, version och mekanism ger ett trovärdigt påverkanargument.
  4. Confirmed affected — bekräftat påverkad: aktuell observation eller verifiering visar utfallet i relevant scope.
  5. Required action — krävd handling: policy, riskaptit och ägare gör en åtgärd nödvändig.

Varje förflyttning kräver mer än den föregående. En UI-badge får aldrig hoppa från reachable direkt till must fix utan att visa argumentet.

2. Tre olika impactbegrepp i Matrix

Den nuvarande implementationen innehåller minst tre meningsfulla former av impact.

2.1 Topologisk impact

graph-core kan traversera downstream, upstream eller båda riktningar och returnera noder, kanter och vägar. Den rikare impactAnalysis kan också försöka samla evidens. Matrix Command har en separat klientalgoritm där dependents följer kanter baklänges och dependencies framåt (MATRIX-IMPACT-UI).

Denna analys svarar på: vilka grafobjekt ligger inom den valda beroendehorisonten?

2.2 Fleet- och versionsimpact

Fleet-analysen jämför tenantmanifest mot ett uppgraderingsscenario. En tenant som binder paketet blir impacted; numerisk versionsjämförelse anger behind, current, ahead eller unknown. Tenants utan paketbindning listas som opåverkade för just paketfrågan (MATRIX-FLEET-IMPACT).

Denna analys svarar på: vilka tillåtna tenants är exponerade för den angivna paketversionen? behind visar inte att verksamheten går sönder, bara att bindningen ligger bakom målversionen.

2.3 Kontraktsimpact

Kontraktsanalysen går igenom CONSUMES-relationer och skiljer deklarerad från observerad konsumtion. Resultatet är match, skew eller unknown; en okänd runtimeversion blir inte grön (MATRIX-CONTRACT-SKEW).

Denna analys svarar på: stämmer den deklarerade och observerade kontraktsversionen för den konsumtion som faktiskt modellerats?

De tre resultaten bör visas bredvid varandra, inte pressas in i samma odefinierade impactScore. Topologi kan finna en exponerad konsument, fleet kan finna en tenant med äldre paket och kontraktsanalysen kan visa faktisk skew. Tillsammans blir argumentet starkare, men de är fortfarande separata claims.

3. Börja med förändringsscenariot

ATAM använder scenarier för att göra arkitekturkvaliteter och tradeoffs konkreta (kazman1998atam). Samma princip behövs här. Frågan "vad påverkas av xECM?" är för obestämd. Ett scenario ska åtminstone ange:

scenarioId
stimulus/changeType
subject: package, API, schema, policy, node eller process
beforeState + afterState
effectiveWindow
tenant/environment scope
assumptions
decisionQuestion
decisionThreshold

För Nordic kan scenariot vara:

subject: package xecm
before: 26.1.2
after: 26.2.0
scope: Nordic production och endast auktoriserade tenants
assumption: breaking-change-listan är komplett för använda operationer
question: vilka verifieringar krävs före rollout?
threshold: ingen blockerande contract skew och bekräftat kvittoflöde i canary

Matrix har redan konfigurerade fleet-scenarier med fromVersion och toVersion (MATRIX-FLEET-SCENARIOS). Det är en bra kärna, men en fullständig bedömning behöver också frågan, scope, tid, antaganden och beslutströskel (CLAIM-IMPACT-002).

4. Bind också själva frågan

Samma scenario ger olika resultat om frågan körs med upstream i stället för downstream eller med djup två i stället för fem. Därför behöver resultatet ett frågekontrakt:

graphRevision + producer revisions
queriedAt
startNodeIds
direction
allowedEdgeKinds
maxDepth
pathPolicy: first | all | bounded-k
includeEvidence
tenant/zone authorization context
coverage policy version
engine + query semantics version

Om maxdjup nås ska resultatet bära en boundary: "ytterligare beroenden kan finnas". Om en kant filtreras bort ska det gå att se vilken regel som gjorde det. Om den globala visited-mängden bara bevarar första vägen får UI:t inte formulera den som den enda orsaken (CLAIM-GRAPH-005).

RESEARCH-020 prövar därför ett additivt ImpactAssessment-envelope. Det ska inte ersätta motorerna. Det ska göra deras svar jämförbara och reproducerbara.

5. Från nåbar till exponerad

En nåbar nod klassificeras som exponerad först när kanttypen har definierad scenariosemantik. En enkel regelmatris kan se ut så här:

Relation Scenario Exponeringsregel Vad den inte bevisar
CONSUMES API/schema ändras konsumenten använder berörd kontraktsyta att anropet misslyckas
DEPENDS_ON package uppgraderas beroendet ingår i berörd build/runtime att inkompatibilitet finns
EMITS eventformat ändras mottagande flöde kan få nytt payload att eventet faktiskt sänds
OBSERVES probe ändras observationstäckning kan ändras att källsystemet är påverkat
ATTESTS/PROVES kontroll ändras evidensens relevans måste omprövas att kontrollen fallerar
OWNED_BY tjänst ändras ägaren ska informeras eller besluta teknisk runtimeeffekt

Reglerna bör versionsbindas per kanttyp och scenariofamilj. En generisk "följ alla kanter" blandar teknisk propagation med ansvar, evidens och dokumentation.

6. Evidens måste följa sin egen semantik

I Matrix går en härledd PROVES-kant från observationen till definitionen: endpointen bevisar ingressdefinitionen (MATRIX-PROVES-DERIVATION). I processgrafen går även ATTESTS och VERIFIES från evidensbärande objekt mot kontroll eller processobjekt.

Den rika impactmotorns kompletterande evidenssökning börjar däremot vid den påverkade noden, söker utgående PROVES, VERIFIES, SUPPORTS och ATTESTS och lägger bara målnoder av kind evidence i resultatet. Ett hermetiskt test med evidence e --PROVES--> control c och startnod c gav:

{"evidence":[],"incoming":["e"]}

Grafen känner alltså den inkommande källan men evidensberikningen missar den. RESEARCH-019 är en rekommenderad backlogkandidat med acceptanskriterier för riktning och deduplicering. Felet betyder inte att all impactanalys är ogiltig; det betyder att en tom evidence-lista i denna kodväg inte får tolkas som "ingen evidens finns".

7. Okänt är ett eget resultat

Fem tillstånd måste hållas isär:

  • unaffected: scenarioregel och tillräcklig täckning stödjer att objektet inte exponeras eller påverkas,
  • affected: evidens och regel stödjer påverkan,
  • not assessed: objektet låg utanför avsiktligt scope,
  • unknown: nödvändig version, relation eller observation saknas,
  • refused: analysen fick inte använda data på grund av tenant-, zon- eller policygräns.

Även truncated bör finnas som synlig egenskap när traversal eller population avklippts. Okänd version, djupgräns och otillåten tenant får inte hamna i unaffected (CLAIM-IMPACT-003).

Fleetkoden gör en viktig distinktion: okänd version får unknown, medan en tenant som inte binder paketet kan bli opåverkad för just paketfrågan. Men den senare slutsatsen gäller bara om manifestpopulationen och tenantfiltreringen är tillräckligt täckta.

8. Coverage för impact

En impactbedömning behöver både grafcoverage och observationscoverage.

Grafcoverage frågar om alla relevanta producenter, tenants, relationstyper och revisionsintervall ingick. Observationscoverage frågar om de berörda runtimevägarna faktiskt observerades under relevant tid.

En minimal rapport kan innehålla:

expected producers/tenants/subjects
covered
missing
skipped with reason
refused
stale
unexpected
traversal boundaries

Matrix coverage-kontrakt ger redan dessa grundkategorier, men anroparen måste definiera nämnaren (MATRIX-COVERAGE-CONTRACT). Utan nämnare kan "0 fel" betyda att inget är fel eller att ingen tittade.

9. Deklarerad och observerad topologi

En deklarerad CONSUMES-kant kan vara gammal. En observerad span kan vara samplad eller sakna sin andra halva. De ska därför inte skriva över varandra.

OpenTelemetry Collector service graph connector kan härleda servicekanter ur parade client/server- eller producer/consumer-spans. Dokumentationen redovisar också unpaired och dropped spans och komponenten är i alpha (otel-servicegraph-connector). OpenLineage kan på motsvarande sätt uttrycka observerade jobb, runs och datasetflöden (openlineage-spec).

Detta ger en användbar jämförelse:

Deklarerat Observerat Tolkning
ja ja stödd aktiv relation inom observationsfönstret
ja nej kanske inaktiv, sällsynt, samplad eller feldeklarerad
nej ja möjlig shadow dependency eller saknad modellering
nej nej inget underlag; inte automatiskt opåverkad

RESEARCH-021 föreslår en syntetisk pilot. Observerade kanter bör bli tidsbundna claims med källor och coverage, inte automatiskt auktoritativ arkitektur (CLAIM-IMPACT-005).

10. Tenant, fleet och informationsläckage

En fleetfråga är samtidigt en behörighetsfråga. Om en användare bara får se Nordic får varken impacted, unaffectedTenantIds, totalsiffror eller traversalvägar avslöja andra tenants. Filtrering efter att en global summary räknats kan läcka själva existensen av skyddade objekt.

Den serverexponerade fleetfunktionen filtrerar impactresultat mot tillåtna tenant-ID:n. Det är rätt principiell placering av gränsen (MATRIX-FLEET-IMPACT, CLAIM-IMPACT-007). Ett generellt ImpactAssessment måste bära vilket authorization scope som faktiskt användes, utan att serialisera hemligheter.

För Nordic ska gränssnittet alltså inte säga "4 av 7 tenants påverkas" om operatören endast får se fyra. Det ska säga "4 av 4 auktoriserade tenants är exponerade; övrig population är inte synlig i detta beslutsscope".

11. Konsekvens i flera dimensioner

NIST SP 800-30 behandlar riskbedömning som stöd för val av handlingsalternativ, med explicit osäkerhet och antaganden (nist80030r1). Matrix behöver ett bredare verksamhetsperspektiv än enbart informationssäkerhet, men samma disciplin: bryt ned innan du sammanväger.

Dimension Exempel i Nordic Verifierbar fråga
Teknisk API- eller schemaskev passerar contract- och integrationstest?
Operativ stopp i dokumentleverans fungerar canary och rollback?
Kund försenade eller avvisade dokument vilka SLA/processer exponeras?
Data ändrad metadata eller lineage bevaras betydelse och härledning?
Säkerhet nya scopes eller attackyta ändras mandat eller kontroll?
Compliance evidens eller retention bryts kan kontrollen fortfarande attesteras?
Organisatorisk nytt ägarskap/on-call-behov vem fattar beslut och hanterar incident?

En siffra som risk = sannolikhet × påverkan kan vara användbar för grov rangordning när skalorna är definierade. Den får inte skapa låtsad precision. Visa ursprungliga dimensioner, intervall, antaganden och vad som skulle ändra bedömningen (CLAIM-IMPACT-004).

12. Simulation är ett villkorat påstående

Fleet-scenariot säger i praktiken: om paketet går till målversionen och dessa manifest är aktuella, vilka tenantbindningar ligger då bakom? Det är en kontrafaktisk fråga under modellantaganden. Det är inte en prognos om att en incident säkert inträffar (CLAIM-IMPACT-006).

Ett simuleringsresultat bör därför uttryckas:

Under scenario S, modellrevision G och antaganden A
är objekt X exponerat via väg P.
Påverkan Y är trolig/bekräftad med evidens E.
Coverage är C; luckor är L.
Rekommenderad handling är H enligt policy R.

Efter canary eller rollout matas observerat utfall tillbaka som nya claims. Först då kan Matrix jämföra förväntad och faktisk påverkan och förbättra reglerna.

13. Ett gränssnitt som stödjer beslut

En användare ska kunna gå från fråga till förklaring utan att börja i en gigantisk graf.

Vy 1: scenario

Välj ändringstyp, före/efter, tid, tenant/miljö och beslut. Visa antaganden och vilken data som inte är åtkomlig.

Vy 2: sammanfattning

Visa separata mängder för nåbara, exponerade, troliga, bekräftade, unknown, refused och opåverkade. Bryt ned konsekvensdimensioner; använd inte ett ensamt rött antal.

Vy 3: varför

För varje objekt: relationstolkning, en eller flera kända vägar, källrevision, evidens, freshness, coverage och alternativa förklaringar. Markera uttryckligt när endast första BFS-vägen visas.

Vy 4: luckor och motbevis

Lista saknad version, avklippt traversal, stale observation, konflikt, otillåten tenant och test som skulle kunna ändra verdict.

Vy 5: handlingsalternativ

Jämför genomför, canary, skjut upp, isolera eller samla mer evidens. Visa tradeoffs, ägare, approval och verifieringsplan. Verkställighet hör fortsatt till ActionGateway, inte till impactvyn.

Vy 6: utfall

Efter förändringen jämförs förväntad och observerad konsekvens. Avvikelsen blir underlag för modell-, kontrakts- och processförbättring.

Figur FIG-08-01 sammanfattar denna kedja.

Från ändringsscenario till beslutbar konsekvensbedömning
Visa diagramdefinition
flowchart LR
    S[Ändringsscenario<br/>före → efter, scope, tid] --> R[Nåbarhet<br/>kanter, riktning, djup]
    R --> E[Exponering<br/>vilka kan möta förändringen?]
    E --> P[Trolig påverkan<br/>semantik + antaganden]
    P --> C[Bekräftad påverkan<br/>observation + evidens]
    C --> A[Krävd handling<br/>ägarbeslut + grind]

    Q[Frågekontrakt<br/>grafrevision, filter, tenant] --> R
    V[Evidens och coverage<br/>färskhet, luckor, konflikter] --> P
    V --> C
    U[Okänt eller avklippt] -. får inte bli opåverkat .-> A
    A --> D{Beslut}
    D -->|genomför| M[Mät utfall och uppdatera claims]
    D -->|vägra eller utred| X[Ny evidens eller nytt scenario]
    M --> N[Ny evidens för nästa analyscykel]
    X --> N

14. När Matrix analyserar Matrix

Samma krav gäller systemets eget kontrollplan. En ändring i coordinatorns leasepolicy kan vara nåbar till agentkörningar, men påverkan måste skilja:

  • levande agenter som exponerats för policyn,
  • pausade agenter vars lease löper ut under fönstret,
  • döda eller saknade workers,
  • jobb vars resultat är stale eller saknar attestering,
  • tenants och köer som inte får visas i aktuellt scope,
  • prestandaförändring före och efter deployment.

Matrix kan inte trovärdigt förklara andra system om det inte lika tydligt kan förklara sitt eget tillstånd. En själv-impactvy bör använda samma scenario-, coverage-, evidens- och unknownmodell som kundlandskapet — inte en separat dashboard med andra sanningsregler.

15. Fallstudien som beslutsunderlag

Nordics xECM-uppgradering kan nu bedömas stegvis:

  1. Lås scenario 26.1.2 → 26.2.0 och Nordic production.
  2. Kör fleetanalys för auktoriserade tenantmanifest.
  3. Traversera relevanta CONSUMES, DEPENDS_ON, EMITS och kontrollrelationer med deklarerat djup och kantfilter.
  4. Klassificera nåbara objekt som exponerade eller irrelevant nåbara.
  5. Jämför deklarerade och observerade kontraktsversioner.
  6. Hämta evidens i relationernas kanoniska riktning och redovisa den kända implementationsluckan tills den är åtgärdad.
  7. Kontrollera coverage, freshness, conflicts och authorization scope.
  8. Bedöm konsekvens per dimension och jämför rolloutalternativ.
  9. Kräv canary receipt, rollbackplan och namngiven ägare före handling.
  10. Läs tillbaka utfallet och uppdatera bedömningen.

Det trovärdiga svaret är kanske inte "ja" eller "nej". Det kan vara:

Två auktoriserade tenants är exponerade via deklarerad konsumtion. En har bekräftad kontraktsskew, en har okänd runtimeversion. Dokumentflödets observation är färsk men populationstäckningen saknas. Genomför inte full rollout; samla versionsevidens och kör canary med kvitto- och rollbacktest.

Detta är Matrix värde: inte fler noder, utan ett beslut där det går att se vad systemet vet, varför det tror det och vad som fortfarande kan motbevisa det.

Sammanfattning

  • Reachability är kandidatsökning, inte kausalitet eller konsekvens.
  • Scenario, modellrevision och frågesemantik är del av resultatet.
  • Exponering, trolig påverkan, bekräftad påverkan och handling är olika claims.
  • Unknown, refused, not assessed och truncated får inte bli unaffected.
  • Graf-, fleet- och contract-impact är komplementära bevislinjer.
  • Deklarerad och observerad topologi ska jämföras med synlig coverage.
  • Konsekvens bryts ned i dimensioner innan risk eller prioritet sammanvägs.
  • Simulation är villkorad; verkligt utfall måste läsas tillbaka.
  • Matrix egen coordinator ska kunna analyseras med exakt samma ärlighet.

Fördjupningsmaterial

Övningar och laboration

Övningar och laboration

Övning 1: fem klassificeringsnivåer

För följande objekt i Nordic-fallet — API-konsument, dokumentprocess, monitoringprobe, kontrollägare och tenantmanifest — avgör om det är nåbart, exponerat, troligen påverkat, bekräftat påverkat eller kräver handling. Dokumentera vilket ytterligare belägg som krävs för nästa nivå.

Övning 2: två vägar, två argument

Rita två vägar från xECM till samma dokumentprocess: en via CONSUMES och en via OBSERVES. Förklara varför vägarna inte är utbytbara och hur en global visited-mängd kan dölja den andra vägen.

Övning 3: unknown är inte grönt

Klassificera följande: saknad runtimeversion, tenant utanför behörighet, traversal som når maxdjup, stale span, manifest utan paketbindning och komplett verifierad negativ canary. Använd exakt ett av unaffected, affected, not-assessed, unknown, refused; lägg till truncated när relevant.

Övning 4: tradeoffs

Jämför full rollout, canary, uppskjuten rollout och isolerad kompatibilitetsnod för xECM 26.2. Bedöm teknisk, operativ, kund-, data-, säkerhets-, compliance- och organisatorisk konsekvens utan att börja med ett totalscore.

Laboration: bygg ett reproducerbart ImpactAssessment

Scenario

Nordic överväger xECM 26.1.2 → 26.2.0. Grafen innehåller paket, API-kontrakt, konsumenter, dokumentprocess, monitoring, kontroll och evidens. Fleet-fixturen innehåller minst tre syntetiska tenants med current, behind och unknown version.

Leverabler

  1. versionsbundet scenario med före/efter, scope, antaganden och beslutströskel,
  2. query envelope med grafrevision, riktning, kantfilter, maxdjup och pathpolicy,
  3. separata reachable-, exposed-, plausible-, confirmed- och action-mängder,
  4. contract- och fleetresultat som egna claims,
  5. evidence- och coverage report,
  6. konsekvensmatris i sju dimensioner,
  7. minst två handlingsalternativ och deras tradeoffs,
  8. maskinläsbart assessment plus mänsklig beslutsförklaring,
  9. plan för read-back av faktiskt utfall.

Obligatoriska mutationer

  • reversera en CONSUMES-kant,
  • ändra maxDepth så att en process precis hamnar utanför,
  • lägg till en andra väg till samma nod,
  • ta bort en tenant ur populationen utan att ändra count-texten,
  • sätt en runtimeversion till unknown,
  • gör observationen stale,
  • lägg evidence --PROVES--> control och starta analysen vid kontrollen,
  • låt en tenant ligga utanför operatörens behörighet,
  • lägg in deklarerad kant utan observerad trafik,
  • lägg in observerad trafik utan deklarerad kant.

För varje mutation ska studenten ange vilka mängder som förändras, vilka som inte får förändras och om bedömningen ska bli unknown, refused eller truncated. En tom evidenslista får inte tolkas som frånvaro innan riktningen kontrollerats.

Acceptanskriterier

  • Samma input och revisionslås ger samma assessment-digest.
  • Reachable presenteras aldrig automatiskt som affected.
  • Unknown/refused/truncated räknas aldrig som unaffected.
  • Minst två vägar kan redovisas eller resultatet deklarerar first-path-policy.
  • Tenantfilter tillämpas före counts och serialisering.
  • Evidensens riktning testas mot den kanoniska PROVES-relationen.
  • Beslutsförklaringen innehåller ett möjligt motbevis och nästa verifierbara handling.

Bedömning, 24 poäng

Del Poäng
Scenario, revisionslås och frågekontrakt 4
Klassificering från reachable till action 4
Kantsemantik, vägar och evidens 4
Coverage, unknown och tenantgräns 4
Konsekvensdimensioner och tradeoffs 4
Reproducerbar förklaring och read-back 4

Godkänt kräver minst 15 poäng samt att tenantläckage, unknown-as-unaffected och evidensriktningsfelet fångas.

Källor och begränsningar

Kapitelkällor

Cite-key/käll-ID Funktion Begränsning
angles2008graphmodels Formell bakgrund till grafmodeller och traversal. Ger inte domänsemantik eller kausalitet.
pearl2009causality Avgränsar kausala modeller från vanlig association och nåbarhet. Matrix har inte därmed en färdig kausal modell.
kazman1998atam Scenariodriven arkitekturbedömning och tradeoff points. ATAM är en metod, inte en runtime-impactmotor.
nist80030r1 Riskbedömning som beslutsunderlag med hot, sårbarhet, sannolikhet och påverkan. Säkerhetsriskperspektiv; kapitlets dimensioner är bredare.
otel-servicegraph-connector Härleder observerade servicekanter ur parade spans. Alpha; sampling och oparade spans kan göra bilden ofullständig.
openlineage-spec Observerade jobb-, run- och datasetrelationer. Täcker inte alla tekniska eller organisatoriska beroenden.
MATRIX-GRAPH-CORE Faktisk traversal, impact-BFS och evidensberikning. BFS behåller första väg per nod; rik evidenssökning har verifierad riktningslucka.
MATRIX-IMPACT-UI Dependents/dependencies-semantik och uttrycklig honesty note. Klientsidig, saknar gemensamt versionsbundet assessment-envelope.
MATRIX-FLEET-IMPACT / MATRIX-FLEET-SCENARIOS Tenantbindning och versionsskew för uppgraderingsscenario. Modellerar exponering/version, inte alla konsekvensdimensioner.
MATRIX-CONTRACT-SKEW Skiljer declared/observed och match/skew/unknown. Kontraktsavvikelse är en dimension, inte total påverkan.
MATRIX-PROVES-DERIVATION Kanonisk riktning evidence/observation → definition. En PROVES-kant behöver fortfarande bedömas i sitt scope.
Argumentkarta

Argumentkarta: konsekvensanalys

Huvudtes

Konsekvensanalys är en versionsbunden argumentkedja från förändringsscenario till beslut. Grafnåbarhet avgränsar kandidater men blir först beslutbar när relationernas betydelse, evidens, coverage, tenantgräns och konsekvensdimension redovisas.

Kedja

  1. En grafväg visar nåbarhet, inte kausal effekt (CLAIM-IMPACT-001).
  2. Scenario och frågekontrakt måste bindas till resultatet (CLAIM-IMPACT-002).
  3. Okänt och avklippt hålls skilda från opåverkat (CLAIM-IMPACT-003).
  4. Konsekvens bryts ned innan prioritering (CLAIM-IMPACT-004).
  5. Deklarerad och observerad topologi jämförs utan att blandas ihop (CLAIM-IMPACT-005).
  6. Simulation är villkorad analys, inte säker prognos (CLAIM-IMPACT-006).
  7. Behörighet verkställs innan aggregation (CLAIM-IMPACT-007).

Motbevisande test

Om ett node-count från standard-BFS ensamt kan reproducera samma beslut efter reverserad kant, ändrat maxdjup, okänd version, saknad observation, alternativ väg och tenantfilter behövs inte det rikare kontraktet. Laborationen visar varför resultatet förändras eller måste bli okänt.

Faktagranskning och öppna beslut

Kapitelgranskning

Status: första manusutkast 2026-08-11. Intern implementations-, risk-, säkerhets-, observability- och pedagogisk granskning gjord. Extern arkitektur-/riskgranskning och körbar assessment-fixture återstår.

Faktagranskning

  • graph-core använder BFS med global seen-mängd och bevarar i praktiken första funna väg per nod.
  • Den rika impactanalysen söker extra evidens via utgående PROVES/VERIFIES/SUPPORTS/ATTESTS och kräver målnod kind evidence.
  • Kanonisk PROVES-derivering går observation/evidens → definition.
  • Hermetiskt test 2026-08-11 bekräftar tom evidenslista för inkommande evidence e --PROVES--> control c, trots att e syns som incoming.
  • Fleetimpact skiljer behind/current/ahead/unknown och gissar inte okända versioner.
  • Kontraktsanalysen skiljer declared/observed och skew/match/unknown.
  • Matrix Command beskriver sina resultat som producerad grafdata, inte automatiskt runtime status.

Akademisk och metodmässig granskning

  • Grafteori används för nåbarhet, inte som kausalitetsbevis.
  • Pearl används för avgränsningen kausal modell, inte för påståendet att Matrix redan implementerar en sådan.
  • ATAM används för scenario och tradeoffdisciplin, inte som impactalgoritm.
  • NIST SP 800-30 används som riskbedömningsram; Matrix dimensioner är bredare.
  • Inga precisa riskpoäng rekommenderas utan definierade skalor och kalibrering.

Arkitektur- och säkerhetsgranskning

  • RESEARCH-019 är rekommenderad först efter reproducerat riktningsfel; ingen Matrix-fil ändras.
  • RESEARCH-020 är ett additivt envelope-experiment, inte beslut om ny kärna.
  • RESEARCH-021 kräver syntetisk pilot och beaktar alpha-status, sampling, oparade spans, retention och tenantgräns.
  • Server-side tenantfilter måste föregå counts, paths och sammanfattning.
  • Impactvyn får föreslå men inte kringgå ActionGateway.

Pedagogisk granskning

  • Nordic följer samma case genom graf-, fleet- och contract-impact.
  • Mutationerna prövar riktning, djup, alternativ väg, coverage, freshness, evidens och tenantgräns.
  • Bedömningen kräver motbevis och nästa handling, inte bara korrekt node-count.

Öppna beslut

  1. Vilka edge kinds har stabil exponeringssemantik per scenariofamilj?
  2. Ska pathpolicy stödja all-paths, bounded-k eller förklaringsspecifik sökning?
  3. Vem äger ImpactAssessment och dess revisions-/digestkontrakt?
  4. Hur visas authorization-luckor utan att existensen av andra tenants läcker?
  5. Vilka observerade topologisignaler har tillräcklig coverage för produktbruk?
Kapitelkontrakt

Syfte

Göra konsekvensanalys till ett granskningsbart beslutsunderlag i stället för en grafvisualisering. Kapitlet visar hur ett förändringsscenario stegvis går från nåbarhet till exponering, trolig och bekräftad påverkan samt krävd handling.

Lärandemål

Studenten ska kunna specificera ett reproducerbart impactscenario, skilja beroende från kausalitet, behandla evidens och coverage explicit, analysera tenant- och kontraktspåverkan samt formulera beslut med synliga antaganden och kunskapsluckor.

Fallstudiehändelse

Nordic överväger att uppgradera xECM från 26.1.2 till 26.2.0. Studenten ska avgöra vilka integrationer, processer, kontroller och tenants som är kandidater för påverkan, vad som faktiskt är belagt och vilka verifieringar som krävs före beslut.