Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 21
Описание файла
PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 21 страницы из PDF
Напротив, в книге всегда очень сложно представить параллельную деятельность, поскольку книга по природе своей линейна!Итог этой деятельности – более детализированный прецедент. Сюдавходят, по крайней мере, имя прецедента и его спецификация.4.5. Спецификация прецедентовUMLстандарта для спецификации прецедента не существует. Однакошироко используется шаблон, приведенный на рис. 4.8. Есть и болеесложные шаблоны, но из собственного опыта мы знаем, что при моделировании прецедентов лучше всего придерживаться максимальнойпростоты.Выберите стандарт для спецификации прецедентов.Важно, чтобы организация выбрала стандарт для спецификаций прецедентов, который будет постоянно использоваться в проектах. Отсутствиетаких стандартов в компании делает весь процесс моделирования прецедентов излишне сложным.
В рамках одного проекта возникает массаразных форматов, уровней детализации или даже интерпретаций того,что является, а что не является прецедентом. Простой и эффективныйстандарт для спецификаций прецедентов может помочь обеспечить усимя прецедентаидентификатор прецедентакраткое описаниеактеры, вовлеченныев прецедентсостояние системыдо начала прецедентаПрецедент: PaySalesTaxID: 1Краткое описание:Выплата налога с оборота в Налоговое управление по окончанию налогового периода.Главные актеры:Time (Время)Второстепенные актеры:TaxAuthority (налоговое управление)Предусловия:1. Конец налогового периода.Основной поток:фактические этапыпрецедентасостояние системы послеокончания прецедентаальтернативные потокинеявный актер Time1. Прецедент начинается в конце налогового периода.2.
Система определяет сумму Налога с оборота, которую необходимо выплатитьНалоговому управлению.3. Система посылает электронный платеж в Налоговое управление.Постусловия:1. Налоговое управление получает соответствующую сумму Налога с оборота.Альтернативные потоки:Нет.Рис. 4.8. Шаблон спецификации прецедента102Глава 4. Моделирование прецедентовпешный анализ прецедентов. В этой и следующей главах мы предлагаемтакой стандарт.В наш шаблон простой спецификации прецедента входит следующаяинформация:•имя прецедента;••ID прецедента;краткое описание – абзац, в котором изложена цель прецедента;••актеры, задействованные в прецеденте;предусловия – условия, которые должны выполниться, чтобы прецедент мог осуществиться; это ограничения на состояние системы;••основной поток – шаги выполнения прецедента;постусловия – условия, которые должны выполниться по окончанию прецедента;•альтернативные потоки – список альтернативных основному потоку событий.Позже, когда будут рассматриваться более сложные прецеденты, этотшаблон будет расширен для включения дополнительной информации.Прецедент, представленный на рис.
4.8, касается выплаты Налога с оборота – формы налога, взимаемого с продаж во многих странах. В данном примере Налоговое управление в любом случае тем или иным образом получает соответствующую сумму налога. Поэтому факт получения денег здесь заявлен как постусловие прецедента.Записывайте прецеденты на структурированном естественном языке.Хороший способ записи прецедента – «структурированный английский» (или русский, или любой другой язык, являющийся для вас родным). В следующих разделах будет представлен простой стиль, который можно использовать для эффективного выражения прецедентов.4.5.1. Имя прецедентаНе существует UMLстандарта по присваиванию имен прецедентам.Мы всегда записываем имена прецедентов в стиле UpperCamelCase: отдельные слова имени прецедента записываются слитно, каждое словоначинается с заглавной буквы.Прецеденты описывают поведение системы, поэтому имя прецедентавсегда должно быть глаголом или глагольной группой, например PaySalesTax (выплата налога с оборота).
Всегда надо стремиться выбратьимя, короткое и описательное одновременно. Человек, работающийс моделью прецедентов, должен по одному его имени четко пониматьназначение моделируемой бизнесфункции или процесса. В этой и следующих главах можно найти множество примеров имен прецедентов.4.5. Спецификация прецедентов103Имя прецедента является его уникальным идентификатором в рамкахмодели прецедентов.4.5.2.
ID прецедентаХотя имена прецедентов в рамках одной модели прецедентов должныбыть уникальными, со временем они могут меняться. Следовательно,надо ввести другой постоянный идентификатор, уникально идентифицирующий конкретный прецедент в проекте. Обычно мы используемпросто число.При работе с альтернативными потоками (раздел 4.5.7) можно применять иерархическую систему нумерации.
В этом случае легко устанавливается взаимосвязь между альтернативным и основным потоками.Например, если прецедент стоит под номером X, его альтернативныепотоки будут пронумерованы как X.1, X.2,..., X.n.4.5.3. Краткое описаниеЭто должен быть один абзац, в котором изложена цель прецедента. Попытайтесь уловить суть прецедента – прикладное значение, которое онимеет для актеров.4.5.4.
АктерыГлавные актеры инициируют прецедент.С точки зрения отдельного прецедента существует два типа актеров:• главные актеры – актеры, инициирующие прецедент;• второстепенные актеры – актеры, взаимодействующие с прецедентом после его инициации.Второстепенные актеры не инициируют прецедент.Каждый прецедент всегда инициируется одним актером. Однако одини тот же прецедент в разные моменты времени может инициироватьсяразными актерами. Любой актер, который может инициировать прецедент, является главным актером.
Все остальные актеры – второстепенные.4.5.5. Предусловия и постусловияПредусловия и постусловия – это ограничения.• Предусловия ограничивают состояние системы, необходимое длязапуска прецедента. Они как привратники, которые не дают актеруинициировать прецедент до тех пор, пока не будут выполнены всеих условия.104Глава 4. Моделирование прецедентов•Постусловия ограничивают состояние системы после выполненияпрецедента.Предусловия ограничивают состояние системы, необходимое для запуска прецедента. Постусловия ограничивают состояние системы послевыполнения прецедента.На это можно посмотреть подругому. Предусловия определяют условия, которые должны быть истинными для того, чтобы прецедент могбыть инициирован. Постусловия определяют, какие условия будут истинными после выполнения прецедента. Предусловия и постусловияпомогают спроектировать правильно функционирующую систему.Предусловия и постусловия должны быть простыми выражениямио состоянии системы, которые затем определяются как истинные илиложные.
Их называют логическими условиями.Если прецедент не имеет предусловий или постусловий, хорошим стилем считается надпись «Нет» в соответствующих разделах спецификации прецедента. Это показывает, что данный вопрос был рассмотрен,иначе незаполненный раздел указывает на некоторую двусмысленность.4.5.6. Основной потокОсновной поток описывает «идеальный» ход развития событий в прецеденте.Этапы прецедента представляются в виде потока событий. Прецедентможно представить как дельту реку с множеством ответвляющихсярукавов.
У каждого прецедента есть один основной поток (основнойрукав дельты). Остальные, меньшие рукава – это альтернативные потоки прецедента. Эти альтернативные потоки могут перехватыватьошибки, ответвления и прерывания основного потока. Основной потокиногда называют основным сценарием (primary scenario), а альтернативные потоки – второстепенными сценариями (secondary scenarios).Основной поток регистрирует этапы прецедента, отражающие «идеальную» ситуацию, когда все идет, как ожидается и хочется, то есть невозникает ошибок, отклонений, прерываний или ответвлений.Отклонения от основного потока можно смоделировать двумя способами, которые вскоре будут рассмотрены.1.
Простые отклонения – создаются ветвления основного потока (раздел 4.5.6.1).2. Сложные отклонения – создаются альтернативные потоки (раздел4.5.7).4.5. Спецификация прецедентов105Основной поток всегда начинается с действий главного актера, направленных на инициацию прецедента. Удачным способом начала потока можно считать следующую форму записи:1. Прецедент начинается, когда <актер> <действие>.Помните, что время тоже может быть актером, поэтому прецедент может начинаться временным выражением, как на рис.
4.8.Поток событий состоит из последовательности коротких этапов, декларативных, пронумерованных и упорядоченных во времени. Каждыйэтап потока прецедента должен быть выражен в следующей форме:<номер> <ктолибо> <совершает некоторое действие>.Поток событий прецедента может быть представлен в повествовательной форме, однако это не рекомендуется, поскольку данная форма является слишком неопределенной.Ниже приведен пример нескольких этапов прецедента PlaceOrder (разместить заказ).1. Прецедент запускается, когда покупатель выбирает опцию «разместить заказ».2.
Покупатель заполняет в форме свои имя и адрес.Это правильно сформированные прецеденты. В обоих случаях мы имеем простое декларативное выражение о том, что некоторая сущностьосуществляет некоторое действие. А вот пример неверного описанияэтапа прецедента:2. Вводятся данные покупателя.Использование пассивного залога для описания любого этапа являетсяневерным. На этом конкретном этапе фактически допущены три важных пропуска.• Кто вводит данные покупателя?• Куда вводятся эти данные?• Что конкретно подразумевается под «данными покупателя»?Важно различать и избегать пропусков при написании потоков прецедентов, даже если об этом можно сказать или догадаться исходя изконтекста. Прецедент должен быть точным описанием части выполняемых функций системы!Если в процессе анализа встречаются неопределенности, пропускиили обобщения, полезно ставить следующие вопросы.• Кто именно…?• Что именно…?• Когда именно …?• Где именно …?106Глава 4.