Форум Сообщества Аналитиков

Общий раздел => Примеры => Тема начата: Mishko от 12 Октября 2014, 11:10:56

Название: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Mishko от 12 Октября 2014, 11:10:56
Уважаемые корифеи, покритикуйте пожалуйста диаграмму. Спасибо.
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Григорий Печенкин от 12 Октября 2014, 20:32:14
Во-первых, в реальности процесс выглядит совсем не так.

Банкоматы всегда проверяют ПИН в режиме онлайн (то есть отсылают его на хост, а не спрашивают у карты, верный ли он). Участник "карта" при этом вообще выпадает из сценария.

Банкомат не обращается к хосту несколько раз для проверки суммы и "блокировок", это делается одним запросом. А хост уже сообщает результат всех необходимых проверок в коде ответа (этих кодов там несколько десятков). Но зачем вообще описывать эти детали, которые зависят от конкретного протокола взаимодействия банкомата с хостом? Возможно, вам дали какой-то учебный сценарий, описанный текстом? Тогда нужно приложить и его, чтобы было с чем сравнивать.


Во-вторых, что понимается под возвратом "меню"? Что в меню входит и почему оно является возвратом на сообщение "ввести пин"?
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Mishko от 13 Октября 2014, 09:49:51
Это задание, предлагаемое на собеседовании, которое звучит так - "Изобразите диаграмму последовательности процесса снятия наличных в банкомате" (без сценария).

Под "меню" имеются в виду опции меню, которые появляются на экране банкомата после ввода пин-кода.
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Леонид от 13 Октября 2014, 11:28:33
В дополнение.

1. Я бы разделил активности (столбики) по отдельным операциям. Например, первая же операция у клиента (вводи пина) должна закончится передачей пина. А у банкомата, соответственно, начаться. И закончится передачей доступных опций (примечание: а доступные опции таки зависят от того, чью карту в него засунули). Вторая активность клиента начнется получением "меню", и завершится отправкой введенной суммы.
А у банкомата вообще все - одна сплошная активность. Это непорядок.

2. По-моему, клиент забыл:
а) сунуть карту;
б) забрать наличные.
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: SALar от 13 Октября 2014, 13:03:03
Григорий, может я чего не помню, но мне казалось, что работа с пином зависит от карты. Если карта чиповая, то пин проверяет карта.

Банкомат лучше разбить на две системы: пин клавиатуру и прочее.
Между банкоматом и процессингом банка еще что-то должно быть. Ну банкомат то необязательно этого же банка.
HSM еще добавьте.

Но начать лучше с того, как пользователь взаимодействует с банкоматом. Подойдите к реальному банкомату и последовательно запишите сценарий. Включая вставку карты и забор чека.
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Григорий Печенкин от 13 Октября 2014, 13:24:38
Это задание, предлагаемое на собеседовании, которое звучит так - "Изобразите диаграмму последовательности процесса снятия наличных в банкомате" (без сценария).

Тогда лучше не фантазировать о том, что происходит в невидимой системе, а описать видимый сценарий взаимодействия пользователя с банкоматом. Банк можно оставить для единственной операции "авторизация" (или "проверка запроса"), чтобы показать, что банкомат не принимает решения о выдаче наличных, а пересылает его в банк.

Под "меню" имеются в виду опции меню, которые появляются на экране банкомата после ввода пин-кода.

Я бы сказал, что в этом сценарии банкомат управляет действиями пользователя, а не наоборот. То есть не меню является ответом на запрос, а ввод ПИН, ввод суммы (а ещё выбор операции в самом начале) - это ответы пользователя на запросы банкомата.

А ещё надо не забыть вставить карту (и вынуть её).
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Григорий Печенкин от 13 Октября 2014, 13:40:58
Григорий, может я чего не помню, но мне казалось, что работа с пином зависит от карты. Если карта чиповая, то пин проверяет карта.

Выдача наличных по картам EMV всегда выполняется с онлайн проверкой ПИНа. Я точно не знаю, чьё это требование - скорее всего, платёжных систем.
Есть ещё карты типа электронного кошелька (были такие Сберкарта и Золотая Корона - возможно, и где-то и сейчас ещё живы). В этих системах ПИН проверяет карта. Но в этом случае нет авторизации в банке.

Вообще, в EMV есть несколько способов верификации держателя карты, включающие: онлайн ПИН (проверяется хостом), оффлайн ПИН (проверяется картой), подпись на чеке (проверяется кассиром), без проверки (да, формально это тоже метод верификации, со своим идентификатором).

В зависимости от вида операции и суммы, могут выбираться разные методы, а также их комбинации (теоретически можно заставить пользователя два раза ввести ПИН и ещё расписаться на чеке, хотя в реальной жизни это вряд ли имеет смысл). При этом учитываются и правила, записанные на карте, и возможности терминала.

Для операции "выдача наличных" всегда прописывается правило "онлайн пин". Я за всё время работы с картами EMV ни разу не видел исключений.
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: SALar от 13 Октября 2014, 14:58:49
Не, не, не. Я имею ввиду сценарий:
...
* Пин клавиатура передает ПИН карте
* Какрта валидирует ПИН
...
* Банкомат передает финансовую операцию с присланным HSM-ом случайным числом карте на подпись
* Карта подписывает дайджест операции при помощи ключа, счетчика и случайного числа
* Карта отправляет сообщение с подписью
...
* HSM валидирует подпись

