Example models

A motor insurer

Where the simple bank is for reading, this model is for running. Its five use cases create the model’s three entities (clients, policies, each naming its drivers, and claims), which an execution environment keeps, checking every pre- and post-condition against them as it runs. Process claim is the one to read closely: it waits for the client’s documents against a deadline, screens and prices the claim, and then declines it or has it assessed, paid and the vehicle repaired.

Who answers each lower-level service is a matter of configuration, and hence the same model runs with people, stubs, compiled services or external systems behind them. It ships without a defect, so it can be taken to execution as it is. If one removes one invariant of its requests, a test run finds the defect which lets a claim pay past its cover.

Scope View

Entity Views

Data Structure Views

URDAD Data Structure View of PolicyRecord.
Data Structure View: PolicyRecordFull size: Data Structure View: PolicyRecord
URDAD Data Structure View of ClaimRecord.
Data Structure View: ClaimRecordFull size: Data Structure View: ClaimRecord

Functional Requirements Views

URDAD Functional Requirements View of Onboard client, showing Client; Identity not yet registered; Login not yet registered; Insurer; Client onboarded.
Functional Requirements View: Onboard clientFull size: Functional Requirements View: Onboard client
URDAD Functional Requirements View of Purchase motor insurance, showing Client; Applicant is a client; Vehicle not already insured; Cover does not start in the past; Value is positive; Insurer; Underwriting; Policy issued to the client; Terms reported.
Functional Requirements View: Purchase motor insuranceFull size: Functional Requirements View: Purchase motor insurance
URDAD Functional Requirements View of Process claim, showing Client; Requested by the policy owner; Policy in force at the incident; Incident has happened; Reported in time; Insurer; Claim recorded against the policy; Outcome recorded; Settled or declined; Payout within cover; Payout not negative.
Functional Requirements View: Process claimFull size: Functional Requirements View: Process claim
URDAD Functional Requirements View of Provide claims report, showing Client; Requested by the policy owner; Policy exists; Period is valid; Insurer; Every claim in the period; Only claims in the period.
Functional Requirements View: Provide claims reportFull size: Functional Requirements View: Provide claims report
URDAD Functional Requirements View of Assess and settle claim, showing Excess not negative; Sum insured not negative; Claim exists; Claims; Client; Insurer; Process claim; Claim settled; Payout within cover; Payout not negative.
Functional Requirements View: Assess and settle claimFull size: Functional Requirements View: Assess and settle claim

Responsibility Allocation View

URDAD Responsibility Allocation View of Process claim, showing Policy in force at the incident; Requested by the policy owner; Incident has happened; Reported in time; Check: Policy in force at the incident; Record claim; Check: Requested by the policy owner; Check: Incident has happened; Refer to an investigator?; Check: Reported in time; Claim recorded against the policy; Outcome recorded; Payout within cover.
Responsibility Allocation View: Process claimFull size: Responsibility Allocation View: Process claim

Process Views

URDAD Process View of Process claim, showing Start; Check: Policy in force at the incident; Check: Requested by the policy owner; Check: Incident has happened; Check: Reported in time; Record claim; Resp: Report the claim number; on; merge; Update claim; Screen claim; ∀ item ∈ request.damagedItems → repairTotal — while repairTotal <= recorded.vehicleValue; Price damaged item; Def: writtenOff = repairTotal > recorded.vehicleValue; if; Assess and settle claim; Resp: Report the settlement; Resp: Report the decline; Investigate claim; End.
Process View: Process claimFull size: Process View: Process claim
URDAD Process View of Assess and settle claim, showing Start; Check: Claim exists; Until the assessment is complete, max 5 — while not complete; Assess claim; if; merge; Provide further information; Compute payout; Update claim; Pay claim; Offer repair; Repair vehicle; Resp: Report the payout; End.
Process View: Assess and settle claimFull size: Process View: Assess and settle claim
URDAD Process View of Pay claim, showing Start; if; merge; Make payment; Resp: Report the payment; Authorise payment; Resp: Report the authorised payment; End.
Process View: Pay claimFull size: Process View: Pay claim
URDAD Process View of Purchase motor insurance, showing Start; Check: Applicant is a client; Check: Vehicle not already insured; Check: Cover does not start in the past; findClientByLogin; Quote premium; Issue policy; Resp: Report the policy; End.
Process View: Purchase motor insuranceFull size: Process View: Purchase motor insurance
URDAD Process View of Provide claims report, showing Start; Check: Policy exists; Check: Requested by the policy owner; Find claims; Resp: Report the claims; End.
Process View: Provide claims reportFull size: Process View: Provide claims report

Dependencies View

URDAD Dependencies View of Claims, showing Assessment; Assess claim; Price damaged item; Provide further information; Fraud Investigation; Investigate claim; Screen claim; Payments; Compute payout; Pay claim; Repair Network; Offer repair; Repair vehicle.
Dependencies View: ClaimsFull size: Dependencies View: Claims

Process View, requests expanded

URDAD Process View, requests expanded of Process claim, showing Start; Check: Policy in force at the incident; Check: Requested by the policy owner; Check: Incident has happened; Check: Reported in time; Record claim; Resp: Report the claim number; on; merge; Update claim; Screen claim; ∀ item ∈ request.damagedItems → repairTotal — while repairTotal <= recorded.vehicleValue; Price damaged item; Def: writtenOff = repairTotal > recorded.vehicleValue; if; Assess and settle claim — Assess and settle claim; Check: Claim exists; Until the assessment is complete, max 5 — while not complete; Assess claim; Provide further information; Compute payout; Pay claim; Offer repair; Repair vehicle; Resp: Report the payout; End; Resp: Report the settlement; Resp: Report the decline; Investigate claim.
Process View, requests expanded: Process claimFull size: Process View, requests expanded: Process claim