Background Information

Read an article “How Amazon uses formal methods”

post summarizes experiences Amazon has gained, when using TLA+ specification tools, and discusses, what is needed to start using formal methods in business IT development context

Emerging API Ecosystems

blog entry argues that managing on-line openness has become more important for businesses with the emergence of API ecosystems, and, in the future, it will be even more important as blockchain technologies mature. To help in managing on-line openness this post suggests modeling API ecosystem.

It is the first of two blog entries updating roadmap v1 in sbuilder vision.

A Tool To Generate Runnable Specification Models in TLA+ language

post introduces Sbuilder (aka Specification Builder) -tool. Sbuilder generates runnable specification models in TLA+ language for business IT system. Specification model can be verified using TLA+Tools, and parts of it can be presented as implementation blueprints to developers.

Announcing Support for Ethereum

post announces sbuilder-ethereum, a tla-sbuilder plugin, to translate Ethereum implementations in Solidity language into in TLA+ language formal models to be model checked using TLA+ Tools.


Helsinki Ethereum Meetup 11th Nov 2017

post links to slides for a presentation held on the 8th Nov 2017 in Ethererum Meetup Helsinki.

Helsinki Ethereum Meetup 8th March 2017

post contains slides for a presentation on Sbuilder model checking performance, held on the 8th March 2017 in Ethererum Meetup Helsinki.

Helsinki Ethereum Meetup 14th Dec 2016

post contains slides for a presentation held on the 14th Dec 2016 in Ethererum Meetup Helsinki.


Sbuilder Roadmap v1

post argues that instead of deploying Sbuilder to support an upfront design step, it should be embedded into a framework. The post entry describes enhancements required in the current 0.2.3 version, and identifies a need for a proof of concept to better understand the feasibility of the proposal.

Sbuilder Roadmap v2

post gives a short introduction to sbuilder -tool, and proposes changes (roadmap v2) in the tool for better support to reason on correctness of API ecosystem implementations.

It is the second of two blog entries updating roadmap v1 in sbuilder vision.

User’s Guide

Using Sbuilder to Model a Salesforce Application

post explains, how to build a runnable specification model for a Salesforce application in sbuilder-demo GIT repository using tla-sbuilder -tool. The example uses Salesforce API plugin to extract interface specification from Salesforce API metadata.

Tla-sbuilder Salesforce API plugin User’s Guide

post demonstrates how to use Salesforce API plugin for tla-sbuilder -tool to access Salesforce API metadata to model an interfaces in a example application.

Using Sbuilder to Model Business IT Systems

post uses an example to demonstrate, how business IT system modeling can be supported using Sbuilder -tool. The example mimics a simple Pet Store application with two services. One of the services is used to manage pets, and the other one to manage tags.

Check Correctness of Ethereum Contracts for Re-Entract Attack

post presents an example using Ethereum Solidity language withdrawal pattern to demonstrate, how tla-sbuilder with sbuilder-ethererum plugin can be used to check for implementation correctness.

Developer’s Guide

Benchmarking Sbuilder

post examines TLA+tools model checker performance, as a number of states processed per second, when model checking formal models generated by Sbuilder. It finds the performance to be CPU bound, but scalable to match real world applications.

The blog entry demonstrates, how Setups in Sbuilder can be used to manage state space explosion, and associates setups with Use Case Slices to make the idea of managing state space size more comprehensible for developers. Ideally, a Use Case Slice, identified in development, is configured as an Sbuidler Setup and added into a repository for Regression Verification. The objective is to increase confidence in application correctness, and to make QA more efficient with faster feed back because a formal model

  • can be executed without the need to have it installed on real production environment, and
  • the model checker can effectively check all possible executions in the formal model.

Running Sbuilder Benchmarks

post documents, how Sbuilder Benchmarks were run.

Tla-sbuilder API loader Plugin Developers’s Guide

post gives an overview of Sbuilder framework, and information, how to create an API loader plugin, like Salesforce API loader, for tla-sbuilder -tool.