Я хочу высказаться в пользу ДВИ в противоречии со занятой в данной теме позиции.
Итак, наш студент Batak, предложил для нашей рецензии свою диаграмму ВИ. Она плоха, ошибочная и неполна. Но...
Предположим этот студент попытался передать тоже, но чистым текстом в виде скажем иерархического списка, в котором верхний узел роль пользователя, подчиненные узлы - то что, он считал вариантами использования.
С чем бы он столкнулся:
1. повторением одних и тех же ВИ у разных ролей пользователей
2. сложно было бы передать обобщение одиних пользователей другими. Вернее не так сложно, как мало наглядно
3. скорее всего мы бы все равно заставили его что-то нам нарисовать.
4. скорее всего мы бы хуже поняли ход мысли студентам в тексте, чем в диаграмме
Теперь о возможных плюсах диаграммы над текстом (я уже ранее пытался высказать эту мысль в другом месте)
1. диаграмма - это образ, человеку проще воспринимать образы, чем просто текст. Все равно текст преобразуется в образы в голове.
2. диаграмма ВИ в данном случае имеет определенные ограничения в изображении и это заставляет ограничивать свою фантазию в изображении и передавать смысл более простыми средствами.
Далее может вы заметили, что между диаграммами DFD и диаграммами ВИ есть определенное сходство:
1. там и там есть понятие внешней сущности
2. там и там есть сущность, инициирующая процесс, и сущность вспомогательная - поставщик данных
3. в DFD нельзя изобразить обощение одних внешних сущностей через другие, на ДВИ можно
4. как на ДВИ, так и на диаграмме DFD не следует изображать внешние сущности, не взаимодействующие непосредственно с системой
5. контекстная диаграмма DFD почти тоже что и диаграмма ДВИ, если разрешить изображать на DFD внутренние процессы или подсистемы
6. Обе диаграммы ориентированы на отображение взаимодействия внешних сущностей с системой
7. ДВИ специфицируется через описания ВИ, DFD через миниспецификации процессов. Хотя в последнем случае упор на функциональное деление.
Кстати Скотт Амблер в книге Гибкое моделирование тоже об этом говорит. Однако мне кажется, ДВИ выразительнее диаграммы DFD.
Какие трудности я вижу при создании ДВИ, что потом влечет за собой и трудности в описании ВИ.
1. Понятие цели пользователя - что же считать целью пользователя, можно ли использовать текстовый шаблон, какой он будет, какие критерии позволяют сказать - это цель, а вот это не цель. Что же понимают англичание под словом цель: purpose, aim, objective, target, goal, intent, intention...
возможные ответы:
- то, что может считаться элементарным бизнес-процессом, определенной обязанностью сотрудника
- то, что одобряется руководством как исполнения полезной работы
- нечто краткое, сеансовое, законченное - транзакция
2. Наименование варианта использования - с какой стороны стоять при именовании ВИ (это к тому регистрация покупки или регистрация продажи). Если имя ВИ - цель, должное ли оно отржать SMARTER конфигурацию, обязательно выраждаться в ответ ДА-НЕТ.
3. структурирование диаграммы -не понимание связей обобщение, зависимостей include и extend. Не следует ли на этапе анализа заменить их, следуя, Розенбергу на invoke и precede. Первое как либо include или extend (конкретная реализации смысла будет потом на стадии проектирования), а второе без аналогов, просто демонстрирует некое предшествование, то что должно быть выполнено в начале, но имеет и самостоятельно значение? А то и вовсе запретить структурирование ВИ, разрешив только структурирование акторов, как наиболее понятное и очевидное?
4. выделение акторов