Предложенный способ создания диаграммы вариантов использования, где для некоторых вариантов использования требуется аутентификация?

Я и мои коллеги не совсем уверены в том, как смоделировать сценарий использования. Каждый из нас по 3 пришел к разному решению, вы можете видеть каждое изображение ниже, они представляют собой упрощенную версию того, с чем мы сталкиваемся. Мы только начинаем работать над серьезными проектами, и никто из нас не имеет большого опыта, поэтому мы хотим с самого начала узнать, что является наилучшей практикой в ​​этой ситуации.

У нас есть веб-приложение, в котором есть какая-то часть сайта, доступная каждому пользователю, в то время как другие части требуют входа в систему, но сейчас мы не совсем уверены, как правильно написать сценарий использования для этого. Моя идея была отделить user в guest user а также authenticated userТаким образом, наш вариант использования не будет запутан с кучей include relations(мы получили гораздо больше вариантов использования, чем представлено здесь).

Вот что я сделал:

На мой взгляд, это наиболее понятно и масштабируемо, поскольку четко разделяет два типа пользователей. Моя идея варианта использования

Другой возможный подход:

Это тоже хорошо, более понятно, чем в прошлом, когда у нас больше вариантов использования Другая идея варианта использования

И последний:

Это наиболее близко к спецификации UML, которую мы изучали в университете, но она начинает выглядеть очень грязно, когда мы добавляем больше вариантов использования, линии начинают пересекаться, и трудно понять, что к чему. Другая идея варианта использования

Наш вопрос заключается в том, как лучше всего написать диаграмму прецедентов в этой ситуации?

3 ответа

Решение

Не используйте ни один из ваших подходов! Login это не случай использования, поскольку он не добавляет никакой ценности. Используйте ограничение { needs to be logged on} для случаев использования, где требуется аутентификация.

Вы должны использовать первый подход с отдельными вариантами использования и субъектами.

Вы могли бы добавить предварительное условие к Use Case A а также Use Case B говоря что-то вроде: пользователь должен быть аутентифицирован.

Постусловие Login Вариант использования может затем прочитать: пользователь аутентифицирован. Это связывает ваши варианты использования с результатом Login вариант использования, а не фактический вариант использования.
Если завтра вы создадите новый вариант использования, который будет иметь то же постусловие, что и Login вариант использования, вам не нужно перепроектировать все другие варианты использования, которые включают в себя Login вариант использования (или хуже, включены Login случай использования)

В этом случае все кажется очевидным только из имен актеров, так что вы можете даже подумать об этом вообще.

Используйте второй подход. Для понимания разбейте варианты использования на части. Что касается второго подхода, вы можете показать логин пользователя, а в другом случае вы можете показать, что может сделать аутентифицированный пользователь.

Другие вопросы по тегам