Software Modeling with TLA+ 3-Day Training
TLA+ workshop
Overview
Most software flaws come from one of two places. When the code doesn’t match our expectations, it could be that the code is wrong. Most software correctness techniques - types, tests, etc - are used to check the code. But it could instead be that the code is correct and our expectations are wrong: there’s a fundamental error in our model of the system. These bugs are the most difficult to find and the most expensive to fix. Our standard techniques cannot handle them.
The answer to this is software modeling, or "formal methods". By writing out the design in a software modeling tool, we can directly test the design for bugs without having to write any code first. Modeling software leads to simpler, safer systems built more quickly and cheaply.
One such modeling tool is TLA+. TLA+ is designed to model concurrent and distributed systems, and has been successfully to find bugs in everything from cloud services and message queues to video games and embedded operating systems.
In this class you will learn the basics of TLA+ from one of the foremost experts on teaching formal methods.
Structure
Class will be three days by Zoom. Instruction is a mix of lecture, group labs, and individual and group exercises. Attendees should expect a high degree of student participation. I teach workshops so that students learn.
Note that the class is not comprehensive. Some aspects of TLA+ will not be taught. In particular, the class uses the PlusCal DSL for writing TLA+ specs. This is a conscious choice to give students the strongest foundation possible.
Audience
Attendees should have some experience programming and some experience testing. While TLA+ is extremely powerful, it is best used by experienced programmers. Some knowledge of predicate logic, such as ∀ and ∃, is helpful but not necessary.
About the Instructor
Hillel Wayne is a formal methods educator and consultant. He is the author of Learn TLA+, Practical TLA+, and alloydocs. Some of his past clients are Facebook, Netflix, and Cockroach Labs. He is a certified EMT in Illinois.
TLA+ workshop
Overview
Most software flaws come from one of two places. When the code doesn’t match our expectations, it could be that the code is wrong. Most software correctness techniques - types, tests, etc - are used to check the code. But it could instead be that the code is correct and our expectations are wrong: there’s a fundamental error in our model of the system. These bugs are the most difficult to find and the most expensive to fix. Our standard techniques cannot handle them.
The answer to this is software modeling, or "formal methods". By writing out the design in a software modeling tool, we can directly test the design for bugs without having to write any code first. Modeling software leads to simpler, safer systems built more quickly and cheaply.
One such modeling tool is TLA+. TLA+ is designed to model concurrent and distributed systems, and has been successfully to find bugs in everything from cloud services and message queues to video games and embedded operating systems.
In this class you will learn the basics of TLA+ from one of the foremost experts on teaching formal methods.
Structure
Class will be three days by Zoom. Instruction is a mix of lecture, group labs, and individual and group exercises. Attendees should expect a high degree of student participation. I teach workshops so that students learn.
Note that the class is not comprehensive. Some aspects of TLA+ will not be taught. In particular, the class uses the PlusCal DSL for writing TLA+ specs. This is a conscious choice to give students the strongest foundation possible.
Audience
Attendees should have some experience programming and some experience testing. While TLA+ is extremely powerful, it is best used by experienced programmers. Some knowledge of predicate logic, such as ∀ and ∃, is helpful but not necessary.
About the Instructor
Hillel Wayne is a formal methods educator and consultant. He is the author of Learn TLA+, Practical TLA+, and alloydocs. Some of his past clients are Facebook, Netflix, and Cockroach Labs. He is a certified EMT in Illinois.