Автор работы: Пользователь скрыл имя, 24 Ноября 2011 в 12:23, контрольная работа
Элемент Use Case описывает, что должна делать система, но не определяет, как она должна это делать. При моделировании это позволяет отделять внешнее представление системы от ее внутреннего представления.
Поведение элемента Use Case описывается потоком событий. Начальное описание выполняется в текстовой форме, прозрачной для пользователя системы. В потоке событий выделяют:
Работа с элементами Use Case 3
Спецификация элементов Use Case 3
Главный поток 3
Подпотоки 4
Альтернативные потоки 4
Пример диаграммы Use Case 5
Построение модели требований 7
Определение элементов Use Case 8
Расширение функциональных возможностей 10
Уточнение модели требований 11
Выводы 12
Кооперации и паттерны 12
Расширяющий элемент Use Case Снять
сегмент | //начало первого сегмента |
принять запрос снятия | //условие расширения |
определить сумму | |
(проверка снятия) | //точка расширения |
сегмент | //начало второго сегмента |
напечатать снимаемую сумму | |
выдать наличные деньги |
Расширяющий элемент Use Case Захват карты
сегмент
принять список подозрений проглотить карту конец сеанса |
//начало единственного
сегмента
//условие расширения |
Включаемый элемент Use Case Идентификация клиента
получить
имя клиента
include (Проверить достоверность) получить номер счета клиента |
//включение |
Включаемый элемент Use Case Проверка счета
установить
соединение с базой данных счетов
получить состояние и ограничения счета |
Включаемый элемент Use Case Проверить достоверность
установить
соединение с базой данных клиентов
получить параметры клиента (проверка) //точка расширения |
Опишем возможное поведение модели, задаваемое этой диаграммой.
Актер Клиент инициирует действия базового элемента Use Case Сеанс банкомата. На первом шаге запускается включаемый элемент Use Case Идентификация клиента. Этот элемент Use Case получает имя клиента и запускает элемент Use Case Проверить достоверность, в результате чего устанавливается соединение с базой данных клиентов и получаются параметры клиента.
Если
к этому моменту исполняется
условие расширения список подозрений,
то «срабатывает» расширяющий
В противном случае происходит возврат к элементу Use Case Идентификация клиента, который получает номер счета клиента и возвращает управление базовому элементу Use Case.
Базовый элемент Use Case переходит ко второму шагу работы — вызывает включаемый элемент Use Case Проверка счета, который устанавливает соединение с базой данных счетов и получает состояние и ограничения счета.
Управление опять возвращается к базовому элементу Use Case. Базовый элемент Use Case переходит к первой точке расширения диалог возможен. В этой точке возможно подключение одного из двух расширяющих элементов Use Case.
Положим,
что к этому моменту
Поскольку
в активном состоянии продолжает
находиться расширяющий элемент Use
Case Состояние, запускается его второй
сегмент — в квитанции
В последний раз управление возвращается к базовому элементу Use Case — завершается сеанс работы банкомата.
Напомним,
что основное назначение диаграмм Use
Case — определение требований заказчика
к будущему программному приложению.
Обсудим разработку ПО для машины
утилизации, которая принимает
Поиск
актеров — большая работа. Сначала
выделяют первичных актеров, использующих
систему по прямому назначению. Каждый
из первичных актеров участвует
в выполнении одной или нескольких
главных задач системы. В нашем
примере первичным актером
Кроме первичных, существуют и вторичные актеры. Они наблюдают и обслуживают систему. Вторичные актеры существуют только для того, чтобы первичные актеры могли использовать систему. В нашем примере вторичным актером является Оператор. Оператор обслуживает машину и получает дневные отчеты о ее работе. Мы не будем нуждаться в операторе, если не будет потребителей.
Таким образом, внешняя среда машины утилизации имеет вид, представленный на рис. 2.
Рис. 2. Внешняя среда машины утилизации
Деление
актеров на первичных и вторичных
облегчает выбор системной
После выбора внешней среды можно выявить внутренние функциональные возможности системы. Для этого определяются элементы Use Case.
Каждый элемент Use Case задает некоторый путь использования системы, выполнение некоторой части функциональных возможностей. Полная совокупность элементов Use Case определяет все существующие пути использования системы.
Элемент Use Case — это последовательность взаимодействий в диалоге, выполняемом актером и системой. Запускается элемент Use Case актером, поэтому удобно выявлять элементы Use Case с помощью актеров.
Рассматривая каждого актера, мы решаем, какие элементы Use Case он может выполнять. Для этого изучается описание системы (с точки зрения актера) или проводится обсуждение с теми, кто будет действовать как актер.
Перейдем к примеру. Потребитель — первичный актер, поэтому начнем с этой роли. Этот актер должен выполнять возврат утилизируемых элементов. Так формируется элемент Use Case Возврат элемента. Приведем его текстовое описание:
Начинается, когда потребитель начинает возвращать банки, бутылки, ящики. Для каждого элемента, помещенного в машину утилизации, система увеличивает количество элементов, принятых от Потребителя, и общее количество элементов этого типа за день.
После сдачи всех элементов Потребитель нажимает кнопку квитанции, чтобы получить квитанцию, на которой напечатаны названия возвращенных элементов и общая сумма возврата.
Следующий актер — Оператор. Он получает дневной отчет об элементах, сданных за день. Это образует элемент Use Case Создание дневного отчета. Его описание:
Начинается оператором, когда он хочет получить информацию об элементах, сданных за день.
Система печатает количество элементов каждого типа и общее количество элементов, полученных за день.
Доля подготовки к созданию нового дневного отчета сбрасывается в ноль параметр Общее количество.
Кроме
того, актер Оператор может изменять
параметры сдаваемых элементов.
Назовем соответствующий
Могут изменяться цена и размер каждого возвращаемого элемента. Могут добавляться новые типы элементов.
После выявления всех элементов диаграмма Use Case для системы принимает вид, показанный на рис. 3.
Рис. 3. Диаграмма Use Case для машины утилизации
Чаще всего полные описания элементов Use Case формируются за несколько итераций. На каждом шаге в описание вводятся дополнительные детали. Например, окончательное описание Возврата элемента может иметь следующий вид:
Когда потребитель возвращает сдаваемый элемент, элемент измеряется системой. Измерения позволяют определить тип элемента. Если тип допустим, то увеличивается количество элементов этого типа, принятых от Потребителя, и общее количество элементов этого типа за день.
Если
тип недопустим, то на панели машины
высвечивается «
Когда Потребитель нажимает кнопку квитанции, принтер печатает дату. Производятся вычисления. По каждому типу принятых элементов печатается информация: название, принятое количество, цена, итого для типа. В конце печатается сумма, которую должен получить потребитель.
Не
всегда очевидно, как распределить
функциональные возможности по отдельным
элементам Use Case и что является вариантом
одного и того же элемента Use Case. Основной
критерий выбора — сложность элемента
Use Case. При анализе вариантов
Обычно элемент Use Case задает одну основную и несколько альтернативных последовательностей событий.
Каждый элемент Use Case выделяет частный аспект функциональных возможностей системы. Поэтому элементы Use Case обеспечивают инкрементную схему анализа функций системы. Можно независимо разрабатывать элементы Use Case для разных функциональных областей, а позднее соединить их вместе (для формирования полной модели требований).
Вывод:
на основе элементов Use Case в каждый момент
времени можно концентрировать
внимание на одной частной проблеме,
что позволяет вести
Для добавления в элемент Use Case новых действий удобно применять отношение расширения. С его помощью базовый элемент Use Case может быть расширен новым элементом Use Case.
В
нашем примере поведение
Рис 4. Расширение элемента Use Case возврат элемента
Описание элемента Use Case Элемент застрял может иметь следующий вид:
Если элемент застрял, для вызова Оператора вырабатывается сигнал тревоги. После удаления застрявшего элемента Оператор сбрасывает сигнал тревоги. В результате Потребитель может продолжить сдачу элементов. Величина ИТОГО сохраняет правильное значение. Цена застрявшего элемента не засчитывается.
Таким образом, описание базового элемента остается прежним, простым. Еще один пример приведен на рис. 5.
Здесь мы видим только один базовый элемент Use Case Сеанс работы. Все остальные элементы Use Case могут добавляться как расширения. Базовый элемент Use Case при этом остается почти без изменений.
Рис. 5. Применение отношения расширения
Отношение
расширения определяет прерывание базового
элемента Use Case, которое происходит
для вставки другого элемента
Use Case. Базовый элемент Use Case не знает,
будет выполняться прерывание или
нет. Вычисление условий прерывания
находится вне компетенции
В расширяющем элементе Use Case указывается ссылка на то место базового элемента Use Case, куда он будет вставляться (при прерывании). После выполнения расширяющего элемента Use Case продолжается выполнение базового элемента Use Case.