Приемы анализа прецедентов в языке UML
Прецедент (use case) - это спецификация поведения системы или ее части без определения реализации системы.
С помощью прецедентов моделируют поведение элемента: системы в целом, подсистемы или класса. При этом важно сконцентрироваться исключительно на том, что должен делать элемент, а не на том, как он это будет делать.
Подобное применение прецедентов к элементам представляет важность по трем причинам.
Во-первых, моделируя поведение элемента с помощью прецедентов, эксперты в предметной области (системные аналитики) могут описать взгляд на систему извне с такой степенью детализации, что разработчики сумеют сконструировать ее внутреннее представление. Прецеденты дают возможность экспертам, системным аналитикам, конечным пользователям и разработчикам общаться на одном языке.
Во-вторых, прецеденты позволяют разработчикам понять назначение элемента. Система, подсистема или класс могут быть сложными образованьями с большим числом операций и других составных частей. Описав прецеденты элемента, вы поможете их потенциальным пользователям разобраться в том, как с ними обращаться. Иначе им пришлось бы на собственном опыте постигать, как использовать той или иной элемент.
В-третьих, прецеденты являются основой для тестирования каждого элемента на всем протяжении его разработки. Постоянно сравнивая функционирование каждого элемента с прецедентами, можно контролировать корректность его реализации. При этом мы получаем источник тестов и при появлении нового прецедента данного элемента должны проверить реализацию, чтобы убедиться в том, что элемент в достаточной степени изменяем. Если это не так, следует пересмотреть архитектуру.
Моделирование поведения элемента осуществляется следующим образом:
· Идентифицируются актеры, взаимодействующие с данным элементом. К числу кандидатов в актеры относятся группы, которые требуют определенного поведения для выполнения своих задач или необходимы, прямо или косвенно, для выполнения функций элемента.
Актеры конкретизируются путем выделения общих и специализированных ролей.
· Для каждого актера рассматриваются пути его взаимодействия с элементом, а также взаимодействия, изменяющие состояния элемента или его окружения или предполагающие реакцию на некоторое событие.
Рассматриваются альтернативные (исключительные) способы взаимодействия актеров с элементом.
· Организуется выявленное поведение в виде прецедентов, применяя отношения включения и расширения для выделения общего и исключительного поведения.
По мере развития модели обнаруживается тенденция к объединению прецедентов в концептуально и семантически близкие группы. В UML для моделирования таких групп применяются пакеты.
Моделируя прецеденты в UMLдолжен представлять некоторое четко идентифицируемое поведение системы или ее части. Хорошо структурированный прецедент обладает следующими свойствами:
§ именует простое, идентифицируемое и в некотором смысле атомарное поведение системы или ее части,
§ выделяет общее поведение, извлекая его из всех прецедентов, которые его включают,
§ выделяет вариации, помещая некоторое поведение в другие прецеденты, которые его расширяют,
§ описывает поток событий в степени, достаточной для понимания посторонним читателем,
§ описывается с помощью минимального набора сценариев, специфицирующих его нормальную и дополнительную семантику.