Просьба не отождествлять функции системы и варианты использования, это разные вещи, с несколько разным назначением. Функции системы, это взгляд с точки зрения системы "на мир ее окружающий" :-), т.е. это в т.ч. то, что система экспонирует наружу. Юзкейс - это именованная цель пользователя по отношению к системе (бизнес- или технической). При этом функции легко декомпозируемы, юзкейсы - только в пределах отношений между уровнями описаний (т.е. не декомпозируемы). Очевидно, в процессе выполнения сценариев юзкейса будут использованы те или иные функции. Более того, на основании юзкейсов могут быть определены сами функции системы (подход сверху-вниз). Как в прочем и по набору функций можно придумать юзкейсы, но нужно иметь определенную фантазию :-) (подход снизу-вверх).
Так же очевидно, что для проектирования системы одних юзкейсов не достаточно, если под проектированием мы понимаем, как минимум blueprint.
По-прежнему продолжаете считать мой ответ, ответом Шерлока Холмса?
Ну, хорошо! Как хочешь.
Ты считаешь, что функции и UC разные вещи?
Мне непонятно, как с помощью функций система смотрит на мир и что сиситема экспонирует наружу (в ООП), кроме своих интерфейсов, которые, на начальной стадии разработки определяются именно UC!
Но то, что UC - это именованная цель пользователя по отношению к системе, на мой взгляд, не соответствует пониманию "отцов-основателей".
1. Можно говорить об отношении пользователя к
использованию системы, но это еще не все.
2. Есть рекомендации именовать UC в терминах названия цели пользователя. Но даже эллипс с названием - это еще не цель. UC - это
описание последовательности взаимодействий пользователя с системой
для достижения цели. И в этом смысле UC ведет себя в точности как описание внешнего поведения функции.
3. Функция и UC, конечно, разное.
- Функция в ПО - это некоторый выделенный фрагмент, который
можно выполнить. Где-то в документации есть описание (назначение, указания на предусловия, правила запуска, результат и т.п.).
- UC
выполнить невозможно по определению: это описание (у Коберна - соглашение ...). Его сначала нужно реализовать: проанализировать, спроектировать, закодировать, интегрировать в систему. И с этой (я позволю себе дать условное название) реализацией UC поступают точно так же, как с функцией
4.
Если отождествлять описание и реализацию (это разное, но допустим в этом контексте), то функция - это понятие более широкое, чем UC: любой UC - это функция, но не любая функция - это UC.
5. ООП предполагает, что все
функциональные требования к системе выражаются с использованием UC. О каких других функциях системы ты говоришь? И как они выражаются, определяются?