Программирование >>  Дополнительные возможности наследования 

1 ... 182 183 184 [ 185 ] 186 187 188 ... 265


Диаграмма на рис. 18.6 показывает, что объект Расчетный счет содержит в себе другой доменный объект - Сальдо. Чтобы показать достаточно сложный набор отно шений, две предыдущие диаграммы можно скомбинировать (рис. 18.7).

Диаграмма на рис. 18.7 показывает, что объекты Расчетный счет и Депошшпыи счет обобщены в Банковский счет, а в объект Банковский счет вложены объскгь! Сальдо и Записи трансакций.

Ассоциация

Третье отношение - ассоциация - обычно фиксируется во время анализа домена Ассоциация предполагает, что два объекта знают друг друга и некоторым обра1ок4 взаимодействуют. Определение станет намного точнее на этапе проектирования, ни для анализа лишь предполагается, что Объект А и Обьект Б взаимодействуют, но ни один из них не содержит и не является частным видом другого. В UML эта ассоциация показана с помошью простой прямой линии между объектами (рис. 18.8),

Объект А

Объект В

Ассоциация

Рис. 18.S. Отношение ассоциации

Диаграмма на рис. 18.8 означает, что Обьект А некоторым образом взаимодействует с Объектом Б.

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

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

Клиент делает запрос на снятие $300 с расчетного счета, кладет наличные в кошелек и ожидает квитанции.

Клиент делает запрос на снятие $300 с расчетного счета, но остаток на счете составляет всего $200. Ему поступает информация, что для выполнения операции недостаточно денег на расчетном счете.

Клиент делает запрос на снятие $300 с расчетного счета, но сегодня с этого счета уже сняли $100, а дневной лимит составляет $300. Поступает информация, что ему разрешается снять только $200.

Клиент делает запрос на снятие $300 с расчетного счета, но в рулоне для печатания квитанций закончилась бумага. Ему поступает информация о возникшей технической неисправности и предложение подождать, пока персонал банка устранит эту проблему.



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

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

РазраОотка пдтвводителвй

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

Предварительные условия, определяюшие начало сценария.

Переключатели, включающие выполнение именно этого сценария.

Действия, выполняемые пользователем.

Требуемые результаты выполнения программы.

Информация, возвращаемая пользователю.

Запускаемые циклы и условия выхода из них.

Логическое описание сценария.

Условие завершения сценария.

Итоги выполнения сценария.

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

Ситуация использования: Клиент снимает наличные со счета

Сценарий: Успешное снятие наличных с расчетного счета

Предварительные условия: Клиент уже имеет доступ в систему

Переключатель: Запрос от клиента на снятие денег со счета

Описание: От клиента поступил запрос на снятие денег с расчет-

ного счета. На счете имеется достаточная сумма. В кассовом аппарате достаточно денег и заправлена бумага для квитанций; сеть включена и работает. ATM просит клиента указать сумму денег для снятия. Клиент указывает сумму, не превышающую $300. Машина выдает деньги и печатает квитанцию

Итоги: Со счета клиента снята указанная сумма; сальдо счета

уменьшено на эту сумму

Эту ситуацию использования можно изобразить с помошью простой диаграммы, представленной на рис. 18.9.

Диафамма не может похвастаться обилием отображаемой информации. Отношения между пользователем и системой показаны довольно абстрактно. Эта диафамма станет гораздо полезнее, когда будут показаны взаимоотношения между разными си-



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

Клиент

Ситуация


Снятие со счета

Пользователь использование

Пользователь

Ассоциация


Рис. 18.9. Диаграмма ситуации использо- Рис. 18.10. Отношение подчинения между вания случаями использования

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

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

Диаграммы взаимодвйствий

Хотя диаграмма ситуации использования вряд ли представляет собой большую ценность, такого рода диаграммы можно комбинировать, что значительно улучшает документацию и понимание взаимоотношений объектов системы. Например, известно, что сценарий ситуации Снятие со счета представляет взаимодействие между такими объектами домена, как клиент, расчетный счет и интерфейс пользователя системы. Это можно документировать диаграммой взаимодействий, показанной на рис. 18.11.

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



1 ... 182 183 184 [ 185 ] 186 187 188 ... 265

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика