Необходимо изменить несколько вещей:
Login
- это не вариант использования (нет добавленной стоимости; читайте Биттнер / Спенс).Скорее это ограничение и должно быть связано с UC с помощью { login required }
. Withdrawal
, Deposit
, ... необходимо назвать предикатом, субъектом;например, Withdraw money
. - Наконец,
Transaction
(должно быть Perform transaction
), вероятно, должно быть основным UC, связанным с актером.Хотя я не знаю точных требований.
Я обычно стараюсь избегать include / extension, поскольку это попытка выполнить функциональную декомпозицию.Скорее я остаюсь с единственными, уникальными добавленными значениями, представленными одним пузырем.Это делает акцент на добавленной стоимости (что важно для UC), а не на функциях (которые должны рассматриваться на уровне класса позже на этапе проектирования).С точки зрения пользователя, это не транзакция, которая может быть как вводом / выводом, так и последней, но последние являются «главными важными вещами».