AISE502/moodle/week_07.html

57 lines
6.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- ==========================================================================
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>