104 Глава 4. Моделирование прецедентов
• Постусловия ограничивают состояние системы после выполнения
прецедента.
Предусловия ограничивают состояние системы, необходимое для запус
ка прецедента. Постусловия ограничивают состояние системы после
выполнения прецедента.
На это можно посмотреть подругому. Предусловия определяют усло
вия, которые должны быть истинными для того, чтобы прецедент мог
быть инициирован. Постусловия определяют, какие условия будут ис
тинными после выполнения прецедента. Предусловия и постусловия
помогают спроектировать правильно функционирующую систему.
Предусловия и постусловия должны быть простыми выражениями
о состоянии системы, которые затем определяются как истинные или
ложные. Их называют логическими условиями.
Если прецедент не имеет предусловий или постусловий, хорошим сти
лем считается надпись «Нет» в соответствующих разделах специфика
ции прецедента. Это показывает, что данный вопрос был рассмотрен,
иначе незаполненный раздел указывает на некоторую двусмыслен
ность.
4.5.6. Основной поток
Основной поток описывает «идеальный» ход развития событий в преце
денте.
Этапы прецедента представляются в виде потока событий. Прецедент
можно представить как дельту реку с множеством ответвляющихся
рукавов. У каждого прецедента есть один основной поток (основной
рукав дельты). Остальные, меньшие рукава – это альтернативные по
токи прецедента. Эти альтернативные потоки могут перехватывать
ошибки, ответвления и прерывания основного потока. Основной поток
иногда называют основным сценарием (primary scenario), а альтерна
тивные потоки – второстепенными сценариями (secondary scenarios).
Основной поток регистрирует этапы прецедента, отражающие «иде
альную» ситуацию, когда все идет, как ожидается и хочется, то есть не
возникает ошибок, отклонений, прерываний или ответвлений.
Отклонения от основного потока можно смоделировать двумя способа
ми, которые вскоре будут рассмотрены.
1. Простые отклонения – создаются ветвления основного потока (раз
дел 4.5.6.1).
2. Сложные отклонения – создаются альтернативные потоки (раздел
4.5.7).