2010-10-11 1 views
0

Я хочу показать, что делает мой UserControl/Control, когда я подключаю список данных в нем, что происходит, когда пользователь нажимает определенные клавиши, выбирая текст и т. Д.Как показать несколько циклов и делать вещи в нем в диаграмме последовательности?

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

Я не прав или как я могу справиться с этим делом?

ответ

1

Если вы говорите о цикле, то у вас есть ряд операций, которые выполняются для всех элементов цикла.

Я бы смоделировал операции, выполненные в цикле, как диаграмму последовательности сам по себе, если операция в цикле довольно сложна.

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

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

При необходимости вы также можете иметь обе диаграммы последовательности.

Update:
Мы должны добавить некоторые примечания к схеме, потому что это не так просто, чтобы обозначить «состояние» в диаграмме последовательности.
При проверке является частью что-то вроде

do validation 
if validation succeeds 
    proceed to next (business or other) logic 
if validation fails 
    feedback to user (or some other logic) 

+----+   +----+   +----------------+  +----------------+ 
|User|   | UI |   | Your Validator |  | Business Logic | 
+----+   +----+   +----------------+  +----------------+ 
    |  select  |     |      | 
    |--------------->| doValidation |      | 
    |    |------------------>|----+     | 
    |    |     | | Validate   | 
    |    |     |<---+     | 
    |    |     |      | 
    |    |     | (validation fails:  | 
    |    | Validation Fail | feedback to client) | 
    |    |<------------------|      | 
    |    |     |      | 
    |    |     |      | 
    |    |     | (validation succeeds: | 
    |    |     | proceed to   | 
    |    |     | business logic)  | 
    |    |     |      |   
    |    |     | someLogic   | 
    |    |     |----------------------->| 
    |    |     |      | 

UPDATE 2
Почему использование схема последовательности операций в случае, как у меня? Потому что вы все еще должны показать последовательность операций, и разработчик все еще нуждается в этой информации для кодирования :-)

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

Я должен был упомянуть об этом раньше, некоторые используют фрагмент «option» для обозначения if else. Это более или менее примечание (я вижу это так), но, возможно, более очевидно. Я использую их только тогда, когда оба блока IF и ELSE являются сложными.

+----+   +----+   +----------------+  +----------------+ 
    |User|   | UI |   | UI - Backend |  | Busines Logic | 
    +----+   +----+   +----------------+  +----------------+ 
     | Add Record |     |      | 
     |--------------->| doinsertOrUpdate |      | 
     |    |------------------>|      | 
     |    |     |  exists(record) | 
     |    |     |----------------------->| 
     |    |     |      |   
    ____|________________|___________________|________________________|__________ 
    |[Record exists]  |     |      |   | 
    | |    |     |  Get Record   |   | 
    | |    |     |----------------------->|   | 
    | |    |     |      |   | 
    | |    |     |--------+    |   | 
    | |    |     |  | Set UI Values |   | 
    | |    |     |<-------+    |   | 
    | |    |     |      |   | 
    | |    |     | Update Record  |   | 
    | |    |     |----------------------->|   | 
    | |    |     |      |   | 
    | |    | Send Message  |      |   | 
    | |    |<------------------|      |   | 
    | |    | "Record found, |      |   | 
    | |    | Updated"  |      |   | 
    |___|________________|___________________|________________________|_________| 
     |    |     |      | 
     |    |     |      | 
______|________________|___________________|________________________|_________ 
| [Record does not  |     |      |   | 
| exist]    |     |      |   | 
|  |    |     |--------+    |   | 
|  |    |     |  | Generate  |   | 
|  |    |     |  | Seqeuence  |   | 
|  |    |     |<-------+    |   | 
|  |    |     |      |   | 
|  |    |     | Create New Record |   | 
|  |    |     |----------------------->|   |   
|  |    | Send Message  |      |   | 
|  |    |<------------------|      |   | 
|  |    | "New Record  |      |   | 
|  |    | Created"  |      |   | 
|_____|________________|___________________|________________________|_________| 
     |    |     |      | 
     |    |     |      | 
     |    |     |      | 

См this для примера, используя блок альт.

+0

Как я могу описать диаграмму последовательности, что пользователь выбирает что-то и при выборе чего-то, что я делаю валидацией? – Elisabeth

+0

В диаграмме последовательности обычно присутствует актер. «Сообщение» от актера до первого класса (будет пользовательским интерфейсом в вашем случае) будет «Выбрать элемент», например, – Nivas

+0

да, но во время выбора алгоритм запускает проверку некоторых символов в выбранном/Пока выбор происходит. Как описать это с помощью диаграммы последовательности? – Elisabeth

 Смежные вопросы

  • Нет связанных вопросов^_^