Jump to content

Разделение событий

Контекстная диаграмма системы для вымышленного отеля. (По соглашению, двунаправленные потоки со стрелками на обоих концах часто используются, когда диалог инициируется извне. Например, «диалог бронирования» содержит поток «запрос на бронирование», который является начальным триггером; «подтверждение бронирования», результат отправляется обратно.)

Разделение событий — это простой в применении метод системного анализа , который помогает аналитику организовать требования к большим системам в набор более мелких, простых, минимально связанных и понятных «мини-систем»/ сценариев использования .

Подход к разделению событий объясняется Стивеном М. Макменамином и Джоном Ф. Палмером в книге «Основной системный анализ» . [1] Краткая версия подхода описана в статье о диаграммах потоков данных (DFD). Более полное обсуждение можно найти в книге Эдварда Юрдона « Just Enough Structured Analysis» . [2] В описании основное внимание уделяется использованию этого метода для создания диаграмм потоков данных, но его можно использовать для определения вариантов использования также .

Предпосылка разделения событий заключается в том, что системы существуют для реагирования на внешние события: определите, что происходит в бизнес-среде и требует запланированных ответов, затем определите и создайте системы для реагирования в соответствии с правилами бизнеса. В частности, существует бизнес-система для обслуживания запросов клиентов. На жаргоне унифицированного языка моделирования (UML) клиент — это « действующее лицо ».

Темы разделения событий

[ редактировать ]

Актер → Событие → Обнаружить → Реагировать

[ редактировать ]

Метод состоит из следующих шагов.

  • 1. Определите внешние системы путем мозгового штурма списка « актеров » (внешних систем), которые являются источниками внешних событий. Если вы считаете, что изображение полезно, создайте контекстную диаграмму, показывающую действующих лиц за пределами изучаемой системы и потоки/сигналы между ними.
  • 2. Поставив себя на место «актера» (или работая с его представителями), проведите мозговой штурм по списку « внешних событий »/«триггеров», на которые они хотят, чтобы система имела запланированный ответ. (Обратите внимание, что система не может создавать внешние события; это может сделать только актор.)
  • 3. Определите, что позволит системе обнаружить внешние события:
    • поступление одного или нескольких фрагментов данных (возможно, в форме сообщения)
    • наступление одного или нескольких моментов времени (называемых M&P «временными» событиями и отличающихся ими от внешних событий)
  • 4. Определите запланированные реакции, которые система может выполнить в случае возникновения событий. Это ответ(ы)/варианты использования, которые позволят системе достичь своих целей.

Этот метод был расширен за счет «несобытийных» событий Полом Т. Уордом и Стивеном Дж. Меллором в книге «Структурная разработка для систем реального времени: основные методы моделирования» . [3]

«Поскольку терминаторы [актеры] по определению находятся за пределами усилий по созданию системы, представленных моделью, разработчики не могут по своему желанию модифицировать технологию терминаторов [актеров] для повышения ее надежности. Вместо этого они должны создавать ответы на терминаторов [актеров]. проблемы субъекта] в сущностную модель системы. Полезный подход к моделированию ответов на проблемы терминатора [актера] состоит в том, чтобы построить список «нормальных» событий, а затем задать для каждого события вопрос: «Нужно ли системе реагировать, если». это событие не происходит так, как ожидалось?' " [4] [курсив добавлен]

Обозначение словаря данных

[ редактировать ]

в стиле Юрдона/ДеМарко Обозначение словаря данных может использоваться для описания состава и структуры данных.

Символ Значение
= «содержит», «есть» или «состоит из»
+ «и», «а также» или «вместе с» ( не арифметический «плюс»)
[ х ; й ; г ] «выберите только один из x , y или z ». точку с запятой (;) или вертикальную черту Для разделения элементов в списке можно использовать (|).
м { х } п или
m:n { x } или
«от m до n итераций x ». Если m или n не указаны, то нижний или верхний предел просто «неизвестен» или «не указан». Многомерные массивы могут быть заданы путем вложения, например, 10 { 10 { x } 10 } 10 определяет двумерную матрицу из 10 строк и 10 столбцов.
( х ) «необязательно х ». Это эквивалентно 0{ x }1 или 0:1{ x } или .
@ префикс для идентификатора внутри итерации. Например, в {@i+@j+x} i и j — идентификаторы.
* ... * Все, что находится между одиночными звездочками, рассматривается как комментарий. На уровне элемента данных комментарий может содержать такие теги типа «диапазон:», «пределы:», «точность:», «единица измерения:» или «значения:».

