10. Ситуация: на телефоне закончились деньги. Задача: пополнить счёт сотового телефона. Предусловия: Пользователь — перед Терминалом.
11. [1] Пользователь сообщает Терминалу, что хочет пополнить счёт. [2] Терминал запрашивает у Пользователя номер телефона. [3] Пользователь сообщает Терминалу номер телефона. [4] Терминал удостоверяется, что номер телефона введён корректно и пополнение возможно. [5] Терминал запрашивает у пользователя банкноты для пополнения счёта. [6] Пользователь передаёт Терминалу банкноты. [7] Терминал удостоверяется, что принятые банкноты можно использовать, и пополняет счёт. [8] Терминал сообщает Пользователю об успехе пополнения и предлагает повторить операцию. [9] Пользователь сообщает Терминалу своё решение: повторить операцию (возврат на шаг [5]) или закончить работу. Осторожно, тьма ошибок!
17. [1] Пользователь сообщает Терминалу, что хочет пополнить счёт. [2] Терминал удостоверяется, что пополнение возможно, и запрашивает у Пользователя номер телефона и, если нужно, сотового оператора. [3] Пользователь сообщает Терминалу запрошенные данные. [4] Терминал удостоверяется, что данные введены корректно. [5] Терминал запрашивает у пользователя банкноту для пополнения счёта. [6] Пользователь передаёт Терминалу банкноту. [7] Терминал удостоверяется, что принятую банкноту можно использовать, и сообщает Пользователю размер внесённой в Терминал суммы. [8] Терминал предлагает пользователю выбор: продолжить вносить деньги в Терминал или пополнить счёт. [9] Пользователь делает выбор и либо продолжает вносить деньги в терминал (возврат на шаг [5]) , либо распоряжается пополнить счёт (переход на шаг [10]) . [10] Терминал пополняет счёт телефона Пользователя, выдаёт чек и сообщает Пользователю об успехе операции. Так-то лучше?
21. [2] Терминал удостоверяется {*} , что пополнение возможно, и запрашивает { Form , пустая форма} у Пользователя номер телефона и, если нужно, сотового оператора. [3] Пользователь сообщает { Form , ввод данных} Терминалу запрошенные данные. [4] Терминал удостоверяется { Form , проверка данных} , что данные введены корректно. Каждое действие участников пьесы должно быть поддержано интерфейсом. Иногда отсутствующим :)
22. Ставим ссылку на прототип после каждого глагола. Каждого! [2] Терминал удостоверяется {*} , что пополнение возможно, и запрашивает { Form , пустая форма} у Пользователя номер телефона и, если нужно, сотового оператора. [3] Пользователь сообщает { Form , ввод данных} Терминалу запрошенные данные. [4] Терминал удостоверяется { Form , проверка данных} , что данные введены корректно.