Paint — незаменимое средство разработки

Paint — хорошая программа для программиста. Есть задачки которые очень сложно взять без визуализации. А уж если нужно обсуждать и собирать требования, передавать задачу другому разработчику, а разработка длится несколько недель…

На картиночке попытка выделить переменные, их влияние друга на друга, их изменения во времени, результирующие состояние системы. У меня нет ожиданий что она читаема без контекста. Картинка служит визуальной поддержке текста.

При одном начальном состоянии системы получилось несколько возможных промежуточных и несколько конечных состояний. Прояснилось что в некоторых случаях требуется порождение событий, т.к. на основании лишь значений переменных невозможно сделать необходимые действия для изменения состояния системы.