структурного программирования Элементы структуры данных могут отображаться в управляющие структуры :

Примечание. Определяемые элементы могут быть «материальными» (например, ключ от номера), а также «данными» (например, дата и время прибытия).

Определение требований и их причин

[ редактировать ]

Информация о реакции на событие может быть зафиксирована в таблице. Событие является смыслом существования реакции, что обеспечивает « отслеживаемость » реакции обратно в окружающую среду.

1. Актер 2. Внешнее событие/триггер 3. Обнаружен 4. Ответ(ы)/варианты использования
Гость Гость запрашивает номер определенного типа, на определенную дату прибытия, дату отъезда, по определенному тарифу и т. д. запрос на бронирование +
(подтверждение платежа) +
(*внешняя система бронирования* подтверждение бронирования) [5]
Забронировать номер (может включать гарантированное бронирование, альтернативное бронирование отеля, бронирование в списке ожидания)
Гость Гость просит отменить бронирование номера. запрос на отмену [6] Отменить бронирование
Гость Гость прибывает в отель. сообщение о прибытии = * *
= [имя гостя; ссылка на бронирование] [7]
Зарегистрироваться в качестве гостя
Время/Планировщик Гость не прибывает в отель. [Это событие, не являющееся событием.] 23:00 (по местному времени) [Событие «несобытие» обнаруживается по наступлению момента времени, крайнего срока.] Создать счет для гостей,
Обновить бронирование
Гость Гость просит выписаться из отеля. запрос на выезд = * *
= [имя гостя; номер комнаты] [8]
Создать счет для гостей,
Обновить заполняемость номера
Время/Планировщик Гость не может выехать из отеля. [Это событие, не являющееся событием.] 11 часов утра (по местному времени) [Событие «несобытие» обнаруживается по наступлению момента времени, крайнего срока.] Создать счет для гостя
Гость Гость предлагает оплатить счет. средство платежа = * *
= [наличные; проверять ; кредитная карта ; дебетовая карта] + (идентификатор гостя) [9]
Принимайте оплату от гостя
Время/Планировщик Пора подготовить отчет о занятости номеров за прошлую ночь. 8 утра (по местному времени) Отчет о занятости номеров
Менеджер отеля Менеджер отеля запрашивает отчет о занятости номеров. запрос отчета о занятости Отчет о занятости номеров
Сигнализация дыма/CO Сигнализация обнаруживает дым. сообщение о дымовой сигнализации Сообщить о дымовой сигнализации
Сигнализация дыма/CO Сигнализация обнаруживает CO (окись углерода). Сообщение о тревоге CO Сообщить о тревоге CO

Определение требований

[ редактировать ]
Одиночный процесс в вымышленном отеле с использованием нотации диаграммы потока данных .
Единичный вариант использования в вымышленном отеле с использованием нотации диаграммы вариантов использования .

Этот подход помогает аналитику разложить систему на «мысленно небольшие» мини-системы, используя события, требующие запланированного реагирования. Уровень детализации каждого ответа находится на уровне «основных вариантов использования ». Каждый запланированный ответ может быть смоделирован с использованием нотации DFD или как отдельный вариант использования с использованием нотации диаграммы вариантов использования.

Основной поток процесса или варианта использования обычно можно описать в виде относительно небольшого количества шагов, часто менее двадцати или тридцати, возможно, используя что-то вроде « структурированного английского языка ». В идеале все шаги должны быть видны сразу (часто страница или меньше). Цель состоит в том, чтобы снизить один из рисков, связанных с кратковременной памятью , а именно забывание того, что не сразу видно («с глаз долой, из головы»).

