◇ OpenCyber Academy
Technologist · Chapter 29 · English

Chapter 29 — Capstone build

Open, free learning for anyone who wants to protect people and technology. No account is required to read this text or its worked answers.

Chapter 29 — Capstone build

Lesson map

Lesson 29 published. Map, example, EX085.

flowchart TD
  N0["Learning outcomes"]
  N1["29.1 The capstone brief"]
  N2["29.2 Increments"]
  N3["29.3 Decision log"]
  N4["29.4 Ready for assessment"]
  N5["Synthesis"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5
  N5 --> EX["Worked example"]
  EX --> Q["Exercise EX085"]

Logical drawing

flowchart LR
  N0["Learning outcomes"]
  N1["29.1 The capstone brief"]
  N2["29.2 Increments"]
  N3["29.3 Decision log"]
  N4["29.4 Ready for assessment"]
  N5["Synthesis"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX085"]
[Learning outcomes]
    |
    v
[29.1 The capstone brief]
    |
    v
[29.2 Increments]
    |
    v
[29.3 Decision log]
    |
    v
[29.4 Ready for assessment]
    |
    v
[Synthesis]
    |
    v
[Worked example] --> [Exercise EX085]

Learning outcomes

You will (1) build a capstone artefact that solves a defined NCS problem; (2) work in increments with tests; (3) keep a decision log; and (4) prepare the artefact for assessment and handover.

29.1 The capstone brief

Priya's capstone: an "OT drift checker" that runs weekly on NCS's management host, combining the Chapter 11 inventory comparison, the Chapter 12 flow comparison, the Chapter 19 new-talker check and the Chapter 22 certificate check into one report with a single exit status. It reads exported files only and never contacts devices.

Each of the four checks already exists and has been run on NCS data; the capstone's work is combining them, validating their inputs and making the result something the facilities manager can run without Priya.

29.2 Increments

Week 1: one script that runs the four checks on sample files and prints sections. Week 2: a common output format (check, item, status, evidence file). Week 3: tests for each check using small fixtures, including empty inputs. Week 4: scheduling, logging and the "job did not run" alert. Each increment works end to end before the next begins.

Week 3 found a real defect: an empty capture file made the new-talker check report every baseline host as missing rather than "no data". Priya added a "no-data" status that fails the run, because an empty input usually means the capture failed.

29.3 Decision log

Examples: "Decision 3 — report exit status non-zero if any check returns UNAPPROVED, EXPIRED or VERSION-CONFLICT; alternative (always zero) rejected because the scheduler could not alert." "Decision 5 — no automatic remediation; all actions via tickets."

A further decision came from week 3: "Decision 6 — an empty input file produces status NO-DATA and a non-zero exit; alternative (treat as zero events) rejected because it reported every baseline host as missing, and an empty capture usually means the capture failed." Each entry names the alternative and the reason it lost, so an assessor can disagree with the reason rather than guess at it.

29.4 Ready for assessment

The artefact folder contains the code, tests, sample inputs, a README with how to run it, the decision log and a short operations guide. An assessor must be able to run it from a clean checkout and get the documented output.

Priya's folder met this with 23 tests that pass from a clean checkout. The operations guide is where her assessor later found the gap: the facilities manager could run the checker but still needed help to interpret VERSION-CONFLICT.

A reviewer can follow every status from the input files to the report without asking her.

Worked example (synthetic NCS)

At week 3 Priya's tests reveal that an empty capture file makes the new-talker check report every baseline host as missing rather than "no data". She adds a "no-data" status that fails the run, because an empty input usually means the capture failed — exactly what the site needs to know.

Synthetic case — Northgate Cold Storage. The capstone is a teaching example.

Errors and limits

Combining checks multiplies the ways input files can be wrong; validate inputs first. A tool that only Priya can run is not finished.

Exercises

Synthesis

A capstone build is small increments, tests at the edges, logged decisions and an artefact someone else can run.

Continue studying — chapter 29 of 30

← Chapter 28 (draft) · Course chapter index · Chapter 30 (draft) →