High Availability
(5 9’s)
Low Latency
(in µ/m seconds)
High throughput
(1000’s per second)
Super Correct
(trillions, 0.XXXXXX, complex)
Long product life
(10’s of years)
Slide 3
Slide 3 text
“Functional Correctness
@ High Throughput
having Low Latency
running for Decades with
High Availability”
Slide 4
Slide 4 text
“Anything that can go wrong, will go wrong”
Impossible to cover
all possible fault
Permutations
Slide 5
Slide 5 text
Build
Robust Software
from ground up!
Slide 6
Slide 6 text
Framework
(Structure)
Review
(Improve)
Guidelines
(Patterns)
Process
Spec
Design
Develop
Test
Slide 7
Slide 7 text
Each line of code
Design, Code, Test Reviewed
Tight feedback loops
continuous integration
fully automated testing
Slide 8
Slide 8 text
Unit
Component
End to End
The closer the test to the
code, the more useful
Slide 9
Slide 9 text
Behaviour Driven Development
Validating the Requirement
Executable Acceptance Criteria for User Stories with a
DSL modeled using the conceptual system model
- Readable/Reusable
Scenario: Submit trade for a valid instrument with set mandatory fields
Given a registered user “CCP Admin” is available
And an instrument “ABC100” is available
And a trade is created with mandatory-trade-fields set to “mandatory-trade-values-A”
And the trade is updated with instrument-id “ABC100”
When the user submits the trade
Then the processed trade is acknowledged as accepted
And the processed trade has it’s fields user-set-fields available
Slide 10
Slide 10 text
Fault Modeling
Framework to discover & address potential faults
@ Requirement
@ Design
@ Development
Tiered containment
Slide 11
Slide 11 text
Active Monitoring
Synthetic usage probes
Slide 12
Slide 12 text
Cross Company
– Annual Millennium Excellence Audit
Team
– Monthly Engineering Review