57 lines
6.7 KiB
HTML
57 lines
6.7 KiB
HTML
<!-- ==========================================================================
|
||
AISE502 · Moodle course page · Week 7
|
||
Section title (Edit section → Section name): Week 7: The Fit, Formally – Three Cases, the Procedure, the Matrix
|
||
Three blocks follow, matching the FHGR section template. Paste each block into the
|
||
corresponding 'Text and media area' (editor → source code view), or all three into one.
|
||
The slide set of lecture 7 is added by the lecturer as a file resource below block 2.
|
||
Generated by src/build_moodle.py from src/content/week_07.json – edit the JSON, not this file.
|
||
========================================================================== -->
|
||
|
||
<!-- BLOCK 1 · Learning objectives -->
|
||
<h4>🎯 Learning objectives</h4>
|
||
<ul>
|
||
<li>I can explain why fit(a,p) is non-compensatory and what a weighted sum would have destroyed in C6, C1 and C2.</li>
|
||
<li>I can derive the C6 row from the workload-shape gate: six of seven cells emptied before any rating is scored.</li>
|
||
<li>I can distinguish an operational weakness (repaired by a tactic) from a structural one (made survivable under condition).</li>
|
||
<li>I can judge a flipped ordering under plausible weight variation as a finding (trade-off point), not an error.</li>
|
||
<li>I know that a matrix cell rates a pattern only as the dominant structure of a class's core.</li>
|
||
<li>I can read the matrix by columns and rows: MM as default, MS premium, workload-shaped PF/EDA, HX never negative.</li>
|
||
<li>I know the definition of an architectural fitness function, its scope and cadence classes, and the four DORA metrics.</li>
|
||
<li>I can defend an ADR at the design-review gate: vetoes fired, mitigations documented, what the sensitivity check showed.</li>
|
||
</ul>
|
||
|
||
<!-- BLOCK 2 · Theory -->
|
||
<h4>🧑🏫 Theory</h4>
|
||
<p><strong>Lecture 7: The Fit, Formally – Three Cases, the Procedure, the Matrix</strong> · 2 lessons lecture + 2 lessons exercise<br>
|
||
This lecture runs the three-stage match end to end on C6, C1 and C2, states the procedure formally, reads the 7 × 10 matching matrix and introduces the measurement contract.</p>
|
||
<ul>
|
||
<li>C6: the workload-shape gate alone empties six of seven cells before any scoring; only PF proceeds to Stages 2–3 and reaches ++ – run the cheapest test first.</li>
|
||
<li>C1: MS's structural −− on D4 (no cross-service ACID) fires the veto, lifted only to ○ under the Monzo condition; MM's operational D5 weakness is repaired by hot standby (++).</li>
|
||
<li>C2: MS and EDA survive to Stage 3; the sensitivity analysis flips the ordering under plausible variation – a trade-off point, not an error: the class needs both patterns, placed.</li>
|
||
<li>fit(a,p) is non-compensatory: knock-out and shape gate (read per constitutive path), veto on High-weight dimensions unless a documented mitigation exists, holistic ordinal reading with sensitivity analysis – no weighted sum.</li>
|
||
<li>Cell semantics: fit(a,p) rates p only as the dominant structure of the core of a; a − cell is not a prohibition; HX cells read as the core's internal discipline.</li>
|
||
<li>Column-wise: MM is primary or secondary in seven of ten classes (MonolithFirst); MS earns its premium only where read scalability, fault isolation and team scaling coincide (C2; conditionally C5, C8).</li>
|
||
<li>PF and EDA are workload-shaped, HX is never negative, no row or column is uniformly positive (assumption A2); Prime Video, Segment, Shopify, Uber and Stack Overflow sit on cell boundaries.</li>
|
||
<li>Measurement contract: fitness functions (dependency checks, budgets, chaos experiments) and the four DORA metrics as executable invariants – the architecture may change freely as long as the contract stays green.</li>
|
||
</ul>
|
||
<p>📎 <strong>Materials:</strong> Slide set of Lecture 7 <em>(added below by the lecturer)</em> · Script: Part IV – Sections 30 (Three Matches, Three Stages), 31 (The Procedure in General), 32 (The Matching Matrix), 34 (Reading the Matrix as a Whole) and 37 (The Measurement Contract). Section 37: introduction only.</p>
|
||
|
||
<!-- BLOCK 3 · Self-study and assignments -->
|
||
<h4>🧑💻 Self-study and assignments</h4>
|
||
<p><strong>📖 Reading before the lecture:</strong> Part IV – Sections 30 (Three Matches, Three Stages), 31 (The Procedure in General), 32 (The Matching Matrix), 34 (Reading the Matrix as a Whole) and 37 (The Measurement Contract). Section 37: introduction only.</p>
|
||
<p><strong>Also before the lecture:</strong></p>
|
||
<ul>
|
||
<li>Bring last week's exercise results: the three-stage match on your own platform (knock-out → veto → ordinal reading), the decision, and the ADR you began.</li>
|
||
<li>Prepare for the design-review gate: A2 (ADR + C4 + measurement contract) is due at the end of this week.</li>
|
||
</ul>
|
||
<p><strong>🧩 Exercise session:</strong> The two-lesson exercise slot finalises the solution design (service cut and contracts, walking-skeleton plan, measurement contract) and holds the design-review gate at which each team defends its ADR – the last two-lesson slot before it becomes a one-lesson standup/coaching session from week 8.</p>
|
||
<p><strong>🛠️ Project work this week</strong> · Milestone M2 – Architecture Decision and Solution Design (weeks 4–7)</p>
|
||
<ul>
|
||
<li>Finalise the service cut and contracts: bounded contexts → service decomposition and the contracts between the deterministic core, the edges and the AI subsystem; record the decision as an ADR with rationale and a C4-style diagram.</li>
|
||
<li>Write the walking-skeleton plan: the thin end-to-end slice you will build first in Sprint 1 (M3: MarketDataService delivers prices, a minimal ResearchAgent produces one validated Insight, stable API, placeholder UI).</li>
|
||
<li>Set the numbers in the measurement contract: a token-cost budget per request at p95 (family 2, cost budget as a pipeline gate), an eval threshold of pass rate ≥ 95 % on a versioned golden set before rollout, p95 latency ≤ 20 s for the advisory scenario, and zero module-boundary violations (family 1, dependency rules as CI gates, ArchUnit / import-linter style).</li>
|
||
<li>Pass the design-review gate: defend the ADR – which vetoes fired, which mitigations are documented, what the sensitivity check showed.</li>
|
||
<li>Submit Deliverable A2 (end of week 7): the architecture dossier – ADR + C4 diagram + measurement contract. Production code starts only after the gate (exploratory spikes are allowed); from week 8 the exercise slot becomes a one-lesson standup/coaching session and Sprint 1 (M3, walking skeleton) begins.</li>
|
||
</ul>
|
||
<div style="border-left:4px solid #1b6ec2; background:#eef5fc; padding:8px 12px; margin:10px 0;">📌 <strong>Due this week:</strong> Deliverable A2 (end of week 7): architecture dossier (ADR + C4 + measurement contract) + design-review gate</div>
|