◇ OpenCyber Academy
Doctoral research · Chapter 7 · English

Chapter 7 — Thesis synthesis and reproducibility archive

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 7 — Thesis synthesis and reproducibility archive

Lesson map

Lesson 07 published. Map, example, EX039.

flowchart TD
  N0["Learning outcomes"]
  N1["7.1 Synthesis"]
  N2["7.2 Archive contents"]
  N3["Lab — archive manifest"]
  N4["7.3 Reading the manifest"]
  N5["7.4 Data handling"]
  N6["7.5 Licensing"]
  N7["Chapter links"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Worked example"]
  EX --> Q["Exercise EX039"]

Logical drawing

flowchart LR
  N0["Learning outcomes"]
  N1["7.1 Synthesis"]
  N2["7.2 Archive contents"]
  N3["Lab — archive manifest"]
  N4["7.3 Reading the manifest"]
  N5["7.4 Data handling"]
  N6["7.5 Licensing"]
  N7["Chapter links"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX039"]
[Learning outcomes]
    |
    v
[7.1 Synthesis]
    |
    v
[7.2 Archive contents]
    |
    v
[Lab — archive manifest]
    |
    v
[7.3 Reading the manifest]
    |
    v
[7.4 Data handling]
    |
    v
[7.5 Licensing]
    |
    v
[Chapter links]
    |
    v
[Worked example] --> [Exercise EX039]

Learning outcomes

You will (1) synthesise findings across chapters; (2) build a verifiable archive; (3) document data handling.

7.1 Synthesis

The thesis argues that staged deployment, a practice many organisations use without evidence, was associated with faster coverage and fewer failures at one trust, with a clear method others can repeat. The phrasing "was associated with" follows the revision after the Hawthorne critique. The synthesis names the trust, the period and the outcomes, so a reader can see the scope at once. It also states what remains open: whether the effect holds at other trusts and whether firmware updates need a different deployment design.

7.2 Archive contents

The archive holds synthetic-structure data, analysis code, the codebook, the pre-registration and a readme. The readme lists the order in which scripts run and the expected output of each, so a reader can regenerate every table. The pre-registration is included so that anyone can compare the planned analysis with the published one. Each file has a SHA-256 digest in the manifest, and the archive's digests were recomputed by an archivist at Calder before publication. The readme also explains how the synthetic-structure data relate to the trust's records and what they cannot show.

Lab — archive manifest

"""Build a SHA-256 manifest for a synthetic reproducibility archive (stdlib only)."""
import hashlib
files = {"data/endpoints.csv": b"id,ring,days,fail\n1,0,2,0\n2,1,5,0\n", "data/tickets.csv": b"id,label\n1,reboot\n",
         "code/analysis.py": b"print('analysis')\n", "README.md": b"# Archive\nSynthetic data only.\n"}
for p, c in sorted(files.items()):
    print(f"{hashlib.sha256(c).hexdigest()[:16]}  {len(c):3d} B  {p}")
print(f"files {len(files)}, total {sum(len(c) for c in files.values())} bytes")

Run with python3 lab_archive.py. Verified output:

670d6080fde1f32f   31 B  README.md
b24ac70c193a18a2   18 B  code/analysis.py
4acf0971a914c415   34 B  data/endpoints.csv
ea54f2468a7e6b17   18 B  data/tickets.csv
files 4, total 101 bytes

7.3 Reading the manifest

Four files totalling 101 bytes in this small synthetic example each have a SHA-256 digest. Anyone can recompute the digests to confirm files are unchanged. The small example demonstrates the method; the real archive applies the same check to every file. The line-ending mismatch the Calder archivist found shows why the check matters: a copy that looks identical can still differ in bytes, and only the digest reveals it. After the fix, Yusuf added a digest check to the copy process itself, so each future copy is verified before publication.

7.4 Data handling

Real ticket text never enters the archive; only the synthetic-structure dataset with the same distributions is published, approved by the trust. The synthetic-structure dataset reproduces the distributions of days to patch, failures and failure categories, so the analysis gives the same kind of results, but no row corresponds to a real device or ticket. The trust's information governance lead approved the release after comparing it with the original extract. That approval is cited in the readme. The redaction rules are archived with the synthetic release, so other NHS trusts could prepare comparable data the same way.

7.5 Licensing

Code and synthetic data are released under an open licence. An open licence lets other trusts and researchers rerun the analysis or apply the codebook to their own tickets without asking permission. Yusuf checked that no part of the archive contains material under restrictive terms, and the readme states the licence of each file. Calder's repository assigns the archive a persistent identifier, which the thesis and the paper both cite. The licence was chosen with Calder's repository office, which checked it against the trust's data agreement.

Chapter links

The synthesis links each claim to the chapter and evidence that supports it: the codebook and kappa to chapter 1, the gap to chapter 2, the design to chapter 3, the pipeline checks to chapter 4, the effects to chapter 5 and the revisions to chapter 6. This structure helps examiners verify the argument rather than accept it.

Verification instructions

The archive readme explains how to recompute the digests, run the analysis on the synthetic data and compare outputs with the thesis tables. A colleague unfamiliar with the work follows these steps and reproduces every table in under an hour.

Long-term storage

The archive is deposited in Calder's institutional repository with a persistent identifier.

Access

Anyone can download the archive without registration.

Worked example

An archivist at Calder recomputes the digests and finds one mismatch caused by a line-ending change during copying. Yusuf fixes the copy process and re-publishes.

Synthetic case. Synthetic.

Errors and limits

Archives fail silently when files change; digests make change visible.

Exercises

Synthesis

A verifiable archive makes findings checkable by others.

Continue studying — chapter 07 of 08

← Chapter 06 (draft) · Course chapter index · Chapter 08 (draft) →