У меня возникли проблемы с пониманием того, как создавать диаграммы системной последовательности, так как я не совсем понимаю, почему в некоторых случаях нужно определять операции для 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). Почему это неправильно? Как я должен попытаться визуализировать это?
Спасибо