Приемы анализа прецедентов в языке UML

Прецедент (use case) - это спецификация поведения системы или ее части без определения реализации системы.

С помощью прецедентов моделируют поведение элемента: системы в целом, подсистемы или класса. При этом важно сконцентрироваться исключительно на том, что должен делать элемент, а не на том, как он это будет делать.

Подобное применение прецедентов к элементам представляет важность по трем причинам.

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

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

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

Моделирование поведения элемента осуществляется следующим образом:

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

Актеры конкретизируются путем выделения общих и специализированных ролей.

· Для каждого актера рассматриваются пути его взаимодействия с элементом, а также взаимодействия, изменяющие состояния элемента или его окружения или предполагающие реакцию на некоторое событие.

Рассматриваются альтернативные (исключительные) способы взаимодействия актеров с элементом.

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

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

Моделируя прецеденты в UMLдолжен представлять некоторое четко идентифицируемое поведение системы или ее части. Хорошо структурированный прецедент обладает следующими свойствами:

§ именует простое, идентифицируемое и в некотором смысле атомарное поведение системы или ее части,

§ выделяет общее поведение, извлекая его из всех прецедентов, которые его включают,

§ выделяет вариации, помещая некоторое поведение в другие прецеденты, которые его расширяют,

§ описывает поток событий в степени, достаточной для понимания посторонним читателем,

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