Trustable Software Framework (TSF)
The Trustable Software Framework (TSF) approach is designed for consideration of software where factors such as safety, security, performance, availability and reliability are considered critical. Broadly we assert that any consideration of trust must be based on evidence.
See the accompanying documentation for an explanation of:
- the context and rationale for this approach
- its underlying model and methodology
- guidance on its implementation.
Info
You can also view this site as a single page.
This overview uses a generic "XYZ" software project/product as an example. For XYZ specifically, we need to collect and evaluate evidence for all of the following:
- Provenance: where it comes from, who produced it, and what claims they make about it
- Construction: how to construct, install and run it. Also, how to be sure that we constructed, installed and ran it correctly
- Change: how to update it, and be confident that it will not break or regress
- Expectations: what it is expected to do, and what it must not do
- Results: what it actually does, compared to our expectations
- Confidence: our confidence in the software, based on all of the above
Software and systems complexity has increased to the extent that in most cases we cannot aspire to bug-free software, deterministic behaviours, or complete test coverage.
In practice XYZ must be released into production regularly, to introduce planned updates and improvements, and irregularly to address severe problems and security vulnerabilities. Every release can and should be considered to involve risk. The Trustable Software framework aims to provide guidance for measuring, managing and minimising the risk associated with a software product/project, both in general and for each release.
Trustable Tenets and Assertions
Our working model for a given release of XYZ is as follows. You can click on the boxes in the diagram or browse the specification to see the detailed definitions:
Goal
Our goal is to provide a structured argument for trustability of a given release of XYZ, by gathering and presenting evidence across a range of factors (Trustable Tenets and Trustable Assertions) based on a TSF specification of the software project.
We aim to calculate (or at least estimate) a confidence score for each Tenet and each Assertion based on the available evidence, and then distil these scores into an overall Trustable Score for the release.
Note this approach is intended to be used alongside, or after, the de-facto development process for XYZ.