SOFTWARE & DEVOPSSHIPPED

Launch Interceptor Decision System (DECIDE)

A Java implementation of the classic DECIDE specification — 15 geometric Launch Interceptor Conditions evaluated against 2D radar tracks, built by a 5-person team under strict CI and review discipline.

ROLELIC implementations & repo/CI setup
TEAM5-person team, KTH DD2480
TIMELINEJan 2026 — Mar 2026
CATEGORYSoftware & DevOps

15

LAUNCH CONDITIONS (LICS)

LIC 0, 6, 11 + helpers

PERSONALLY IMPLEMENTED

2 reviewers + CI

REVIEW GATE

Overview

DECIDE is a famous specification from the software-engineering literature: a hypothetical anti-ballistic-missile system that must evaluate 15 geometric Launch Interceptor Conditions (LICs) against 2D radar tracking data and produce a launch / no-launch decision. The spec is deliberately precise and deliberately treacherous — it punishes teams that code before they read.

What I did

  • Implemented LIC 0, 6, and 11 plus shared geometric helper functions — point-to-line distances, circumradius checks, and the angle and area predicates several conditions share.
  • Initialized the repository and the CI/CD pipeline with GitHub Actions, building and running the unit test suite on every push and pull request from day one.
  • Helped enforce the team's two-stage branch protection workflow (feature → dev → main) with mandatory two-reviewer approval and green CI before any merge — main stayed stable for the entire project.
  • Drove the adoption of Conventional Commits (feat:, fix:, test:, docs:) and consistent naming conventions, keeping the commit history reviewable for a 5-person team moving fast.

What I learned

Geometry code fails silently: a wrong epsilon or a degenerate triangle doesn't crash, it just quietly returns the wrong boolean to a missile-launch decision. The only defence is the one the spec forces on you — exhaustive unit tests on every boundary condition, written from the spec rather than from the code.

APPENDIX A // MEDIA

IMAGE SLOT — AWAITING UPLOAD

FIG.01 — GEOMETRIC INTERPRETATION OF A LAUNCH INTERCEPTOR CONDITION