Главная » UML » Организация прецедентов

0

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

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

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

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

•       Включение

•       Расширение

•       Обобщение/конкретизация

Некоторые прецеденты могут включать обычный текст потока событий, организованный как прецедент. Это подобно разложению программы на подпрограммы. В рассматриваемом примере с банкоматом и прецедент Снятие денег, и прецедент Проверка баланса включают действие "Пользователь вводит PIN-код". В одной и той же модели не обязательно два-три раза выражать поток событий, связанный с введением PIN-кода. Вместо этого в оба прецедента можно включить прецедент Аутентификация пользователя (рис. 6.2).

3 Начиная с версии 1.3 языка UML отношение использование между прецедентами разбито на включение и обобщение/конкретизация; поэтому для предотвращения путаницы отношение использование мы не употребляем..

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

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

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

 

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

По теме:

  • Комментарии