онлайн валидация естественно есть, но только по сети посылается не ПИН и не шифрованный ПИН и не хешированный ПИН. По сети посылается подпись от уникальной комбинации (счетчик защищает от реплай атак). А ПИН проверяет карта. И это правильно, т.к. секьюрно.


> Вообще, в EMV есть несколько способов верификации держателя карты, включающие: онлайн ПИН (проверяется хостом), оффлайн ПИН (проверяется картой), подпись на чеке (проверяется кассиром), без проверки (да, формально это тоже метод верификации, со своим идентификатором

Угу. И еще примерно с десяток способов... Из экзотики - проверка отпечатка пальца, проводимая картой...


Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Григорий Печенкин от 13 Октября 2014, 15:21:20
Не, не, не. Я имею ввиду сценарий:
...
* Пин клавиатура передает ПИН карте
* Какрта валидирует ПИН

онлайн валидация естественно есть, но только по сети посылается не ПИН и не шифрованный ПИН и не хешированный ПИН. По сети посылается подпись от уникальной комбинации (счетчик защищает от реплай атак). А ПИН проверяет карта. И это правильно, т.к. секьюрно.


Нет, в случае с онлайн верификацией ПИН-блок полностью формируется ПИН-клавиатурой. Карта в этом процессе вообще не участвует.
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Mishko от 21 Октября 2014, 07:59:06
Спасибо всем за комментарии.
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Mishko от 21 Октября 2014, 09:07:00
Я бы сказал, что в этом сценарии банкомат управляет действиями пользователя, а не наоборот. То есть не меню является ответом на запрос, а ввод ПИН, ввод суммы (а ещё выбор операции в самом начале) - это ответы пользователя на запросы банкомата.

Григорий, не могли Вы подробнее пояснить, почему Вы так считаете....не очень понятно :-\
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Mishko от 21 Октября 2014, 09:10:52
Цитировать
Я бы сказал, что в этом сценарии банкомат управляет действиями пользователя, а не наоборот. То есть не меню является ответом на запрос, а ввод ПИН, ввод суммы (а ещё выбор операции в самом начале) - это ответы пользователя на запросы банкомата.

Григорий, не могли Вы подробнее пояснить, почему Вы так считаете....не очень понятно
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Mishko от 21 Октября 2014, 09:30:22
Тогда с учетом общей критики наверное так :-\
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Galogen от 21 Октября 2014, 17:41:10
Тогда с учетом общей критики наверное так :-\
Не плохо!
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: [прилетело НЛО и...] от 28 Марта 2020, 02:22:33
Тогда с учетом общей критики наверное так :-\
Некро-коммент: дефект диаграммы в том, что клиент всегда получает налик и ему всегда возвращают карту. В жизни это не так. Некоторую странность  диаграммы можно усмотреть в том, что заканчивается она двумя возвратами на один и тот же call. Разумно было бы либо делать один возврат, либо вообще не моделировать взаимодействие с экземпляром действующего лица сообщениями типа call и reply. И финальная рекомендация. Ради Марса, не рисуйте экзекьюшн спецификации на диаграммах последовательности. Их отсутствие почти всегда ни на что не влияет, а присутствие, как правило, провоцирует нарушения стандарта.
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Galogen от 05 Апреля 2020, 18:04:09
Некро-коммент: дефект диаграммы в том, что клиент всегда получает налик и ему всегда возвращают карту. В жизни это не так. Некоторую странность  диаграммы можно усмотреть в том, что заканчивается она двумя возвратами на один и тот же call. Разумно было бы либо делать один возврат, либо вообще не моделировать взаимодействие с экземпляром действующего лица сообщениями типа call и reply. И финальная рекомендация. Ради Марса, не рисуйте экзекьюшн спецификации на диаграммах последовательности. Их отсутствие почти всегда ни на что не влияет, а присутствие, как правило, провоцирует нарушения стандарта.
а что такое экзекьюшн спецификации?
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Galogen от 05 Апреля 2020, 18:07:26
Некро-коммент: дефект диаграммы в том, что клиент всегда получает налик и ему всегда возвращают карту. В жизни это не так.

а если это просто успешный сценарий, частная диаграмма последовательности.
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: [прилетело НЛО и...] от 10 Апреля 2020, 00:51:38
Тогда переименовываем тему в "диаграмма последовательности процесса успешного снятия денег в банкомате".
Экзэкьюшн-спек (https://www.uml-diagrams.org/sequence-diagrams.html#execution) на uml-diagrams.org
Название: Re: диаграмма последовательности процесса снятия денег в банкомате
Отправлено: Galogen от 10 Апреля 2020, 16:53:52
Тогда переименовываем тему в "диаграмма последовательности процесса успешного снятия денег в банкомате".
Ну это к автору :)

Экзэкьюшн-спек (https://www.uml-diagrams.org/sequence-diagrams.html#execution) на uml-diagrams.org
Как изменчив мир!