Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
W1.doc
Скачиваний:
79
Добавлен:
20.03.2015
Размер:
2.04 Mб
Скачать

Лабораторная работа №1

Диаграммы прецедентов.

Среда выполнения

RationalRose

Теория Введение

Для того чтобы более точно понять, как должна работать система, все чаще используется описание функциональности системы через варианты использования (Use Caseили прецеденты). Это самый первый этап в разработке системы – он предваряет этап анализа.

Варианты использования это – описание последовательности действий, которые может осуществлять система в ответ на внешние воздействия пользователей или других программных систем.

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

Зачем нужны варианты использования?

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

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

В процессе тестирования, описанные ранее варианты использования, позволяют проще оценить точность реализации требований пользователей и позволяют провести пошаговую проверку этих требований.

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

Нотация uml

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

Любой прецедент должен иметь имя, отличающее его от других прецедентов. Оно должно быть уникально внутри объемлющего пакета. Имя прецедента представляет собой текстовую строку. Взятое само по себе, оно называется простым именем. К составному имени спереди добавлено имя пакета, в котором он находится. Обычно при изображении прецедента указывают только его имя. Имя может занимать несколько строк. На практике для именования прецедентов используют короткие глагольные фразы в активной форме, обозначающие некоторое поведение и взятые из словаря моделируемой системы.

На рис. 1 показано, как на диаграммах изображаются актеры и прецеденты.

рис. 1. Изображение на диаграмме актера и прецедента

Актер. Актер представляет роль, которую играет в данной системе человек, аппаратное устройство или другая система. Как показано на рисунке выше, актеры изображаются в виде человеческой фигуры. Можно определить общие типы актеров, а затем специализировать их отношением обобщения (см. Отношение обобщения), как показано на рис. 2.

рис. 2. Отношение обобщения между актерами

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

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

Актеров можно связывать с прецедентами только отношениями ассоциации (см. Отношение ассоциации). Ассоциация между актером и прецедентом показывает, что они общаются друг с другом, возможно, посылая или принимая сообщения (рис. 3).

рис. 3. Отношение ассоциации между актером и прецедентом

Отношение обобщения(см. Отношение обобщения) между прецедентами аналогично отношениям обобщения между классами. Это означает, что прецедент-потомок наследует поведение и семантику своего родителя, может замещать его или дополнять его поведение, и, кроме того, может быть подставлен всюду, где появляется его родитель (как родитель, так и потомок могут иметь конкретные экземпляры).

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

Как показано на рис. 4, обобщения между прецедентами изображаются точно так же, как и обобщения между классами - в виде линии с незакрашенной стрелкой.

рис. 4. Обобщения, включения и расширения

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

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

Отношения включения изображаются в виде зависимостей (см. Отношение зависимости) со стереотипом (см. Отношение ассоциации) include. Чтобы специфицировать место в потоке событий, где базовый прецедент включает поведение другого, вы просто пишете словоinclude, за которым следует имя включаемого прецедента (см. ниже).

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

Например, при описании сценария прецедента «Следить за выполнением заказа», который использует другой прецедент «Проверить клиента»:

Основной поток событий. Получить и проверить номер заказа, include (Проверить клиента). Запросить статус каждой части заказа и доложить клиенту.

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

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

Отношение расширения изображают в виде зависимости (см. Отношение зависимости) со стереотипом extend. Точки расширения базового сценария перечисляются в дополнительном разделе. Они являются просто метками, которые могут появляться в потоке базового прецедента.

Например, поток для прецедента «Разместить заказ» можно было бы описать нижеследующим образом.

Основной поток событий. include(Проверить Клиента). Собрать все пункты сделанного клиентом заказа. (Установить приоритет). Отправить заказ на обработку.

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

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

Контекст системы. Любая система содержит внутри себя какие-либо сущности, в то время как другие сущности остаются за ее пределами. Например, в системе проверки кредитных карточек имеются счета, транзакции и механизмы проверки подлинности. В то же время обладатели кредитных карточек и торговые предприятия находятся вне системы. Сущности внутри системы отвечают за реализацию поведения, которого ожидают сущности, находящиеся снаружи. Сущности, находящиеся вне системы и взаимодействующие с ней, составляют ее контекст. Таким образом, контекстом называется окружение системы.

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

Моделирование контекста системы состоит из следующих шагов:

  1. Идентифицируйте окружающие систему актеры. Для этого нужно найти группы, которым участие системы требуется для выполнения их задач; группы, которые необходимы для осуществления системой своих функций; группы, взаимодействующие с внешними программными и аппаратными средствами, а также группы, выполняющие вспомогательные функции администрирования и поддержки.

  2. Организуйте похожих актеров с помощью отношений обобщения/специализации.

  3. Введите стереотипы для каждого актера, если это облегчает понимание.

  4. Поместите актеров на диаграмму прецедентов и определите способы их связи с прецедентами системы.

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

рис. 5.Моделирование контекста системы

Тот же метод позволяет моделировать и контекст подсистемы. В прямоугольник на рисунке заключены прецеденты, которые описывают саму систему (которую мы разрабатываем), а актеры являются внешними по отношению к системе сущностями.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]