Когда определять операции SDD (System Sequence Diagram) System->Actor?

У меня возникли проблемы с пониманием того, как создавать диаграммы системной последовательности, так как я не совсем понимаю, почему в некоторых случаях нужно определять операции для System -> Actor, а в других нет. Вот пример:

Предположим, что Система — это магазин билетов в кино, а Актер — это клиент, который хочет купить билет.

1) The User tells the System that wants to buy some tickets, stating his client number.
2) The System confirms that the given client number is valid.
3) The User tells the System the movie that wants to see.
4) The System shows the set of available sessions and seats for that movie.
5) The System asks the user which session/seat he wants.
6) The User tells the System the chosen session/seat.

Это будет преобразовано в:

a) -----> tellClientNumber(clientNumber)
b) <----- validClientNumber
c) -----> tellMovieToSee(movie)
d) <----- showsAvailableSeatsHours
e) -----> tellSystemChosenSessionSeat(session, seat)

Я знаю, что когда мы имеем дело с SDD, мы все еще далеки от кодирования. Но я не могу не представить, как бы это было, если бы я сразу преобразовал это в код:

Я могу понять 1) и 2). Это как если бы это был метод C#/Java со следующей сигнатурой:

boolean tellClientNumber(clientNumber)

поэтому я поставил оба на SDD.

Затем у нас есть пара 3) 4). Я могу представить это как-то так:

SomeDataStructureThatHoldsAvailableSessionsSeats tellSystemMovieToSee(movie)

Теперь проблема:

Из того, что я понял, мой лектор говорит, что мы не должны выполнять операции с SDD для 5), поскольку мы должны показывать только операции с Actor по System и когда Система либо представляет нам данные (как в c) ) или проверки отправленных данных (например, в b)).

Я нахожу это странным, как если бы я попытался представить это как приложение для DOS, где вы должны последовательно вводить свои данные, имеет смысл сделать стрелку даже для 5). Почему это неправильно? Как я должен попытаться визуализировать это?

Спасибо


person devoured elysium    schedule 11.06.2010    source источник
comment
Что вы подразумеваете под «СДД» в данном контексте? Определение дизайна программного обеспечения, документ по проектированию программного обеспечения или диаграмма последовательности?   -  person Pete Kirkham    schedule 11.06.2010


Ответы (1)


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

Если вы вместо этого представите что-то вроде систем для бронирования поездов в Интернете, экран, который показывает время, просто имеет флажки рядом с ними, чтобы пользователь мог выбрать, какой из них он хочет, а не система предлагает пользователю - пользователь инициирует следующий шаг после получения данных. Таким образом, пользовательский интерфейс вполне может позволить пользователю выбирать только из данных без дополнительных запросов.

Если вы занимаетесь предварительным проектированием системы, постарайтесь не делать предположений о пользовательском интерфейсе и включать только основные варианты использования. Вам понадобится только вариант использования «распечатать приглашение для пользователя», если вы разрабатываете компонент пользовательского интерфейса DOS; это не было бы вариантом использования в веб-системе.

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

person Pete Kirkham    schedule 11.06.2010