Форум Сообщества Аналитиков

Дисциплины => Системный Анализ и Требования => Варианты Использования (Use Case) => Тема начата: Galogen от 27 Июля 2011, 13:15:07

Название: Пример use case - дайте feedback
Отправлено: Galogen от 27 Июля 2011, 13:15:07
Перед Вами образец варианта использования системы заказа обеда в кафетерии компании. Некоторое обсуждение происходило в теме: Какое решение оптимальнее (http://www.uml2.ru/forum/index.php?topic=4360.0).

Общий контекст - система по учету заказов блюд только сотрудниками компании в столовой компании в счет удержания из заработной платы

ВИ 01: Сделать заказ блюд (Заказать блюда для обеда, Заказать блюда)
ID: 1
Краткое описание:
   Сотрудник выбирает блюда из меню, меняет количество порций, если необходимо, подтверждает свой выбор по завершению заказа и получает чек со штрих-кодом
Основное действующее лицо:
   Сотрудник
Второстепенные действующие лица:
   Нет
Предусловия:
   1. Сотрудник авторизовался в системе.
    2. Система предоставила меню для размещения заказа.
Основной поток:
1. Пока сотрудник указывает желаемое блюдо
2. Система отображает блюдо, количество порций и цену в списке заказа, подсчитывая общую стоимость заказа
3. Сотрудник подтверждает заказ
4. Система сохраняет заказ и печатает чек
Постусловия:
   1. Система отображает экран с исходным меню блюд
    2. Система завершает сеанс работы с сотрудником
   3. Заказ сохранен в состоянии "предложен"
Альтернативные потоки:
Есть невыполненный заказ (у сотрудника имеется заказа в состоянии "предложен") - этот поток может возникнуть, если сотруднику нужно изменить ранее созданный заказа  до его получения
Повторный заказ в течение дня - если сотрудник хочет покушать второй раз, то он может использовать для этого блюда в ранее созданном заказе
Выбрано неверное блюдо - в ходе формирования заказа (выбора блюд), если сотрудник ошибся с этим выбором, то он может исправить это - удалив ошибочно выбранное блюдо
Изменить количество порций блюда - если требуется увеличить или уменьшить количество порций уже выбранных (отмеченных) блюд
Заказанное блюдо закончилось - если в процессе формирование заказа какое-то блюдо закончилось, то система автоматически убирает его с извещением
Отмена заказа - в любой момент до подтверждения заказа, сотрудник может отменить заказ

Альтернативные потоки не раскрыты, кроме одного

Альтернативный поток: Сделать заказ. Есть невыполненный заказ
ID: 1.1
Краткое описание:
   У сотрудника есть невыполненный заказ, который он хочет изменить
Основное действующее лицо:
   Сотрудник
Второстепенные действующие лица:
   Нет
Предусловия:
   1. Сотрудник авторизовался в системе.
    2. У сотрудника есть невыполненный заказ.
   3. Система предоставила меню для изменения заказа.   
Альтернативный поток:
1. Система отображает последний невыполненный заказ
2. Возврат к пункту 1 основного потока
Постусловия:
   нет
Название: Re: Пример use case - дайте feedback
Отправлено: Galogen от 28 Июля 2011, 21:31:02
Понятно, или все в отпуске, или жарко, или не покупаетесь на провокацию ;)

Не реально. На Use Case Professionals (http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&discussionID=57454189&gid=1216497&commentID=46501939&trk=view_disc) я опубликовал ответ. На всякий случай повторю часть комментариев

Hi, gays. Tell me exactly is the UC good enough?

 UC 01: Make the order
 ID: 01
 Description:
 The employee made ​​the order, received a receipt with the bar code
 Main actor:
 The employee
 Secondary actors:
 no
 Preconditions:
 1. The employee is logged in the system.
 2. The system provided a menu to place your order.
 The main flow:
 1. While the employee chooses the desired dish
 2. The system displays the dish and the price in the order list, counting the total cost of the order
 3. The employee confirms the order
 4. The system saves the order and prints a receipt
 Postconditions:
 1. The system displays a screen with the original menu of dishes
 2. The system ends the session
 3. Order is stored in a "proposed" state
 Alternative Flows:
 1/ There is your outstanding order
 2/ Reorder during the day
 3/ Remove the chosen dish
 4/ Change the number of meals
 5/ The chosen dish is over
 6/ Cancel the order

Т.е. я взял исходный текст ВИ пропустил его через гугл-переводчик и чуть подправив опубликовал

а вот ответ

Great example, Edward, Perhaps we can pitch in and critique Edward's example and eventually come up with a "good" use case. Rather than suggest suggestions, let's point out issues, and once we agree on the issues, then Edward might offer ways to correct the issues.

 Allow me to begin:

 Often when I work with people who have a first language other than English, we have to be really careful to make sure that the intentions of the author and the understanding of the reader is consistent. Some of my questions are about the vocabulary used, which, while grammatically correct, may be inconsistently understood.

 The title "Make an Order" is too vague; the word "make" could imply constructing, assembling, or placing an order.

 The description didn't tell me much. It wasn't until I read the alternative flows that I figured out that the order has something to do with ordering food.

 Why is the actor an "employee"? That's a pretty vague term. What is the role? Does the system care that only an employee can order food?

 Precondition 2: At first I thought that the word "menu" constrains the design of the system, but the word "menu" in a food ordering system might be exactly right.

 What is the state of the "order" prior to the start of the use case?

 Main Flow:

 1. Why is the word "while" in the first sentence? Why did you use the word "dish"?
 2. "counting" implies incrementing the number of items ordered. Did you mean "calculating", to add the cost of the dish to the current order giving a new total cost?
 3. Could the employee order more than one item?
 4. This is 2 requirements: Do they have to be done in this order? Does it have to save it, or could it transmit it somewhere else?

 Alt flows: Do these have the same preconditions as the main flow?

 Post conditions: I still don't understand the context of this use case: an employee at a cash register at McDonalds? Taking orders for room service in hotel? A restaurant? Over the phone? Could the diner or meal preparer order a dish?

 Re-ordering during the day....not sure what "re-order" implies?

 Thanks Edward, this was a good start!

Правда, много интересного?