В качестве альтернативы, используя обозначения структурированных методов, аналитик может создать « диаграмму Насси – Шнейдермана ». В UML вариант использования можно смоделировать с помощью диаграммы деятельности , диаграммы последовательности или диаграммы связи . Это может быть проблематично, если имеется много сложных сценариев варианта использования; аналитик может захотеть смоделировать все или большинство сценариев.

Сложность против фрагментации

[ редактировать ]

Если ответ длинный или сложный (т. е. превышает страницу текста), аналитик может разложить («выделить» или дедуплицировать ) на более мелкие «вторичные варианты использования», чтобы «родительский» основной вариант использования был меньше и проще. Эти вторичные варианты использования также могут оказаться пригодными для повторного использования. (На диаграмме вариантов использования UML они будут отображаться как расширенные или включенные варианты использования, которые связаны с одним или несколькими основными вариантами использования.)

Описывая вариант использования, аналитик может также раскрыть « бизнес-правила ». Некоторые аналитики предлагают фиксировать бизнес-правила в отдельном документе, используя язык ограничений объектов или какую-либо другую формальную систему обозначений . Затем, когда в сценарии использования необходимо соблюдать бизнес-правило, аналитик ссылается на него. Это сводит к минимуму повторение [10] внутри спецификации, но существует риск фрагментации спецификации. Одним из методов, который может уменьшить это напряжение, является использование гиперссылок в документе спецификации.

Этот редукционистский подход несколько контрастирует с подходом системного мышления , представленным Чекленда Питера методологией мягких систем .

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

См. также

[ редактировать ]
  1. ^ MCME-84: Макменамин, Стивен М.; Джон Ф. Палмер (1984). Существенный системный анализ . Прентис-Холл (Yourdon Press). ISBN  0-13-287905-0 . ( ISBN   978-0-13-287905-7 )
  2. ^ ВАШ-89: «yourdon.com — Достаточно структурированного анализа , главы 18, 19» . 1989. Архивировано из оригинала 14 февраля 2007 г. Проверено 24 апреля 2008 г.
  3. ^ ОТДЕЛЕНИЕ-85: Уорд, Пол Т.; Стивен Дж. Меллор (1985). Структурированная разработка систем реального времени: Том 2, Основные методы моделирования . Прентис-Холл (Yourdon Press). ISBN  0-13-854787-4 . ( ISBN   978-0-13-854787-5 )
  4. ^ WARD-85, стр. 38-39.
  5. ^ диалог бронирования = * *
    = *вход* запрос на бронирование + *выход* подтверждение бронирования
    запрос на бронирование = * *
    = имя гостя + тип номера + (удобства в номере) +
    дата-время прибытия + дата-время отъезда
    тип комнаты = * тип спальни *
    = * значения: [одиночный; двойной ; семья ] *
    помещения = * Логические значения , указывающие наличие или отсутствие помещения *
    = телевизор + радио + будильник + климат-контроль + доступ в Интернет +
    телефон + холодильник + мини-бар + туалет + раковина + ванна + душ + биде
    дата-время прибытия = * *
    = дата-время
    дата-время вылета = * *
    = дата-время
    дата-время = * формат ISO 8601 *
    = год + месяц + день месяца + «Т» + час + минута >
  6. ^ диалог отмены = * *
    = *вход* запрос на отмену + *выход* подтверждение отмены
  7. ^ диалог прибытия = * *
    = *входное* сообщение о прибытии + *выходной* пакет о прибытии
    пакет прибытия = * *
    = ключ от номера + карточка от номера + купон на бесплатный напиток
  8. ^ диалог оформления заказа = * *
    = *вход* запрос на выезд + *выход* счет гостя
  9. ^ диалог оплаты = * *
    = *вход* платежное средство + *выход* гостевая квитанция
    гостевой чек = * *
    = имя гостя + адрес гостя + {детализация платежа} + общая сумма платежа + (налоги) + сумма к оплате + уплаченная сумма
  10. ^ см. также «Не повторяйся », также известный как «СУХОЙ».
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bae58946e6c40cf8a41221f9963a2356__1721778660
URL1:https://arc.ask3.ru/arc/aa/ba/56/bae58946e6c40cf8a41221f9963a2356.html
Заголовок, (Title) документа по адресу, URL1:
Event partitioning - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)