Re[2]: Выделяю юзкейсы
От: Predicate Россия  
Дата: 03.04.08 12:35
Оценка:
Здравствуйте, Кирилл Лебедев, Вы писали:

КЛ>Здравствуйте, Predicate, Вы писали:


P>>Положим, нужно построить диаграмму юзкейсов простой игры, рафинируем требования (из как бы ТЗ) до 4х пунктов:

КЛ>Вообще, юзкейсы лучше оформлять в виде текста — это позволяет их лучше структурировать. Представлять юзкейс в виде диаграммы выгодно в том случае, когда он уже хорошо структурирован. Диаграмма — лишь дополнительная иллюстрация.

P>>- игрок может начать новую игру

КЛ>Ваш юзкейс я бы описал таким образом:

КЛ>Прецедент 1. Выбор действия.

КЛ>Действующие лица: Программа, Пользователь.

КЛ>

    КЛ>
  1. Программа предлагает Пользователю выбрать действие.
    КЛ>
  2. Пользователь выбирает действие "Начать новую игру".
    КЛ>
  3. Пользователь выбирает действие "Продолжить существующую игру".
    КЛ>
  4. Пользователь выбирает действие "Рестарт игры".
    КЛ>

P>>Плюс к этому, "рестарт игры" инклюдит в себя "начать новую игру", но юзкейс "ввести имена игроков" уже в случае рестарта игры не должен активироваться (а он инклюжен в "начать новую игру", и, следовательно, по транзитивности, инклюжен и в "рестарт игры"). Т.е. получается, что юзкейсы включаются в другие юзкейсы, но при этом имеют прямую связь с актантом (т.к. все 4-е либо активируются пользователем, либо принимают ввод от пользователя). Что нужно сделать? Как правильно?

КЛ>Расписываю далее (из примеров, думаю, будет понятно решение).

КЛ>Прецедент 2. Начать новую игру.

КЛ>Действующие лица: Программа.

КЛ>

    КЛ>
  1. Программа создаёт новую игру.
    КЛ>
  2. Программа начинает созданную игру.
    КЛ>

КЛ>Прецедент 3. Рестарт игры.

КЛ>Действующие лица: Программа.

КЛ>

    КЛ>
  1. Программа начинает созданную игру.
    КЛ>

КЛ>Прецедент 4. Создать новую игру.

КЛ>Действующие лица: Программа, Пользователь.

КЛ>

    КЛ>
  1. Программа предлагает Пользователю ввести имя игрока.
    КЛ>
  2. Пользователь вводит имя игрока.
    КЛ>
  3. Программа запоминает имя игрока.
    КЛ>

Хм... а корректно ли, что в данном случае Прецедент 4 инклюдится в Прецедент 2 (и транзитивно в Прецедент 1), и при этом имеет прямую ассоциацию с актантом Пользователь? Хотя инициатором последней связи выступает в данном случае не Пользователь, а Программа. Т.е. получается этакое "зацикливание"... не должно ли это быть одним прецедентом (с точки зрения атомарности)?
И такой еще вопрос: в предложенном варианте получается, что Прецедент 1 следует оформить как имеющего два расширения? ("Начать новую игру" и "Рестарт игры", т.к. "Продолжить существующую игру" — как бы основной процесс)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.