В данной работе, также как и в работе [1], с помощью SWITCH-технологии реализована модель кнопочного телефона и автоматической телефонной станции (АТС).
Отличия от работы [1] состоят в следующем:
введены дополнительные функции телефона способность принимать звонки, возможность донабора номера после поднятия трубки;
новый метод взаимодействия автоматов, реализующих телефон и АТС.
Этот метод назван «отложенный вызов автомата». Он, в отличие от подхода, изложенного в работе [2], позволяет:
избавиться от реентерабельности автоматных функций (повторного вызова каждой из них до завершения ее работы) на уровне реализации вызова;
осуществлять параллельную работу автоматов в разных потоках;
обрабатывать внешние события, приходящие из параллельных процессов, после их предварительного запоминания в очереди, сформированной для каждого автомата.
При этом нотация графов переходов, предложенная в работе [3] и использующаяся в работе [1], сохраняется.
Отложенный вызов автомата характеризуется следующими особенностями:
не разделяются внутренние и внешние события, как это сделано в работах [4, 5].
все события ставятся в соответствующую каждому автомату очередь и обрабатываются последовательно;
допускается вызов автоматом самого себя. При этом реентерабельность отсутствует автомат повторно не запускается до завершения своей работы.
Тестирование программы происходило с помощью автоматически получаемых логов, а также на основе анализа графов переходов автоматов. Тестирование на основе анализа графов переходов автоматов выполнялось, в том числе, и при помощи построенных по графам переходов диаграмм последовательности.
Отметим, что построение диаграмм последовательности по графам переходов отличает предлагаемый подход от классического UML-подхода, в котором эти два типа диаграмм обычно формально не связаны.