Skip to content
Platform

Know what the estate is, and where it divides.

A modernisation programme depends on one question: do you actually know what the estate is? Most programmes answer it with workshops and spreadsheets. Cobra answers it with a machine-checked description, read from the code, that your architects can open in the tools they already use. A whole estate of nearly 4,000 programs exports and validates in about a minute.

The description

One fact graph, checked by machine.

One description of the whole estate

COBOL, PL/I and assembler merge into one queryable fact graph. The description is a build output you re-run and compare, not a consulting document that drifts.

Every fact carries its evidence

Each element is marked as read from source, derived from a stated assumption, or not determinable. Where the analysis cannot see, it says so and does not guess.

Gates that can fail

Nine conformance gates check every export. Each gate ships with a deliberately broken export that must fail it, so a passing build means something.

Your tools, not ours

The same facts, in five open standards.

Each export is validated against its own schema at estate scale, not on a test fixture.

Export

Structurizr / C4

Architecture diagrams
Export

ArchiMate 3

Your enterprise-architecture repository
Export

BPMN 2.0

The batch day, as a process
Export

DMN 1.4

Mined decision tables
Export

SCIP

Code navigation in the editor
The decomposition question

The code divides. The data does not.

Most estates are decomposed by grouping the batch jobs that share a dataset. A system that runs one nightly job in stages returns one group holding everything. Cobra follows every call from every transaction program instead, and records the record types each one reads and writes.

Where an estate divides
Where an estate divides: the code divides, the data does notThree panels. First, programs group cleanly into capabilities. Second, the same capabilities against record types: some records are written by more than one capability. Third, one slice lifted out: the records it owns move with it, and the shared records are kept in step by replication.1. The code dividesBillingits own programsClaimsits own programsPolicyits own programs2. The data does notBillingClaimsPolicyR1R2R3R4R5R6shared recordRecords written by more than onecapability cannot simply move with one.3. A slice takes what it ownsBilling slice, on CobraR1R2R3owned: movedshared: a copyreplicationClaims and Policy, stayingR3R4R5R6The code divides. The data does not, so the data is sliced where it can be and replicated where it cannot.
Read this diagram as text
  1. The code divides. Programs group cleanly into business capabilities such as billing, claims and policy.
  2. The data does not. Some record types are written by more than one capability. On one measured estate, 123 of 198 record types are written by two capabilities or more.
  3. So the data is sliced where it can be, and replicated where it cannot. A slice takes the records it owns. Records it shares with capabilities that stay behind are kept in step by data replication tooling.
The workbench

From a map to a unit of work.

Three tools turn the description into something a delivery team can act on.

Census

Classifies every program in the estate, so the plan starts from a complete count and not a sample.

Coupling prover

Says which serial batch loops are safe to run in parallel. It errs on the side of caution: where it cannot prove a loop safe, it refuses.

Seam carver

Extracts a proven unit behind a generated contract, with a map back to the original lines. The carved units are COBOL, compiled by the Rocket COBOL compiler, and each is run twice and compared byte for byte.

See your estate

Ask where your system divides.

Bring the source for one system. We will export the description, open it in the tools your architects use, and show you what each division would have to cut.