ЛАБОРАТОРНАЯ РАБОТА 4
ПОСТРОЕНИЕ ДИАГРАММЫ ПРЕЦЕДЕНТОВ
Цель работы
Ознакомиться с методологией моделирования прецедентовна основе языка UML
Содержание работы и методические указания к ее выполнению
UML (Universal Modeling Language) - универсальный язык моделирования, который был разработан компанией Rational Software с целью создания наиболее оптимального и универсального языка для описания как предметной области, так и конкретной задачи в программировании. Визуальное моделирование в UML можно представить как некоторый процесс поуровневого спуска от наиболее обшей и абстрактной концептуальной модели системы к логической, а затем и к физической модели соответствующей системы. Любая задача, таким образом, моделируется при помощи некоторого набора иерархических диаграмм, каждая из которых представляет собой некоторую проекцию системы.
Диаграмма (Diagram) - это графическое представление множества элементов. Чаще всего она изображается в виде связного графа с вершинами (сущностями) и ребрами (отношениями).
В UML определено восемь видов диаграмм [1]:
Диаграмма прецедентов
Диаграммы прецедентов применяются для моделирования вида системы с точки зрения внешнего наблюдателя. На диаграмме прецедентов графически показана совокупность прецедентов и Субъектов, а также отношения между ними.
Рассмотрим основные элементы диаграммы прецедентов.
Субъект (actor) - любая сущность, взаимодействующая с системой извне [2] или множество логически связанных ролей, исполняемых при взаимодействии с прецедентами [1]. Стандартным графическим обозначением субъекта на диаграммах является фигурка "человечка", под которой записывается конкретное имя субъекта, однако субъектом может быть не только человек, но и техническое устройств о, программа или любая другая система, которая может служить источником воздействия на моделируемую систему так, как определит сам разработчик.
Прецеденты (use case) - это описание множества последовательностей действий (включая их варианты), которые выполняются системой для того, чтобы актер получил результат, имеющий для него определенное значение. При этом ничего не говорится о том, каким образом будет реализовано взаимодействие субъектов с системой, это одна из важнейших особенностей разработки прецедентов. Стандартным графическим обозначением прецедента на диаграммах является эллипс, внутри которого содержится краткое название прецедента или имя в форме глагола с пояснительными словами.
Сущность концепции прецедентов подразумевает несколько важных пунктов.
Между субъектами и прецедентами - основными компонентами диаграммы прецедентов - могут существовать различные отношения, которые описывают взаимодействие экземпляров одних субъектов и прецедентов с экземплярами других субъектов и прецедентов. В языке UML имеется несколько стандартных видов отношений между субъектами и прецедентами:
Отношение ассоциации (association) - определяет наличие канала связи между экземплярами субъекта и прецедента (или между экземплярами двумх субъектов). Обозначается сплошной линией, возможно наличие стрелки и указание мощности связи.
Отношение расширения (extend) - определяет взаимосвязь экземпляров отдельного прецедента с более общим прецедентом, свойства которого определяются на основе способа совместного объединения данных экземпляров. Обозначается пунктирной линией со стрелкой, направленной от того прецедента, который является расширением для исходного прецедента, и помечается ключевым словом "extend" ("расширяет").
Отношение включения (include) - указывает, что некоторое заданное поведение для одного прецедента включает в качестве составного компонента поведение другого прецедента. Данное отношение является направленным бинарным отношением в том смысле, что пара экземпляров прецедентов всегда упорядочена в отношении включения. Обозначается пунктирной линией со стрелкой, направленной от базового прецедента к включаемому, и помечается ключевым словом "include" ("включает").
Отношение обобщения (generalization) - служит для указания того факта, что некоторый прецедент А может быть обобщен до прецедента В. В этом случае прецедент А будет являться специализацией прецедента В. При этом В называется предком или родителем по отношению к А, а прецедент А - потомком по отношению к прецеденту В. Следует подчеркнуть, что потомок наследует все свойства и поведение своего родителя, а также может быть дополнен новыми свойствами и особенностями поведения. Графически данное отношение обозначается сплошной линией со стрелкой в форме незакрашенного треугольника, которая указывает на родительский прецедент.
Пример. Магазин видеопродукции.
Магазин продает видеокассеты, DVD-диски, аудио-кассеты, CD-диски и т.д. , а также предлагает широкой публике прокат видеокассет и DVD-дисков.
Товары поставляются несколькими поставщиками. Каждая партия товара предварительно заказывается магазином у некоторого поставщика и доставляется после оплаты счета. Вновь поступивший товар маркируется, заносится в базу данных и затем распределяется в торговый зал или прокат.
Видеоносители выдаются в прокат на срок от 1 до 7 дней. При прокате с клиента взимается залоговая стоимость видеоносителя. При возврате видеоносителя возвращается залоговая стоимость минус сумма за прокат. Если возврат задержан менее чем на 2 дня, взимается штраф в размере суммы за прокат за 1 день* кол-во дней задержки. При задержке возврата более чем на 2 дня - залоговая сумма не возвращается. Клиент может взять одновременно до 4 видеоносителей (прокат-заказ ). На каждый видеоноситель оформляется квитанция.
Клиенты могут стать членами видео-клуба и получить пластиковые карточки. С членов клуба не берется залог (за исключением случая описанного ниже), устанавливается скидка на ставку проката и покупку товаров. Члены клуба могут делать предварительные заказы на подбор видеоматериалов для проката или покупки.
Каждый член клуба имеет некоторый стутус. Первоначально - "новичок". При возврате всрок 5 прокат-заказов , статус меняется на "надежный". При задержке хотя бы одного видеоносителя более чем на 2 дня , статус "новичок" или "надежный" меняется на "ненадежный" и клиенту высылается предупреждение. При повторном нарушении правил статус меняется на "нарушитель". Члены клуба со статусом "надежный" могут брать до 8 видеоносителей единовременно, все остальные - 4. С членов клуба со статусом "нарушитель" берется залоговая сумма.
Клиенты при покупке товара или получении видеоносителя в прокат могут расплачиваться наличными или кредитной картой.
Прокатные видеоносители через определенное количество дней проката списываются и утилизируются по акту. Списываются также товары и прокатные видеоносители, у которых обнаружился брак.
На рисунке ниже приведена диаграмма прецедентов для рассматриваемого примера. В этом примере можно выделить следующие субъекты и соответствующие им прецеденты:
Последние два субъекта Поставщик и Клиент не будут иметь непосредственного доступа к разрабатываемой системе (второстепенные субъекты), однако именно они являются основным источником событий, инициализирующих прецеденты, и получателями результата работы прецедентов
От прецедента "Прокат видео" к прецеденту "Предупреждения" установлено отношение включения на том основании, что каждый выданный видеоноситель должен быть проверен на своевременный возврат и, в случае необходимости, выдано предупреждение клиенту.
Дальнейшее развитие модели поведения системы предполагает спецификацию прецедентов. Для этого традиционно используют два способа. Первый - описание с помощью текстового документа. Такой документ описывает, что должна делать система, когда субъект инициировал прецедент. Типичное описание содержит следующие разделы:
Описательная спецификация прецедента "Прокат видео"
Раздел |
Описание |
Краткое
описание |
Клиент
желает взять на прокат видеокассету или диск, которые снимаются с полки
магазина или были предварительно зарезервированы клиентом. При условии, что у
клиента нет невозвращенных в срок видеоносителей, сразу после внесения платы
фильм выдается напрокат. Если невозвращенные в срок видеоносители есть,
клиенту выдается напоминание о просроченном возврате. |
Субъекты |
Продавец,
Клиент. |
Предусловия |
В
наличие имеются видеокассеты или диски, которые можно взять напрокат. У
клиентов есть клубные карточки. Устройство сканирования работает правильно.
Работники за прилавком знают, как обращаться с системой. |
Основной
поток |
Клиент
может назвать номер заказа или взять видеоноситель с полки. Видеоноситель и
членская карточка сканируются и продавцу не сообщается никаких сведений о
задержках, так, что он не задает клиенту соответствующих вопросов. Если клиент
имеет статус <надежный>, он может взять до 8 видеоносителей, во всех
остальных случаях - до 4-х. Если
статус клиента определен как <нарушитель>, его просят внести задаток. Клиент
расплачивается наличными или
кредитной картой. После получения суммы, информация о наличии фильмов
обновляется и видеоносители передаются клиенту вместе с квитанциями на прокат. О прокате каждого
видеоносителя делается отдельная запись
с указанием идентификационного
номера клиента, даты проката, даты возврата, идентификационного номера
продавца, полученной суммы. Прецедент генерирует предупреждения о просроченном возврате клиенту, если видеофильм не был возвращен
в течение двух дней по истечении даты
возврата и изменяет статус клиента на
<ненадежный> (первое нарушение) или <нарушитель> (повторное нарушение). |
Альтернативный
поток |
У
клиента нет членской карточки. В этом случае прецедент <Сопровождение клиента>
может быть активизирован для выдачи новой карточки. Видеофильмы
не выдаются, поскольку у клиента есть невозвращенные в срок видеоносители. Попытка
взять на прокат слишком много видеоносителей. Видеоноситель
или кредитная карта не могут быть отсканированы из-за их повреждения У
клиента не хватило наличных или
платеж по кредитной карте отклонен. |
Постусловия |
Видеофильмы
сданы напрокат, и база данных соответствующим образом обновлена |
Другой способ - построение диаграмм деятельности - рассматривается в лабораторной работе 5.
Подробнее методология построения UML-диаграмм описана в работах:
2. Леоненков А.В. Самоучитель UML. - СПб.: БХВ-Петербург, 2001.
Выполнение лабораторной работы производится с использованием программного продукта Enterprise Architect (методические указания по использованию Enterprise Architect)
Последовательность выполнения лабораторной работы:
1. Ознакомиться с методологией моделирования прецедентовна основе языка UML.
2. Ознакомиться с программным продуктом Enterprise Architect.
3. Построить диаграмму прецедентов для своей предметной области.
4. Описать несколько (2-3) прецедентов.
5. Оформить отчет.